电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于Python的网络中国象棋游戏设计与实现

29页
  • 卖家[上传人]:我****
  • 文档编号:121703123
  • 上传时间:2020-02-25
  • 文档格式:DOC
  • 文档大小:1.09MB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、基于Python的网络中国象棋游戏设计与实现摘要:中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展。本文将传统的中国象棋游戏和当下的互联网技术结合作为重点,围绕基于UDP的SOCKET编程实现网上双人对战游戏进行阐述。网络中国象棋采用C/S架构,分为服务器端和客户端,在进行游戏时,服务器端首先启动,当客户端成功连接服务器端后即可走棋;在服务器端和客户端中,又分为三个部分,分别是局面表示,走法生成和建立连接三大部分,分别实现游戏的各个功能,本文采用了Python语言,充分发挥了其易读易维护,清晰化一的语言风格,开发出功能完善界,界面美观的中国象棋游戏。关键词:网络中国象棋游戏;Python;socketDesign and Implementation of Online Chinese Chess Game Based on PythonAbstract:Chinese chess is a well-known chess game. With the advent of the Internet era, peoples enter

      2、tainment has gradually evolved toward the PC and mobile. This article focuses on the combination of traditional Chinese chess games and current Internet technologies. The online double-play game is implemented around the UDP-based SOCKET programming.Network Chinese Chess adopts C/S architecture and is divided into server and client. When playing the game, the server first starts, and when the client successfully connects to the server, it can move; In the server side and the client side, it is d

      3、ivided into three parts. They are the situational representation, the three major parts of the game generation and the establishment of the connection, respectively, to achieve the various functions of the game, This article adopts the Python language, which makes full use of its easy-to-read, easy-to-maintain, clear-cut language style, and develops a Chinese chess game with perfect functions and beautiful interface.Key words:Network Chinese Chess Game; Python; socket目 录1 绪论11.1研究背景11.2网络象棋的发展背景

      4、11.3研究意义22 相关技术介绍22.1 Python简介22.2 Socket简介22.3 UDP简介23 需求分析23.1 局面表示23.2 走法生成33.3 鼠标响应33.4 双人对弈44 系统实现44.1程序流程设计44.2 服务器端54.2.1 主程序54.2.2 用户界面84.2.3 走法生成114.2.4 悔棋164.2.5 发送与接收消息184.2.6 画对方棋子204.2.7启动新线程214.2.8 开始新游戏214.2.9 求和与认输224.2.10 退出游戏234.3 客户端244.3.1 主程序254.3.2 用户界面264.3.3 坐标的转换265 系统测试与总结275.1 系统测试275.1.1 运行效果测试275.1.2 系统功能测试275.2 总结与展望28参考文献291 绪论1.1研究背景在21世纪的今天,互联网技术已然广泛深入到了人们生活与学习的方方面面。互联网技术涉及的领域更是种类繁多。与此同时,随着计算机走进了千家万户,用它在互联网上进行游戏已经成为了当今大多数人的娱乐选择和休闲方式1。而这种方式也使得一些古老的中国益智游戏重焕生机,中国象棋便

      5、是其中之一。通过网络,即使远在天边的棋友亦可相互切磋,增长技艺,在这个大平台上交到朋友。本人身为一名学生,在家庭的熏陶下,对中国象棋从小就有很高的兴趣,在系统学习了Python语言后,想通过这次毕业设计,将中国象棋这个游戏同互联网结合起来,实现能够在网络上进行双人对战的功能,一来是自己的兴趣使然,二来也对曾经学过的知识进行一次巩固。1.2网络象棋的发展背景伴随互联网时代的到来以及娱乐方式的转变,众多民间益智游戏相继被“移植”到了网络当中,中国象棋也不例外。如果想用传统的方法和一位异地的朋友下棋无疑是 意见困难的是,这时候互联网的便利性和同步性优点就显现了出来。在网络上互不相识的棋友们可以随时对弈切磋,无疑对中国象棋的发展带来了重大的积极作用,这是值得肯定的2。然而中国象棋在新时代中却也面临着诸多的问题。随着IT行业的逐步成熟,人工智能应运而生,在棋坛当中最著名的事件便是2016年AlphaGo的横空出世3,横扫当今围棋各路高手。同样的,人工智能在中国象棋领域也基本上形成“统治”地位4。可以说象棋软件的棋力是与日俱增,这本是棋坛的好事一桩,然而许多人却对软件形成了很强的依赖程度,在网上使

      6、用软件来与其他人对弈,就和考试作弊一样,不仅自己的棋力无法提升,还大大打击了对方对象棋的兴趣,这与给棋手们带来便捷,相互提高象棋技艺的宗旨相悖,造成了很恶劣的风气。当代年轻人正处于信息爆炸的时代,身边的新事物层出不穷,面临的选择越来越多,中国象棋在青少年圈的印象大多都是街摊边的中老年人所玩的游戏,从而在心里产生抵触心理5,会感觉玩象棋是“掉价”的,在这一方面缺乏对青少年的正确引导。1.3研究意义进入信息时代以来,计算机走进了千家万户,地球变成了地球村,本设计正是借着互联网的便捷性与同步性,着手建立一个基于Python的网络中国象棋游戏6,既摆脱了单机版的乏味性和依赖性,又能在切磋较量中提升棋艺,获得友情,创造一个良好的竞技风气,提供一种休闲娱乐的方式,这便是我想设计一款中国象棋网上对弈游戏的初衷。2 相关技术介绍2.1 Python简介Python是一门跨平台、开源、免费的解释型高级动态编程语言,作为一门动态语言它更适合初学编程者,具有简洁、可读性高、易于学习等突出优点。在2019年一月的编程语言TOP20中,Python语言排行第三7,成为了最受欢迎的程序设计语言之一。2.2 Soc

      7、ket简介Socket是套接字的英文名称,是网络编程的一个抽象概念,当前的任何网络通信都是通过Socket来完成的,同样的网络版中国象棋也不例外。通常用一个Socket表示“打开了一个网络连接”8。而打开一个Socket需要知道目标计算机的IP和端口号,再制定协议类型。2.3 UDP简介UDP协议(User Datagram Protocol)是用户数据报协议,是面向无连接的协议,属于传输层的协议9。只需知道对方的IP地址和端口号即可直接发送数据包,但是不保证传输的可靠性。使用UDP的双方分为服务器端和客户端。UDP的优势:相对于TCP协议来说,UDP没有发送数据之前的连接建立过程,而且传输速度更快,所以对于不要求可靠到达的数据就可以使用UDP协议10。UDP存在的问题:UDP不能知道是否有报文丢失以及接收方到达的报文数据的顺序是否和发送时的顺序一样。即传输数据不可靠11。3 需求分析3.1 局面表示局面表示即绘制棋盘和棋子12。根据行棋方的不同,绘制棋子时己方在南,敌方在北。棋子、棋盘显示需要的图片资源如下所示,构成一套还不错的棋具。图 1 棋盘初始化效果3.2 走法生成走法生成即根

      8、据中国象棋的行棋规则对各个棋子进行走棋限制,判断是否可以走棋。在违规走棋后提示“不符合走棋规则”。3.3 鼠标响应在行棋过程中,需要用户进行鼠标点击才可以移动棋子,鼠标响应是人机交互不可缺少的一部分13。本设计利用Python的GUI库tkinter中的event类进行鼠标响应。当用户点击棋盘时,event类会生成event.x和event.y对象,分别表示相对于棋盘左上角(即左上角坐标为0,0),鼠标点击位置像素横坐标和像素纵坐标。这样我们再进行一步坐标转换即可实现鼠标响应14。3.4 双人对弈本设计分为服务器端和客户端两部分,连接完成后需要实现双人交替走棋,即一方进行走棋后,向对方发送走棋信息,对方接收信息后,将信息转化为走棋动作表示在棋盘上15,然后对方再走棋,形成循环直到一方获得游戏胜利、认输、求和或退出游戏。4 系统实现本设计是基于UDP的Socket编程方法来制作的网络中国象棋程序,分为服务器端和客户端两大块。服务器端为红方,客户端为黑方。4.1程序流程设计程序的总体流程如下图所示。此流程是不进行悔棋、求和、认输、重新开始情况下的流程。如果进行上述操作,则相应执行悔棋、求和

      9、、认输、重新开始的功能。 图 2 中国象棋总流程程序的功能图如下图所示:图 3 中国象棋功能图4.2 服务器端4.2.1 主程序服务器端的程序界面如下图所示:图 4 服务器端程序界面主程序实现的功能如下:(1) 创建Windows窗口对象root。(2) 设置己方是红方还是黑方。(3)初始化游戏棋盘chessmap。(4)加载棋盘与棋子。(5)添加显示提示信息的标签Label。(6)绑定Canvas的鼠标和按钮的左键单击事件。(7)创建UDP通信服务器端的Socket,绑定在8000端口。(8)启动新线程接收客户端发送过来的新消息。代码如下:# -*- coding: utf-8 -*from tkinter import *from tkinter.messagebox import *import socketimport threadingimport osroot = Tk()root.title(中国象棋服务器端(红方))#创建一个Canvas,设置其背景色为白色cv = Canvas(root, bg = white, width = 720, height = 800)chessname=黑车,黑马,黑象,黑仕,黑将,黑仕,黑象,黑马,黑车,黑卒,黑炮, 红车,红马,红相,红仕,红帅,红仕,红相,红马,红车,红兵,红炮imgs= PhotoImage(file=bmp+chessnamei+.png)for

      《基于Python的网络中国象棋游戏设计与实现》由会员我****分享,可在线阅读,更多相关《基于Python的网络中国象棋游戏设计与实现》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.