#问题情景:
接上篇,此篇完成五子棋的逻辑部分。
#思路:
- 分析:需要一个判断输赢的逻辑、一个将棋子落在目标位置的逻辑、标签和按钮对应的方法
- 判断输赢:
- 分别对落子位置的横纵轴位置和两个斜边位置的同色棋子进行计数
- 如果任意一处同色棋子数量达到5或5以上,则判断赢家和游戏结束
- 每次棋子落下,都要调用一次判断输赢的逻辑
- 落子:
- 每次坐标点击会捕获一个坐标位置,找出离这个坐标最近的棋位
- 落子
#实现:
# -*- coding: utf-8 -*-
"""
Created on Fri Feb 2 20:04:38 2018
@author: 23755
"""
import tkinter as tk
PIECE_SIZE = 10
click_x = 0
click_y = 0
pieces_x = [i for i in range(32, 523, 35)]
pieces_y = [i for i in range(38, 529, 35)]
coor_black = []
coor_white = []
person_flag = 1
piece_color = "black"
#右上方的棋子提示(工具)
def showChange(color):
global piece_color
piece_color = color
side_canvas.delete("show_piece")
side_canvas.create_oval(110 - PIECE_SIZE, 25 - PIECE_SIZE,
110 + PIECE_SIZE, 25 + PIECE_SIZE,
fill = piece_color, tags = ("show_piece"))
#输赢的提示、游戏结束的提示(工具)
def pushMessage():
if person_flag == -1:
var1.set("白棋赢")
elif person_flag == 1:
var1.set("黑棋赢")
var2.set("游戏结束")
#棋子的计数(工具)
def piecesCount

本文是Python五子棋游戏的下篇,主要介绍游戏逻辑的实现,包括判断输赢的算法和棋子落位逻辑。通过分析棋盘上横纵轴及两个斜边同色棋子数量,当某处达到5或更多时,确定赢家并结束游戏。此外,还讨论了如何在坐标点击后找到最近的棋位进行落子。最后,提出可以进一步开发自动对弈的逻辑。完整代码可在作者的GitHub仓库中获取。
最低0.47元/天 解锁文章
841





