【Python游戏开发】史上最有趣的一款象棋代码,真是太好玩了,这些人都说它比国际象棋更好玩,不服你往下看?(敲赞啊~) 您所在的位置:网站首页 pyton游戏代码 【Python游戏开发】史上最有趣的一款象棋代码,真是太好玩了,这些人都说它比国际象棋更好玩,不服你往下看?(敲赞啊~)

【Python游戏开发】史上最有趣的一款象棋代码,真是太好玩了,这些人都说它比国际象棋更好玩,不服你往下看?(敲赞啊~)

2023-03-08 23:02| 来源: 网络整理| 查看: 265

导语

一直以来,中国象棋都是中华民族的一种象征,当然也是人们最为喜感的一种娱乐方式。

在若干年前,人们都习惯于约上自己的棋友,来一种激战。可是,科技改变人类,也改版了人

们的生活方式。现如今,越来越多的玩家开始偏向于下载中国象棋游戏,这样一来,无论何时

何地,只要打开手机或者电脑,就可以轻松游戏了。

关注公众号:Python源码领取海量代码或基础入门视频教程

哈喽。我是你们的小编,今天小编给大家用代码写一款中国象棋。

中国象棋是一种起源于中国的古老而智慧的棋类游戏,有着悠久的历史和广泛的群众基础。中

国象棋使用方形格状棋盘,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点

上。中国象棋的规则简单易懂,但是变化无穷,富有趣味和挑战性。

木子玩了一天,这个游戏的对战水平很高,自己跟自己下?o(╯□╰)o智商有限啊,快来个人跟

我一起下!

正文

一、游戏介绍

中国象棋游戏是一款怡神益智有益身心的游戏。象棋集文化、科学、艺术、竞技于一身,不但

可以开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志,而且可以修心养性,陶冶情

操,丰富文化生活,趣味性极强。

棋盘桌上尽风流,厮杀几曾休?妙手连珠,滴水不漏,谈笑写春秋。棋子红黑两分明,却在混

浊中。阴风阵阵,杀气重重,逐鹿谁为雄?

二、游戏规则

游戏规则太长了,跟平常现实中旗子的走向一样的,这里就不给大家一个一个解说了。大家可

以自己直接百度一下就行。

三、环境准备

1)运行环境

开发环境:Python3、Pycharm社区版、Pygame,tkinter部分自带的模块安装Python即可使

用。

相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以直接找我厚台获取 。

2)模块安装

第三方库的安装方式如下:

一般安装:pip install +模块名

镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名

(还有很多国内镜像源,这里是豆瓣的用习惯了,其他镜像源可以去看下之前文章都有的) 模

块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了的。

四、代码展示

​1)模块导入

import pygame as pg import sys import tkinter as tk from tkinter import * import tkinter.filedialog,tkinter.messagebox from threading import Thread import time,os,re

2)主程序

def gettime(): t=time.strftime('%Y%m%d%H%M%S',time.localtime()) return t def on_closing(): if tkinter.messagebox.askokcancel("退出", "你确定要退出吗?"): root.destroy() os._exit(1) root = tk.Tk() embed = tk.Frame(root, width = 900, height = 764) #creates embed frame for pygame window embed.grid(columnspan = (600), rowspan = 500) # Adds grid embed.pack(side = LEFT) #packs window to the left root.title('中国象棋') root.resizable(False,False) root.protocol("WM_DELETE_WINDOW", on_closing) os.environ['SDL_WINDOWID'] = str(embed.winfo_id()) os.environ['SDL_VIDEODRIVER'] = 'windib' #棋子65 filename=tkinter.StringVar() countqipu=0 step=0 def openfile(): global filename file=tkinter.filedialog.askopenfilename() filename.set(file) file_name=os.path.basename(file) compile=re.compile(r'\d{14}') content=compile.search(file_name) if content: restart() tkinter.messagebox.showinfo('提示', "载入棋谱成功") else: tkinter.messagebox.showerror('提示', "载入棋谱失败") def writeqipu(): global countqipu if countqipu==0: with open('{}'.format(gettime()+'.txt'),'w') as f: f.write(str(selectlist)+'\n'+str(chesslist)+'\n'+str(value_list)+'\n'+str(ischizi_list)+'\n'+str(death_value)) countqipu+=1 def upstep(): global step,countqipu,running running=False if filename.get()!='': try: print('开始上一步') with open(filename.get(),'r') as f: info=f.readlines() for i,j in enumerate(info): info[i]=j.replace('\n','') select_list=eval(info[0]) chess_list=eval(info[1]) valuelist=eval(info[2]) ischizilist=eval(info[3]) deathvalue_list=eval(info[4]) countqipu+=1 print(info) if step>0: selecttuple=select_list[step-1] chesstuple=chess_list[step-1] chessvalue=valuelist[step-1] czpd=ischizilist[step-1] deathvalue=deathvalue_list[step-1] if czpd: list[chesstuple[0]][chesstuple[1]]=deathvalue list[selecttuple[0]][selecttuple[1]] = chessvalue else: list[chesstuple[0]][chesstuple[1]]=0 list[selecttuple[0]][selecttuple[1]] = chessvalue step -= 1 except Exception as e: print(e) else: print('未载入棋谱') def downstep(): global step,countqipu,running running=False if filename.get() != '': print('开始下一步') try: with open(filename.get(),'r') as f: info=f.readlines() for i,j in enumerate(info): info[i]=j.replace('\n','') select_list=eval(info[0]) chess_list=eval(info[1]) valuelist=eval(info[2]) print(info) countqipu+=1 print(step) # if running: step += 1 if step>0: selecttuple=select_list[step-1] chesstuple=chess_list[step-1] chessvalue=valuelist[step-1] print(chessvalue,chesstuple[0],chesstuple[1]) list[selecttuple[0]][selecttuple[1]]=0 list[chesstuple[0]][chesstuple[1]]=chessvalue except Exception as e: print(e) else: print('未载入棋谱') def auto(): global step,countqipu,running running=False button2.config(state=tkinter.DISABLED) button3.config(state=tkinter.DISABLED) if filename.get() != '': # if running: try: print('开始下一步') with open(filename.get(),'r') as f: info=f.readlines() for i,j in enumerate(info): info[i]=j.replace('\n','') select_list=eval(info[0]) chess_list=eval(info[1]) valuelist=eval(info[2]) countqipu+=1 step += 1 if step>0: selecttuple=select_list[step-1] chesstuple=chess_list[step-1] chessvalue=valuelist[step-1] print(chessvalue,chesstuple[0],chesstuple[1]) list[selecttuple[0]][selecttuple[1]]=0 list[chesstuple[0]][chesstuple[1]]=chessvalue button4.after(1000, auto) except Exception as e: print(e) else: print('未载入棋谱')

五、效果展示

1)开始界面

​2)游戏界面

​3)游戏中

总结

下棋的小伙伴都会吧,不会的也可以学习一下中国传统文化哦~

自己跟自己下棋精力有限啊~23333

哈哈哈,好啦,今天就先介绍到这里了,感兴趣的小伙伴可以拿代码去试试啦。

关注公众号:Python源码领取海量代码或基础入门视频教程



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有