Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Valaki esetleg tudna segíteni ebbe a python feladatban? Előre is köszönöm.
kmate6026
kérdése
596
Torpedó játék egyszerűsített változata. A játéktér legyen egy 3x3-as négyzetalakú rács, amiben az oszlopokat betűk (A, B, C), a sorokat számok (1, 2, 3) jelölik. A program helyezzen el egy darab egy egység kiterjedésű hajót a játéktérben véletlenszerűen (PI:
B2). A játékos próbálja meg kitalálni a hajó pozícióját újabb és újabb tippek megadásával.
A játék végén a program azt is írja ki a képernyőre, hogy hány próbálkozásból tudta a játékos kitalálni a pozíciót!
oszlop = ord(koordinata[0]) - 65
sor = int(koordinata[1]) - 1
if not 0 <= oszlop < MERET or not 0 <= sor < MERET:
print('Helytelen koordináta')
continue
loves += 1
if oszlop == hajox and sor == hajoy:
print('Eltaláltad', loves, 'lövésből')
break
else:
print('Mellé ment')
0
kmate6026:
Köszönöm a segítséget!
1 éve0
VF:
Már ha az. Mert kissé bizonytalan vagyok annak tekintetében, hogy mennyire kell elbonyolítani. „A játéktér legyen egy 3x3-as négyzetalakú rács, amiben az oszlopokat betűk (A, B, C), a sorokat számok (1, 2, 3) jelölik.” — Ezt elsőre úgy értelmeztem, hogy ki is kell írni a „tengert”, a szélein feltüntetve az oszlop és sor koordinátákat, akár egy sakktáblán.
1 éve0
VF:
Viszont elbizonytalanított, hogy általános iskolás feladatnak jelölted. Ha mégis kell a játéktér vizuális vázolása, szólj.
1 éve0
kmate6026:
Hát lehet nem ártana mert, igen ez így kicsit bonyolult.
1 éve0
Nayem:
Lehet kicsit túlbonyolítottad
1 éve0
VF:
Ugyan, ez még semmi ahhoz ami a fejemben volt… De az input-koordináta konverziót tényleg megspórolhattam volna.
1 éve0
VF{ Informatikus }
válasza
import random
MERET = 3
def kiir():
print(' ', ' '.join([chr(i + 65) for i in range(MERET)]))
for i, sor in enumerate(tenger):
print(i + 1, ' '.join(sor))
tenger = [['~'] * MERET for _ in range(MERET)]
hajox = random.randint(0, MERET - 1)
hajoy = random.randint(0, MERET - 1)
loves = 0
oszlop = ord(koordinata[0]) - 65
sor = int(koordinata[1]) - 1
if not 0 <= oszlop < MERET or not 0 <= sor < MERET:
print('Helytelen koordináta')
continue
loves += 1
if oszlop == hajox and sor == hajoy:
tenger[sor][oszlop] = '#'
kiir()
print('Eltaláltad', loves, 'lövésből')
break
else:
tenger[sor][oszlop] = '*'
print('Mellé ment')