Python

Kółko i krzyżyk

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()

Zobacz pozostałe wpisy

Brak komentarzy

    Napisz odpowiedź