iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python实现有趣的象棋游戏
  • 673
分享到

基于Python实现有趣的象棋游戏

Python实现象棋游戏Python象棋游戏Python象棋Python游戏 2023-03-06 08:03:33 673人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录导语一、游戏介绍二、游戏规则三、环境准备四、代码展示五、效果展示导语 一直以来,中国象棋都是中华民族的一种象征,当然也是人们最为喜感的一种娱乐方式。 在若干年前,人们都习惯于约上

导语

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

在若干年前,人们都习惯于约上自己的棋友,来一种激战。可是,科技改变人类,也改版了人们的生活方式。现如今,越来越多的玩家开始偏向于下载中国象棋游戏,这样一来,无论何时何地,只要打开手机或者电脑,就可以轻松游戏了。

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

中国象棋是一种起源于中国的古老而智慧的棋类游戏,有着悠久的历史和广泛的群众基础。中国象棋使用方形格状棋盘,圆形棋子共有32个,红黑二色各有16个棋子,摆放和活动在交叉点上。中国象棋的规则简单易懂,但是变化无穷,富有趣味和挑战性。

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

一、游戏介绍

中国象棋游戏是一款怡神益智有益身心的游戏。象棋集文化、科学、艺术、竞技于一身,不但可以开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志,而且可以修心养性,陶冶情操,丰富文化生活,趣味性极强。

棋盘桌上尽风流,厮杀几曾休?妙手连珠,滴水不漏,谈笑写春秋。棋子红黑两分明,却在混浊中。阴风阵阵,杀气重重,逐鹿谁为雄?

二、游戏规则

游戏规则太长了,跟平常现实中旗子的走向一样的,这里就不给大家一个一个解说了。大家可以自己直接百度一下就行。

三、环境准备

1)运行环境 

 开发环境:python3PyCharm社区版、Pygame,tkinter部分自带的模块安装python即可使用。

 2)模块安装 

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

 一般安装:pip install +模块名 

 镜像源安装:pip install -i 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)游戏中

到此这篇关于基于Python实现有趣的象棋游戏的文章就介绍到这了,更多相关Python象棋内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 基于Python实现有趣的象棋游戏

