2 hete kezdtem el Pythonozni és megakadtam egy programban?
Szóval egy kezdő torpedó játékot akarok készíteni.
Az a problémám, hogy a függvényben hogyan oldom meg, hogy a gép tudja, hogy melyik játékos jön és annak a listájába pakolja be a változókat?
ui: Elnézést ha nagyon gagyi a kódom :D
Én úgy tudom, hogy az index nem valahányadik számot nézi, hanem, hogy benne van-e a listában az a megadott érték.
Egyébként már rájöttem, hogy úgy kéne, hogy:
if torpedo in ship_second
/akkor legyen valami/
else:
/megint valami/
:) Viszont máshol tanácsolták, hogy nézzem át az eddig tanultakat és jobban böngésszem át az adat struktúrákat. Vasárnap visszatérek a játékra.
„Én úgy tudom, hogy...”
Igazad van, te tudod jól, szégyenletesen összekavartam még azt a keveset is, ami eddig a Pythonból rám ragadt.
Az enyém már közelít a jóhoz, vagy legalábbis nem fut hibára... de most már túl álmos vagyok, hogy megértsem, miért nem pont azt csinálja, amit kéne.
:(
Újra megcsináltam az egészet.
Most már csak az a baj, hogy ha eléri a 0-át az egyik élet akkor nem hagyja abba és nem tudok rájönni, hogy miért..
Ez a feltételed:
while life[0] != 0 or life[1] != 0:
Magyarra fordítva: Addig csináld, amíg vagy az egyik, vagy a másik érték eltér a nullától. Vagyis akkor lép ki, ha már mindkét játékos élete nullára csökken, de te nem ezt akarod. A feltétel legyen inkább ez:
while life[0] != 0 and life[1] != 0:
...vagyis addig csináld, amíg life[0]-ra ÉS life[1]-re is igaz, hogy nem 0. Mivel itt egész számok eggyel való csökkentéséről van szó, ennek így működnie is kell, azonban -- egy másik programban esetleg szükséges -- törtszámmal vagy nagyobb lépéssel való hasonló csökkentések vizsgálatakor már érdemes arra is gondolni, hogy a számláló átlépheti a nullát, tehát általában szerencsésebb nem egyenlőségre, hanem kisebb/nagyobbra vizsgálni:
while life[0] > 0 and life[1] > 0:
Amennyire látom, haszna nincs, de így is megadhatod a feltételt:
while life[0] * life[1] > 0:
...ekkor bármelyikük nulla értéke esetén nulla lesz a szorzat, és véget ér a ciklus.
A nyerő játékos meghatározásakor szerintem fölösleges az elif, elegendő egy sima else. A while-ciklusból való kilépés ugyanis azt jelzi, hogy az egyik játékos életei elfogytak. Először megnézed, hogy a life[0] volt-e az, és ha igen, akkor a második játékos nyert. De ha nem? Akkor jaj, ugyan melyik?
Úristen de hülye vagyok :D
Köszi szépen. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!