
Код для гри в хрестики нолики пайтон


Ответы на вопрос

Код:
import tkinter as tk
from tkinter import messagebox
class TicTacToe:
def __init__(self, master):
self.master = master
self.master.title("Крестики Нолики")
self.master.resizable(False, False)
self.player = "X"
self.board = [["" for i in range(3)] for j in range(3)]
self.buttons = [[tk.Button(self.master, width=8, height=4, font=("Helvetica", 20), command=lambda row=row, col=col: self.mark(row, col)) for col in range(3)] for row in range(3)]
for row in range(3):
for col in range(3):
self.buttons[row][col].grid(row=row, column=col)
def mark(self, row, col):
if self.board[row][col] == "":
self.board[row][col] = self.player
self.buttons[row][col].configure(text=self.player)
if self.is_winner():
messagebox.showinfo("Крестики Нолики", f"{self.player} победили!")
self.reset()
elif self.is_tie():
messagebox.showinfo("Tic Tac Toe", "It's a tie!")
self.reset()
else:
self.player = "O" if self.player == "X" else "X"
def is_winner(self):
for i in range(3):
if self.board[i][0] == self.board[i][1] == self.board[i][2] != "":
return True
if self.board[0][i] == self.board[1][i] == self.board[2][i] != "":
return True
if self.board[0][0] == self.board[1][1] == self.board[2][2] != "":
return True
if self.board[0][2] == self.board[1][1] == self.board[2][0] != "":
return True
return False
def is_tie(self):
for row in self.board:
for cell in row:
if cell == "":
return False
return True
def reset(self):
self.player = "X"
self.board = [["" for i in range(3)] for j in range(3)]
for row in range(3):
for col in range(3):
self.buttons[row][col].configure(text="")
if __name__ == "__main__":
root = tk.Tk()
TicTacToe(root)
root.mainloop()



Ответ:
draw_board()
take_input()
chek_win
main()



Ось приклад простого коду для гри в хрестики-нолики на мові Python:
python# Ініціалізація дошки
board = [' ' for _ in range(9)]
# Функція для виводу дошки
def print_board():
print('---------')
print('|', board[0], '|', board[1], '|', board[2], '|')
print('---------')
print('|', board[3], '|', board[4], '|', board[5], '|')
print('---------')
print('|', board[6], '|', board[7], '|', board[8], '|')
print('---------')
# Функція для перевірки перемоги
def check_win(player):
win_conditions = [
[0, 1, 2], [3, 4, 5], [6, 7, 8], # Рядки
[0, 3, 6], [1, 4, 7], [2, 5, 8], # Стовпці
[0, 4, 8], [2, 4, 6] # Діагоналі
]
for condition in win_conditions:
if all(board[i] == player for i in condition):
return True
return False
# Головний цикл гри
def play_game():
current_player = 'X'
while True:
print_board()
position = int(input("Виберіть позицію (1-9): ")) - 1
if board[position] == ' ':
board[position] = current_player
if check_win(current_player):
print_board()
print("Гравець", current_player, "переміг!")
break
elif ' ' not in board:
print_board()
print("Гра закінчилася внічию!")
break
else:
current_player = 'O' if current_player == 'X' else 'X'
else:
print("Неправильний хід. Спробуйте ще раз.")
# Запуск гри
play_game()
Цей код створює гру в хрестики-нолики для двох гравців. Гравці по черзі вводять номер позиції (1-9), в яку вони хочуть поставити свій символ (X або O) на дошці. Гра продовжується до перемоги одного з гравців або вичерпання всіх ходів (нічия).
Будь ласка, зауважте, що це лише простий приклад, і код можна розширити або вдосконалити, наприклад, додати перевірку на правильність введення або створити ігровий інтерфейс.


Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili