Kako napraviti igru Tic Tac Toe u Python sa Code Primjer
⚡ Pametni sažetak
Križić-kružić Python je projekt prilagođen početnicima koji rekreira klasičnu igru s mrežom za dva igrača. Njegovo stvaranje jača temeljne vještine poput petlji, uvjetnih izraza, popisa, funkcija i rekurzije, a istovremeno provjerava retke, stupce i dijagonale kako bi se pronašao pobjednik.

Tic Tac Toe Igra in Python je zanimljiv projekt koji možete isprobati. To je sjajan i zabavan projekt rješavanja izazova i može vam pomoći da savladate osnovne koncepte u PythonStvaranje zabavne igre križić-kružić pomaže vam da razvijete svoje vještine.
Možete koristiti dobar Python urednik kao što je PyCharm ili sučelje naredbenog retka.
Kako igrati igru Križić-kružić?
Križić-kružić je jednostavna igra za dva igrača koju svatko može igrati bez potrebe za pločom za igru. U njoj dva igrača označavaju različita polja dok igra ne završi pobjedom ili neriješeno.
Evo kako se igra igra Križić-kružić.
Korak 1) Igra Križić-kružić počinje s praznim poljima u kvadratnoj mreži. Ovo je ploča za Križić-kružić.
Korak 2) Oba igrača biraju između dva simbola, obično Xs ili Os. Možete koristiti bilo koji drugi jedinstveni simbol u igri.
Korak 3) Trenutni igrač naizmjenično označava ispunjavajući polja ploče križić-kružić dok ne popuni dobitnu kombinaciju. To je cijeli redak, stupac ili dijagonalu s istim znakom.
Korak 4) Neriješen rezultat igre je također moguć u slučaju da su sva polja puna bez vidljivog pobjednika.
Zahtjevi
Izgradnja križića-kružića Python projekt zahtijeva razumijevanje na početnoj razini Python programski jezik. Uključuje razumijevanje petlji i iteracija "for" te za što se koristi naredba if u Python.
Također morate imati Python a Python uređivač teksta instaliran na vašem računalu za dovršetak igre Križić-kružić Python projekt. Budući da je ovo igra križić-kružić za početnike u Python, neće vam trebati nikakva Python knjižnica.
Možda će vam trebati neke vještine otklanjanja pogrešaka kako biste pronašli rješenja za greške u svom kodu, a trebali biste imati i odgovarajuće razumijevanje komponenti igre.
Tic Tac Toe Python Algoritam
Slijedite ove korake za izradu igre Križić-kružić Python programski jezik:
Korak 1) Napravite ploču za početak igre Križić-kružić.
Korak 2) Zatražite od korisnika da odluči o dimenzijama igraće ploče.
Korak 3) Nasumično odaberite prvog igrača.
Korak 4) Počinje igra Križić-kružić.
Korak 5) Igrači igraju odabirom praznog mjesta na ploči.
Korak 6) Ispunite prazno odabrano mjesto znakom igrača.
Korak 7) Pomoću logike igre odredite pobjeđuje li igrač ili je neriješeno u igri.
Korak 8) Prikažite ploču za igru nakon svake igre ako nijedan igrač ne pobijedi ili dobije neriješeno s drugim igračem.
Korak 9) Prikažite poruku o izjednačenom rezultatu ili pobjedi.
Korak 10) Završi igru Križić-kružić s opcijama za početak nove igre.
Full Python kod za tic tac toe
# Guru99 # Code developed by Guru99.com # Guru99 tic-tac-toe game #Get input def getInput(prompt, cast=None, condition=None, errorMessage=None): while True: try: val = cast(input(prompt)) assert condition is None or condition(val) return val except: print(errorMessage or "Invalid input.") # Print the game board def printBoard(board): print() for row in board: print(*row) print() # Check if player won using the winning combinations def checkWin(board): # Check rows for row in range(len(board)): for col in range(len(board)-1): if board[row][col] == "_" or board[row][col+1] == "_" or board[row][col] != board[row][col+1]: break else: return True # Check column numbers for col in range(len(board)): for row in range(len(board)-1): if board[row][col] == "_" or board[row+1][col] == "_" or board[row][col] != board[row+1][col]: break else: return True # Check left diagonal for cell in range(len(board)-1): if board[cell][cell] == "_" or board[cell+1][cell+1] == "_" or board[cell][cell] != board[cell+1][cell+1]: break else: return True # Check right diagonal for cell in range(len(board)-1): emptyCell = board[cell][len(board)-cell-1] == "_" or board[cell+1][len(board)-cell-2] == "_" different = board[cell][len(board)-cell-1] != board[cell+1][len(board)-cell-2] if emptyCell or different: break else: return True # No win return False # Play tic tac toe game def play(): # Introduction print("------------\nN-DIMENSIONAL TIC TAC TOE game by guru 99.com \n------------") # Set up variables N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ", cast=int, condition=lambda x: x >= 3, errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com") board = [['_'] * N for _ in range(N)] used = 0 turn = 0 # Play guru99 tic tac toe game in Python using while infinite loop while True: # Print guru99 tic tac toe game board printBoard(board) # Get user pick pick = getInput(prompt=f"Player {turn+1} - Pick location (row, col): ", cast=lambda line: tuple(map(int, line.split(" "))), condition=lambda pair: min(pair) >= 0 and max(pair) < N and board[pair[0]][pair[1]] == "_", errorMessage="Invalid input. Please enter a valid, unoccupied location as an integer pair.") # Populate location board[pick[0]][pick[1]] = "X" if turn == 0 else "O" used += 1 # Check for win #Guru99 tutorial if checkWin(board): printBoard(board) print(f"Game over, Player {turn+1} wins.") break # Check for tie elif used == N*N: printBoard(board) print("Game over. Players have tied the match.") print("Guru99.com tic tac toe game ") break # If no win yet, update next user turn = (turn+1)%2 # Check for rematch playAgain = getInput(prompt="Play Guru99 tic tac toe_Game again? (y/n): ", cast=str, condition=lambda ans: ans.strip("\n").lower() in {"y", "n"}, errorMessage="Invalid input. Please enter 'y' or 'n'.") if playAgain == 'n': # End the game print("\nGuru99 TicTacToe game ended.") return else: # Rematch play() # Main if __name__ == '__main__': play()
Tic Tac Toe Python Code izlaz
Nakon što pokrenete gornji izvorni kod, u nastavku je očekivani izlaz za ploču Križić-kružić dimenzija 3 X 3:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _ Player 1 - Pick location (row, col): 1 1 _ _ _ _ X _ _ _ _ Player 2 - Pick location (row, col): 0 1 _ O _ _ X _ _ _ _ Player 1 - Pick location (row, col): 1 2 _ O _ _ X X _ _ _ Player 2 - Pick location (row, col): 0 2 _ O O _ X X _ _ _ Player 1 - Pick location (row, col): 1 0 _ O O X X X _ _ _ Game over, Player 1 wins. Play Guru99 tic tac toe_Game again? (y/n):
Full Code Kvar
Stvaranje Križić-kružić Python je jednostavno. Analizirajmo različite funkcije u bitovima kako bismo razumjeli što se događa u svakom retku:
Tiskanje ploče
Ploča za križić-kružić je glavni zaslon igre. U Python, prozor se koristi za prikaz ploče za igru.
Evo koraka koji će vam pomoći da napravite ploču za križić-kružić Python:
Python kod za Tic Tac Toe
def getInput(prompt, cast=None, condition=None, errorMessage=None): while True: try: val = cast(input(prompt)) assert condition is None or condition(val) return val except: print(errorMessage or "Invalid input.") # Print the board def printBoard(board): print() for row in board: print(*row) print() N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ", cast=int, condition=lambda x: x >= 3, errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com") board = [['_'] * N for _ in range(N)] used = 0 turn = 0 printBoard(board)
Code izlaz:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
Igra Tic Tac Toe – dobitni raspored
Da bismo provjerili je li neki igrač pobijedio, moramo provjeriti dobitne kombinacije u recima, stupcima i dijagonalama. Ako postoji pobjednik, moramo pokazati pobjedničku poruku.
Redovi
- Za redak funkcija uzima svaki uzastopni par stupaca i provjerava dobitnu kombinaciju.
- Pobjeđuje onaj igrač koji prvi popuni redove. Drugi igrač tako gubi.
- Ako su dva uzastopna stupca jednaka, onda je očito da su svi elementi unutar tog retka jednaki.
- Ako su dva različita ili red sadrži praznu ćeliju, još uvijek nema pobjednika.
- Zatim implementiramo uvjete gubitka i dodajemo stanku. Ako je bilo koji od ovih uvjeta za gubitak točan, nismo imali pobjednika u označenom retku.
- Izjava else daje istinit povrat koji pokazuje da postoji pobjednik.
- Prekid izlazi iz ove petlje kako bi prešao na sljedeći red.
Kolumne
Za stupce ponavljamo istu funkciju kao i za retke. Provjeravamo je li igrač pobijedio nakon što svaki igrač odabere svoje mjesto.
Dijagonalni red pobjeđuje
Za lijevu dijagonalu zadatak postaje jednostavniji. Uvijek ćemo uspoređivati ćelije u dijagonalama. Međutim, u slučaju da nema pobjednika, možemo prijeći na sljedeću uputu.
Igraj logičku igru
Ovo je glavna funkcija igre. Za to možemo koristiti varijable koje pohranjuju informacije.
- Prva varijabla je veličina ploče pohranjena u "N". Igra će dobiti veličinu ploče nakon što od korisnika zatraži da unese broj.
- Dakle, kada unesete vrijednost, ona se obrađuje.
- Također stvaramo poruku o pogrešci koja prikazuje igračima kada se upiše bilo koji nevažeći broj.
- Zatim možemo stvoriti dvije varijable koje popunjavaju "X" ili "O" kada je ćelija ispunjena.
- Zatim pokažite igračima ploču za igru. Nakon ovoga, saznajte unos igrača.
- Logika će zatim označenu ćeliju označiti kao ispunjenu i provjeriti pobjedu ili remi.
- Ako nema pobjednika, igra traži da igra sljedeći igrač. Ako dođe do pobjede ili remija, igra može pitati korisnike žele li novu igru.
