• 大小: 131KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2024-02-05
  • 语言: Python
  • 标签: python  

资源简介

Python项目案例开发从入门到实战源代码第15章 中国象棋代码.rar

资源截图

代码片段和文件信息

from tkinter import *
from tkinter.messagebox import *
import time

root = Tk()
# 创建一个Canvas,设置其背景色为白色 
cv = Canvas(root bg = ‘white‘ width = 720 height = 800)
chessname=[“黑车““黑马““黑象““黑仕““黑将““黑仕““黑象““黑马““黑车““黑卒““黑炮“
           “红车““红马““红相““红仕““红帅““红仕““红相““红马““红车““红兵““红炮“]
imgs= [PhotoImage(file=‘bmp\\‘+chessname[i]+‘.png‘)for i in range(022) ]

chessmap =  [[-1-1-1-1-1-1-1-1-1-1]for y in range(9)]
#定义一个字典
dict_ChessName={}

LocalPlayer=“红“     #LocalPlayer记录自己是红方还是黑方
first=True           #区分第一次还是第二次选中的棋子
IsMyTurn = True
rect1=0
rect2=0
firstChessid=0
def IsAbleToPut(id x yoldxoldy):# 实现判断是否能走棋返回逻辑值,这代码最复杂。
    # oldx oldy 棋子在棋盘原坐标          
    # x y       棋子移动到棋盘的新坐标
    print(id“QQQ“dict_ChessName[id])
    qi_name = dict_ChessName[id][1]  #取字符串第二个字符,“黑将“变成“将“
    #“将“ “帅“走棋判断
    if (qi_name == “将“ or qi_name == “帅“):
        if ((x - oldx) * (y - oldy) != 0):
            return False;
        if (abs(x - oldx) > 1 or abs(y - oldy) > 1):
            return False;
        if (x < 3 or x > 5 or (y >= 3 and y <=6)):
            return False;
        return True;


    #“士“走棋判断
    if (qi_name == “士“ or qi_name == “仕“):
        if ((x - oldx) * (y - oldy) == 0):
            return False;
        if (abs(x - oldx) > 1 or abs(y - oldy) > 1):
            return False;
        if (x < 3 or x > 5 or (y >= 3 and y <=6)):
            return False;
        return True;
    
    #“象“走棋判断
    if (qi_name == “象“ or qi_name == “相“):
        if ((x - oldx) * (y - oldy) == 0):
            return False;
        if (abs(x - oldx) != 2 or abs(y - oldy) != 2):
            return False;
        if (y < 5 and qi_name == “相“ ):#过河
            return False;
        if (y >= 5 and qi_name == “象“ ):#过河
            return False;
        i = 0; j = 0;#ij必须有初始值
        if (x - oldx == 2):
            i = x - 1;
        if (x - oldx == -2):
            i = x + 1;
        if (y - oldy == 2):
            j = y - 1;
        if (y - oldy == -2):
            j = y + 1;
        if (chessmap[i][j] != -1):#憋象腿
           return False;
        return True;

    #“马“走棋判断
    if (qi_name == “马“ or qi_name == “马“):
        if (abs(x - oldx) * abs(y - oldy) != 2):
            return False;
        if (x - oldx == 2): 
            if (chessmap[x - 1][oldy] != -1):#蹩马腿
                return False;
        if (x - oldx == -2):
            if (chessmap[x + 1][oldy] != -1):#蹩马腿
                return False;
        if (y - oldy == 2):
            if (chessmap[oldx][y - 1] != -1):#蹩马腿
                return False;
        if (y - oldy == -2):
            if (chessmap[oldx][y + 1] != -1):#蹩马腿
                return False;
        return True;

    #“车“走棋判断                
    if (qi_name == “车“ or qi_name == “车“):
        #判断是否直线
        if ((x - oldx) * (y - oldy) != 0):
           return False;
        #判断是否隔有棋子
        if (x != oldx):
            if (oldx 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1120  2018-08-02 10:51  第15章  中国象棋代码\2018-08-02.txt

     文件     119298  2009-07-25 18:53  第15章  中国象棋代码\bmp\棋盘.png

     文件       1370  2009-07-25 18:07  第15章  中国象棋代码\bmp\红仕.png

     文件       1512  2009-07-25 18:07  第15章  中国象棋代码\bmp\红兵.png

     文件       1499  2009-07-25 18:07  第15章  中国象棋代码\bmp\红帅.png

     文件       1634  2009-07-25 18:07  第15章  中国象棋代码\bmp\红炮.png

     文件       1564  2009-07-25 18:07  第15章  中国象棋代码\bmp\红相.png

     文件       1544  2009-07-25 18:07  第15章  中国象棋代码\bmp\红车.png

     文件       1452  2009-07-25 18:07  第15章  中国象棋代码\bmp\红马.png

     文件       1439  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑仕.png

     文件       1475  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑卒.png

     文件       1618  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑将.png

     文件       1646  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑炮.png

     文件       1594  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑象.png

     文件       1508  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑车.png

     文件       1432  2009-07-25 18:07  第15章  中国象棋代码\bmp\黑马.png

     文件      14634  2018-08-02 10:25  第15章  中国象棋代码\mychess V2.2-1.py

     目录          0  2018-11-07 19:54  第15章  中国象棋代码\bmp

     目录          0  2018-11-07 19:54  第15章  中国象棋代码

----------- ---------  ---------- -----  ----

               156339                    19


评论

共有 条评论