#问题情景:
接上篇,此篇完成五子棋的逻辑部分。
#思路:
- 分析:需要一个判断输赢的逻辑、一个将棋子落在目标位置的逻辑、标签和按钮对应的方法
- 判断输赢:
- 分别对落子位置的横纵轴位置和两个斜边位置的同色棋子进行计数
- 如果任意一处同色棋子数量达到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("游戏结束")
#棋子的计数(工具)