Kezdőoldal » Számítástechnika » Programozás » 2 hete kezdtem el Pythonozni...

2 hete kezdtem el Pythonozni és megakadtam egy programban?

Figyelt kérdés

Szóval egy kezdő torpedó játékot akarok készíteni.


[link]


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



2019. máj. 15. 15:30
1 2 3
 11/24 A kérdező kommentje:

É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.

2019. máj. 16. 23:11
 12/24 tabaki ***** válasza:

„É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.

2019. máj. 16. 23:41
Hasznos számodra ez a válasz?
 13/24 tabaki ***** válasza:

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.

:(

2019. máj. 17. 01:27
Hasznos számodra ez a válasz?
 14/24 tabaki ***** válasza:
Érdemes volt aludni rá egyet, működik.
2019. máj. 17. 09:51
Hasznos számodra ez a válasz?
 15/24 anonim ***** válasza:
TABAKIIIII ;)
2019. máj. 17. 16:18
Hasznos számodra ez a válasz?
 16/24 A kérdező kommentje:

Újra megcsináltam az egészet.

[link]

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..

2019. máj. 17. 21:44
 17/24 tabaki ***** válasza:

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?

2019. máj. 17. 23:28
Hasznos számodra ez a válasz?
 18/24 A kérdező kommentje:

Úristen de hülye vagyok :D

Köszi szépen. :)

2019. máj. 17. 23:43
 19/24 tabaki ***** válasza:
Nem látom, hogy a lay_ships() gondoskodna arról, hogy a játékosok két hajója eltérő koordinátákra kerüljön, pedig annak úgy köll lennie, különben borul a könyvelés.
2019. máj. 17. 23:44
Hasznos számodra ez a válasz?
 20/24 A kérdező kommentje:
Ma már fáradt vagyok hozzá, de holnap mindenképpen megoldom azt is! :)
2019. máj. 17. 23:46
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!