Kurzusok
/
Python
Python
/
Feladatok
/
Az amőba állása
Az amőba állása

Az amőba állása

Könnyű

Utasítások

Ebben a feladatban egy olyan programot fogsz megvalósítani, amely megállapítja egy tic-tac-toe játék állását. (A játékot „noughts and crosses” vagy „Xs and Os” néven is ismerheted.)

A játékot egy 3×3-as rácsban játsszák. A játékosok felváltva X-et és O-t tesznek a rácsra. A játék akkor ér véget, amikor az egyik játékos nyer azzal, hogy három jelét egy sorban, oszlopban vagy a rács egyik átlója mentén helyezi el, illetve amikor az egész rács megtelik.

Ebben a feladatban feltételezzük, hogy X kezd.

A te feladatod eldönteni, hogy egy adott játék melyik állapotban van.

Három lehetséges játékállapot van:

  • A játék folyamatban van.
  • A játék döntetlennel ért véget.
  • A játék győzelemmel ért véget.

Ha a megadott tábla érvénytelen, dobj egy megfelelő hibát.

Egy tábla érvénytelen, ha teljesíti a következő feltételeket:

  • A megadott táblához nem lehet eljutni, ha a köröket a helyes sorrendben játsszák (ne feledd, hogy X kezd).
  • A játékot azután is folytatták, hogy már véget ért.

Példák

Folyamatban lévő játék

   |   |
 X |   |
___|___|___
   |   |
   | X | O
___|___|___
   |   |
 O | X |
   |   |

Döntetlen

   |   |
 X | O | X
___|___|___
   |   |
 X | X | O
___|___|___
   |   |
 O | X | O
   |   |

Győzelem

   |   |
 X | X | X
___|___|___
   |   |
   | O | O
___|___|___
   |   |
   |   |
   |   |

Érvénytelen

Hibás körsorrend
   |   |
 O | O | X
___|___|___
   |   |
   |   |
___|___|___
   |   |
   |   |
   |   |
Játék folytatása győzelem után
   |   |
 X | X | X
___|___|___
   |   |
 O | O | O
___|___|___
   |   |
   |   |
   |   |

Kivételüzenetek

Néha szükség lehet arra, hogy kivételt dobj. Amikor ezt teszed, mindig adj meg egy beszédes hibaüzenetet, amely jelzi, mi a hiba forrása. Ettől olvashatóbb lesz a kódod, és ez jelentősen megkönnyíti a hibakeresést. Ha tudod, hogy a hiba forrása egy adott típusú lesz, választhatod, hogy a beépített hibatípusok egyikét dobod, de ilyenkor is adj meg beszédes üzenetet.

Egy érvényes Tic Tac Toe játék akkor ér véget, amikor az egyik játékos nyer. Ha mindkét játékos nyerő állásban van, ez a feladat azt várja el, hogy a raise utasítást használd, és a megoldásodban „dobj” egy ValueError-t. A kódodnak akkor is ValueError-t kell dobnia, ha az egyik játékosról kiderül, hogy két egymást követő körben lépett, vagy hogy ő tette meg az első lépést, pedig a második lépésre volt kijelölve.

Ha egy ValueError-t üzenettel együtt szeretnél dobni, írd le az üzenetet az exception típus argumentumaként:

# Example when player O goes before player X.
raise ValueError("Wrong turn order: O started")

# Example when player X goes twice.
raise ValueError("Wrong turn order: X went twice")

# Example when player X wins AND player O wins.
raise ValueError("Impossible board: game should have ended after the game was won")

A tesztek a hibaüzenet pontos egyezését ellenőrzik, ezért figyelmesen olvasd el a várt eredményeket.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Az amőba állása feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.