ТЕМА: «КРЕСТИКИ-НОЛИКИ»
Задание
1. В Приложении (Урок 4) приведен код игры «Крестики нолики». Создайте диалоговое окно, где пользователь
сможет выбрать тип игры: один игрок / два игрока.
2. Создайте диалоговое окно simpledialog, в которое
пользователь сможет ввести свое имя. В информационном
окне необходимо вывести имя победителя.

16 Ноя 2019 в 19:48
327 +1
1
Ответы
1

import tkinter as tk
from tkinter import simpledialog
from tkinter import messagebox

class TicTacToe:
def initself,masterself, masterself,master:
self.master = master
self.master.title("Крестики-нолики")

self.turn = 'X'
self.board = [' ' for _ in range(9)]
self.create_board
def create_boardselfselfself:
self.buttons = for i in range333:
for j in range333:
button = tk.Buttonself.master,text=′′,width=10,height=3,command=lambdai=i,j=j:self.makemove(i,j)self.master, text='', width=10, height=3,
command=lambda i=i, j=j: self.make_move(i, j)
self.master,text=′′,width=10,height=3,command=lambdai=i,j=j:self.makem ove(i,j)
button.gridrow=i,column=jrow=i, column=jrow=i,column=j self.buttons.appendbuttonbuttonbutton
def make_moveself,i,jself, i, jself,i,j:
if self.board3∗i+j3*i + j3i+j == ' ':
self.board3∗i+j3*i + j3i+j = self.turn
self.buttons3∗i+j3*i + j3i+j.configtext=self.turntext=self.turntext=self.turn if self.check_win:
winner = 'Игрок 1' if self.turn == 'X' else 'Игрок 2'
messagebox.showinfo"Победитель",f"Победилwinner""Победитель", f"Победил {winner}""Победитель",f"Победилwinner" self.reset_board elif ' ' not in self.board:
messagebox.showinfo"Победитель","Ничья""Победитель", "Ничья""Победитель","Ничья" self.reset_board else:
self.turn = 'O' if self.turn == 'X' else 'X'
def check_winselfselfself:
lines = [0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6][0, 1, 2], [3, 4, 5], [6, 7, 8],
[0, 3, 6], [1, 4, 7], [2, 5, 8],
[0, 4, 8], [2, 4, 6]
[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 line in lines:
if self.boardline[0]line[0]line[0] == self.boardline[1]line[1]line[1] == self.boardline[2]line[2]line[2] != ' ':
return True
return False
def reset_boardselfselfself:
self.board = [' ' for _ in range(9)]
for button in self.buttons:
button.configtext=′′text=''text=′′

def get_game_mode:
result = simpledialog.askstring("Выбор режима игры", "Выберите режим игры (1 игрок / 2 игрока):")
if result == '1':
root = tk.Tk game = TicTacToerootrootroot root.mainloop elif result == '2':
messagebox.showinfo("Информация", "Режим игры для двух игроков еще не реализован")
else:
messagebox.showinfo("Ошибка", "Некорректный выбор режима игры")

if name == 'main':
root = tk.Tk get_game_mode root.mainloop

19 Апр 2024 в 01:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир