@@ -339,16 +339,13 @@ To je dobré udělat hned poté, co nové souřadnice hlavy získáš – konkr
339
339
hned před řádkem ` new_head = new_x, new_y ` v metodě ` move ` .
340
340
341
341
A co při takovém nárazu udělat?
342
- Určitě sis už všiml{{a}}, že jakákoli chyba ukončí program .
343
- Nejjednodušší způsob ukončení programu je právě to – stačí tedy vyvolat chybu.
344
- Nejkratší způsob, jak v Pythonu vyvolat na určitém místě chybu, je dělení
345
- nulou: ` 1/0 ` .
342
+ Nejjednodušší bude hru ukončit .
343
+ Na to má Python funkci ` exit() ` , která funguje podobně jako když v programu
344
+ nastane chyba.
345
+ Jen místo chybového výpisu ukáže daný text .
346
346
347
- Vyvolání chyby není příliš hezký a čistý způsob jak hráči signalizovat
348
- * GAME OVER* .
349
- Ani ` 1/0 ` není příliš hezký a čistý způsob jak vyvolat chybu.
350
- Za chvíli ale tuhle část předěláme, tak prozatím postačí rychlý a škaredý kód.
351
- Jen se s ním moc nechlub.
347
+ Ukončení programu není příliš příjemný způsob, jak říct hráčovi že prohrál.
348
+ Za chvíli ale tuhle část předěláme, tak prozatím tenhle jednoduchý způsob postačí.
352
349
353
350
``` python
354
351
def move (self ):
@@ -359,7 +356,7 @@ Jen se s ním moc nechlub.
359
356
360
357
# Nový kód – kontrola vylezení z hrací plochy
361
358
if new_x < 0 :
362
- 1 / 0 # Vyvolání chyby -- GAME OVER
359
+ exit ( ' GAME OVER' )
363
360
364
361
new_head = new_x, new_y
365
362
self .snake.append(new_head)
@@ -396,13 +393,13 @@ Vyzkoušej všechny varianty – severní, jižní, východní i západní zeď.
396
393
397
394
# Kontrola vylezení z hrací plochy
398
395
if new_x < 0 :
399
- 1 / 0 # Vyvolání chyby -- GAME OVER
396
+ exit ( ' GAME OVER' )
400
397
if new_y < 0 :
401
- 1 / 0 # Vyvolání chyby -- GAME OVER
398
+ exit ( ' GAME OVER' )
402
399
if new_x >= self .width:
403
- 1 / 0 # Vyvolání chyby -- GAME OVER
400
+ exit ( ' GAME OVER' )
404
401
if new_y >= self .height:
405
- 1 / 0 # Vyvolání chyby -- GAME OVER
402
+ exit ( ' GAME OVER' )
406
403
407
404
new_head = new_x, new_y
408
405
self .snake.append(new_head)
@@ -425,8 +422,8 @@ state.height = window.height // TILE_SIZE
425
422
Teď místo konce hry při naražení necháme hada „projít“ a objevit se na druhé
426
423
straně.
427
424
428
- Nemělo by to být tak složité udělat – stačí místo ` 1/0 ` vždy správně nastavit
429
- příslušnou hodnotu.
425
+ Nemělo by to být tak složité udělat – stačí místo ` exit() ` vždy správně
426
+ nastavit příslušnou hodnotu.
430
427
Je ale potřeba si dát pozor kde použít ` new_x ` a kde ` new_y ` , kde ` width ` a kde
431
428
` height ` , a kde přičíst nebo odečíst jedničku, aby při číslování od nuly
432
429
všechno sedělo.
@@ -703,7 +700,7 @@ a zkus, jak se hra hraje, když skončí hned po nárazu:
703
700
``` python
704
701
# Kontrola, jestli had narazil
705
702
if new_head in self .snake:
706
- 1 / 0 # GAME OVER!
703
+ exit ( ' GAME OVER' )
707
704
```
708
705
709
706
{% filter solution %}
@@ -748,7 +745,7 @@ kousky kódu, které prohru implementují:
748
745
{% filter solution %}
749
746
* „Prvotní nastavení atributu“ do metody ` __init__ ` .
750
747
* „Kontrola, jestli had narazil“ do ` move ` místo původní kontroly,
751
- kdy se hra ukončila pomocí ` 1/0 ` .
748
+ kdy se hra ukončila pomocí ` exit() ` .
752
749
* „Zabránění pohybu“ na úplný začátek metody ` move ` (příkaz ` return `
753
750
okamžitě ukončí provádění metody).
754
751
* „Grafická indikace“ do ` ui.py ` , za sekci pro vybírání obrázku pro kousek
0 commit comments