суббота, 24 мая 2025 г.

6 класс. Сетевой этикет и меры безопасности.

 Тема урока. Сетевой этикет и меры безопасности.


Крестики- нолики 

def print_board(board):

    for row in board:

        print(" | ".join(row))

        print("-" * 9)


def check_winner(board, player):

    for i in range(3):

        if all([cell == player for cell in board[i]]):

            return True

        if all([board[j][i] == player for j in range(3)]):

            return True

    if all([board[i][i] == player for i in range(3)]) or all([board[i][2-i] == player for i in range(3)]):

        return True

    return False


def play_game():

    board = [[" " for _ in range(3)] for _ in range(3)]

    current_player = "X"

    

    for turn in range(9):

        print_board(board)

        print(f"Ход игрока {current_player}")

        

        while True:

            try:

                row = int(input("Введите номер строки (0-2): "))

                col = int(input("Введите номер столбца (0-2): "))

                if board[row][col] == " ":

                    break

                else:

                    print("Клетка уже занята, попробуйте снова.")

            except (ValueError, IndexError):

                print("Неверный ввод, попробуйте снова.")

        

        board[row][col] = current_player

        

        if check_winner(board, current_player):

            print_board(board)

            print(f"Игрок {current_player} победил!")

            return

        

        current_player = "O" if current_player == "X" else "X"

    

    print_board(board)

    print("Ничья!")


if __name__ == "__main__":

    play_game()

_______________________________________

import tkinter as tk

from tkinter import messagebox


class TicTacToe:

    def __init__(self, root):

        self.root = root

        self.root.title("Крестики-нолики")

        self.current_player = "X"

        self.buttons = [[None for _ in range(3)] for _ in range(3)]

        self.create_buttons()

    

    def create_buttons(self):

        for i in range(3):

            for j in range(3):

                button = tk.Button(self.root, text=" ", font=('Arial', 40), width=5, height=2,

                                   command=lambda row=i, col=j: self.on_click(row, col))

                button.grid(row=i, column=j)

                self.buttons[i][j] = button

    

    def on_click(self, row, col):

        button = self.buttons[row][col]

        if button["text"] == " ":

            button["text"] = self.current_player

            if self.check_winner():

                messagebox.showinfo("Победа!", f"Игрок {self.current_player} победил!")

                self.reset_game()

            elif self.is_draw():

                messagebox.showinfo("Ничья!", "Ничья!")

                self.reset_game()

            else:

                self.current_player = "O" if self.current_player == "X" else "X"

    

    def check_winner(self):

        b = self.buttons

        # Проверка строк и столбцов

        for i in range(3):

            if b[i][0]["text"] == b[i][1]["text"] == b[i][2]["text"] != " ":

                return True

            if b[0][i]["text"] == b[1][i]["text"] == b[2][i]["text"] != " ":

                return True

        # Проверка диагоналей

        if b[0][0]["text"] == b[1][1]["text"] == b[2][2]["text"] != " ":

            return True

        if b[0][2]["text"] == b[1][1]["text"] == b[2][0]["text"] != " ":

            return True

        return False

    

    def is_draw(self):

        return all(self.buttons[i][j]["text"] != " " for i in range(3) for j in range(3))

    

    def reset_game(self):

        for i in range(3):

            for j in range(3):

                self.buttons[i][j]["text"] = " "

        self.current_player = "X"


if __name__ == "__main__":

    root = tk.Tk()

    game = TicTacToe(root)

    root.mainloop()


Тест

Комментариев нет:

Отправить комментарий