本文链接: https://www.lsjlt.com/news/198565.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python实现有趣的象棋游戏
    目录导语一、游戏介绍二、游戏规则三、环境准备四、代码展示五、效果展示导语 一直以来,中国象棋都是中华民族的一种象征,当然也是人们最为喜感的一种娱乐方式。 在若干年前,人们都习惯于约上...
    99+
    2023-03-06
    Python实现象棋游戏 Python象棋游戏 Python象棋 Python游戏
  • 基于Python如何实现有趣的象棋游戏
    本篇内容主要讲解“基于Python如何实现有趣的象棋游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python如何实现有趣的象棋游戏”吧!一、游戏介绍中国象棋游戏是一款怡神益智有益身心的...
    99+
    2023-07-05
  • 基于Python实现五子棋游戏
    本文实例为大家分享了Python实现五子棋游戏的具体代码,供大家参考,具体内容如下 了解游戏的规则是我们首先需要做的事情,如果不知晓规则,那么我们肯定寸步难行。 五子棋游戏规则: 1...
    99+
    2024-04-02
  • python实现象棋游戏
    本文实例为大家分享了python实现象棋游戏的具体代码,供大家参考,具体内容如下 import math from turtle import * speed(0)   #调整画的...
    99+
    2024-04-02
  • 基于Python如何实现围棋游戏
    本篇内容主要讲解“基于Python如何实现围棋游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python如何实现围棋游戏”吧!1.导入模块tkinter:ttk覆盖tkinter部分对象...
    99+
    2023-06-30
  • 基于c++的中国象棋游戏设计与实现
    目录1.文档2.游戏操作逻辑3.UI框架4.网络通信1.文档 文档分为两部分,一部分在代码中,然后通过doxygen生成HTML。解压本目录下的html.zip后打开index.ht...
    99+
    2024-04-02
  • 基于jquery实现五子棋游戏
    本文实例为大家分享了jquery实现五子棋游戏的具体代码,供大家参考,具体内容如下 花了一天时间完成一个简单五子棋游戏(非人机) html: <!DOCTYPE html>...
    99+
    2024-04-02
  • 基于Python实现围棋游戏的示例代码
    目录1.导入模块2.初始化棋盘3. 开始游戏4.放弃当前回合落子5.悔棋判断6.重新开始7.右侧太极图的设置8.落子设置9.吃子规则判定设置10.其他11.程序入口12.效果图文件自...
    99+
    2024-04-02
  • Android实现象棋游戏
    本文实例为大家分享了Android实现象棋游戏的具体代码,供大家参考,具体内容如下 主要是实现两人对战象棋,没有实现人机对战,主要不会判断下一步棋走那个好,或者对每下一步棋进行打分而...
    99+
    2024-04-02
  • 基于flask实现五子棋小游戏
    本文实例为大家分享了基于flask实现五子棋小游戏的具体代码,供大家参考,具体内容如下 前言 首先说明一下,本人方向是java后端,只因老师布置了一个作业,要用flask来做一个五子...
    99+
    2024-04-02
  • 基于C++实现五子棋小游戏
    本文实例为大家分享了C++实现五子棋小游戏的具体代码,供大家参考,具体内容如下  (这是一个颜色会变化的呦) #include <iostream> usi...
    99+
    2024-04-02
  • 基于JS实现经典的井字棋游戏
    目录先看成品游戏初始化界面:玩家获胜AI电脑获胜思路生成棋盘重新开始玩家落子电脑落子代码HTMLCSSjs井字棋作为我们在上学时代必玩的一款连珠游戏,你知道如何做到先手必然不会输吗?...
    99+
    2024-04-02
  • 基于C语言实现井字棋游戏
    井字棋游戏要求在3乘3棋盘上,每行都相同或者每列都相同再或者对角线相同,则胜出.因此我们可以使用一个二维数组来表示棋盘,判断胜负只需要判断数组元素是否相同即可.具体我们可以分为以下几...
    99+
    2024-04-02
  • 基于C语言实现三子棋游戏
    说到三子棋,我想大家一定不陌生吧,它也是我童年中的一部分,今天我们用C语言来实现一下简易版的三子棋。 首先,介绍一下游戏规则: 1.在一个九宫格上进行下棋; 2.玩家两名,双方先后落...
    99+
    2024-04-02
  • Python实现人机中国象棋游戏
    目录导语1.游戏规则&基本玩法1.1 基本玩法1.2 行棋规则2.素材文件3.主要代码3.1 Chinachess.py 为主文件3.2 Constants.py 数据常量3...
    99+
    2024-04-02
  • Java实现中国象棋游戏
    目录一、界面二、按钮三、加棋子四、实现棋子的移动五、判断胜负六、按钮“开始游戏”和“重新开始”的实现七、加规则八、轮次九、悔棋十、背景...
    99+
    2024-04-02
  • js实现中国象棋游戏
    本文实例为大家分享了js实现中国象棋游戏的具体代码,供大家参考,具体内容如下 使用table元素作表格,div元素作象棋。 效果如下: 代码如下: <html> <...
    99+
    2024-04-02
  • 基于C语言实现三子棋小游戏
    在写三子棋之前,我们要先了解三子棋的一个大概的图形,以便于我们整理思路。          ...
    99+
    2024-04-02
  • 基于Java实现马踏棋盘游戏算法
    马踏棋盘很好实现,但有时运行起来特别慢,还可能出不来结果,最常用的就是深度优先遍历+回溯,相信大家都学过数据结构,对图的深度遍历都有了解,下面就是代码的实现,如果对代码理解有困难,可...
    99+
    2024-04-02
  • 基于Python怎么实现人机对战五子棋游戏
    人人对战游戏规则:p1为黑子,p2为白子,黑子先手,一方达到五子相连即为获胜。动态演示源码分享cheackboard.py定义黑白子,落子位置以及获胜规则。from collections import namedtuple Chessm...
    99+
    2023-05-20
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作