要编写一个弹窗围棋游戏,需要使用Python的图形界面库,例如Tkinter。下面是一个简单的示例代码,展示了一个基本的弹窗围棋游戏:

import tkinter as tk

class GobangGame:
    def __init__(self, root):
        self.root = root
        self.canvas = tk.Canvas(root, width=600, height=600)
        self.canvas.pack()
        self.canvas.bind('<Button-1>', self.on_click)
        self.board = [[0] * 15 for _ in range(15)]
        self.current_player = 1

    def draw_board(self):
        self.canvas.create_rectangle(0, 0, 600, 600, fill='saddle brown', outline='')
        for i in range(15):
            self.canvas.create_line(20 + 40 * i, 20, 20 + 40 * i, 580, fill='black')
            self.canvas.create_line(20, 20 + 40 * i, 580, 20 + 40 * i, fill='black')

    def draw_piece(self, row, col, player):
        x = 20 + 40 * col
        y = 20 + 40 * row
        if player == 1:
            color = 'black'
        else:
            color = 'white'
        self.canvas.create_oval(x - 18, y - 18, x + 18, y + 18, fill=color)

    def on_click(self, event):
        if 20 <= event.x <= 580 and 20 <= event.y <= 580:
            col = (event.x - 20) // 40
            row = (event.y - 20) // 40
            if self.board[row][col] == 0:
                self.board[row][col] = self.current_player
                self.draw_piece(row, col, self.current_player)
                self.check_win(row, col)
                self.current_player = 3 - self.current_player

    def check_win(self, row, col):
        directions = [(1, 0), (0, 1), (1, 1), (1, -1)]
        for dx, dy in directions:
            count = 1
            r, c = row, col
            while 0 <= r + dx < 15 and 0 <= c + dy < 15 and self.board[r + dx][c + dy] == self.current_player:
                count += 1
                r += dx
                c += dy
            r, c = row, col
            while 0 <= r - dx < 15 and 0 <= c - dy < 15 and self.board[r - dx][c - dy] == self.current_player:
                count += 1
                r -= dx
                c -= dy
            if count >= 5:
                self.show_message('Player {} wins!'.format(self.current_player))

    def show_message(self, message):
        self.canvas.create_text(300, 300, text=message, font=('Arial', 24, 'bold'), fill='white')

root = tk.Tk()
root.title('Gobang')
game = GobangGame(root)
game.draw_board()
root.mainloop()

这个程序使用了Tkinter库创建了一个窗口,然后在窗口上绘制了一个棋盘。玩家可以点击棋盘上的空白位置下棋,黑白两方轮流下棋。当有一方连成五个棋子时,弹出一个消息框显示该玩家获胜。

Python弹窗围棋游戏:简单易懂的代码示例

原文地址: https://www.cveoy.top/t/topic/qd5E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录