import random
# Inicjalizacja planszy
board = [' ' for _ in range(9)]
# Funkcja do wyświetlania planszy
def display_board(board):
print(f'{board[0]} | {board[1]} | {board[2]}')
print('--|---|--')
print(f'{board[3]} | {board[4]} | {board[5]}')
print('--|---|--')
print(f'{board[6]} | {board[7]} | {board[8]}')
# Funkcja do sprawdzania wygranej
def check_win(board, symbol):
winning_combinations = [
[0, 1, 2], [3, 4, 5], [6, 7, 8], # Poziomo
[0, 3, 6], [1, 4, 7], [2, 5, 8], # Pionowo
[0, 4, 8], [2, 4, 6] # Skos
]
for combo in winning_combinations:
if all(board[i] == symbol for i in combo):
return True
return False
# Funkcja do ruchu komputera
def computer_move(board, symbol):
# Wybieramy dostępne puste pola
available_moves = [i for i, val in enumerate(board) if val == ' ']
# Losowo wybieramy jedno z dostępnych pustych pól
move = random.choice(available_moves)
# Wykonujemy ruch komputera
board[move] = symbol
# Funkcja główna gry
def main():
print("Witaj w grze w Kółko i Krzyżyk!")
user_symbol = input("Wybierz symbol (X lub O): ").upper()
if user_symbol not in ['X', 'O']:
print("Nieprawidłowy symbol. Wybierz 'X' lub 'O'.")
return
if user_symbol == 'X':
computer_symbol = 'O'
else:
computer_symbol = 'X'
user_starts = input("Kto ma zacząć? ('U' dla użytkownika, 'K' dla komputera): ").upper()
if user_starts not in ['U', 'K']:
print("Nieprawidłowy wybór. Wybierz 'U' lub 'K'.")
return
user_turn = (user_starts == 'U')
while True:
display_board(board)
if user_turn:
try:
user_move = int(input("Twój ruch (1-9): ")) - 1
if board[user_move] == ' ':
board[user_move] = user_symbol
user_turn = False
else:
print("To pole jest już zajęte. Wybierz inne.")
except (ValueError, IndexError):
print("Nieprawidłowy ruch. Wybierz liczbę od 1 do 9.")
else:
print("Ruch komputera...")
computer_move(board, computer_symbol)
user_turn = True
if check_win(board, user_symbol):
display_board(board)
print("Gratulacje! Wygrałeś!")
break
elif check_win(board, computer_symbol):
display_board(board)
print("Komputer wygrał. Spróbuj jeszcze raz!")
break
elif ' ' not in board:
display_board(board)
print("Remis!")
break
if __name__ == "__main__":
main()
Python
Brak komentarzy