中国象棋

题目简介

此次对弈系统的开发研究是大学专业知识的一次综合应用于提高,计算机主要安装

jdk

运行环境和相关应用程序开发工具。运用

java

gui

监听器和标准类库等知识,首先

编写一个主类

ChineseChess

,构造一个主窗口,在主窗口上添加一工具栏,有相应的按

钮,用此来用来对“开始,悔棋

,信息提示,退出,重新开始”进行操作。

1.

中国象棋对弈系统是:图形界面,监听器等技术的综合运用。

2.

对弈的实现:利用鼠标的监听来实现对象棋走法的操作。

中国象棋对弈系统要求实现下棋界面,利用鼠标监听来实现走棋与吃棋,胜负判断

并伴有信息提示,在棋盘界面上端设有工具栏,内容包括“开始,悔棋,信息提示,退

出,重新开始”等相关功能。详情如下:

1.

开始:开始一场新的游戏,并重新棋子初始化。

2.

悔棋:返回到上一步棋局,并开始继续下棋。

3.

信息提示:提示开始该谁走棋,默认红棋先走。

4.

退出:对话框提示,是否退出系统。

5.

重新开始:删除上次下棋的所有痕迹,重新初始化界面。

代码地址

https://github.com/zhuyunlonglihai/zhuyl/

测试情况

本系统可以实现人人对弈详情如图所示:

点击棋盘开始按钮开局,信息提示栏显示“红旗先走”

,并且红方先手。按照提

示依次走棋最终分出胜负。

问题及心得

通过这次实习,感觉自己还有很多都不会,感谢老师这么多天以来的悉心的辅导和

悉心栽培和对成长的关系与爱护。

在走出校园之前毕业设计是大学生所学的唯一凭证,

它概括了大学生在校的学习状

况,总结了大学以来的个人实力。接收到指导老师的任务书,经

过差不多1个月的努力拼搏,终于完成了《中国象棋对弈系统》的毕

业论文。每走一步都是新的尝试与挑战,是在大学期间唯一完成的大项目之一。

时间: 2024-10-10 20:17:22

中国象棋的相关文章

[AHOI2009]中国象棋

题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方式是:一个炮攻击到另一个炮,当且仅当它们在同一行或同一列中,且它们之间恰好 有一个棋子.你也来和小可可一起锻炼一下思维吧! 输入输出格式 输入格式: 一行包含两个整数N,M,之间由一个空格隔开. 输出格式: 总共的方案数,由于该值可能很大,只需给出方案数模9999973的结果. 输入输出样例 输入样例#

团队-编程项目 中国象棋-需求分析

需求分析: 1.棋盘和棋子的绘制 2.按照象棋规则对棋子进行布局   3.鼠标响应 : 在对弈中,棋子是必须可以移动的,不然游戏无法进行.因此,鼠标左键点击是必不可少的一部分. 4.棋子的功能分析:  中国象棋中各色的象棋棋子的功能使象棋具有了真正的趣味性,中国象棋的棋子的类型大致分为:帅(将).士.象.马.车.炮.兵(卒)等几个类型.  帅(将):红方中的帅和黑方中的将的功能相同,都是只能在九宫格中进行横向和竖向的移动,每次移动一格,并且不能移动超出九宫格,帅和将不能见面.  士:士在整片棋盘

JavaScript中国象棋程序(0) - 前言

"JavaScript中国象棋程序" 这一系列教程将带你从头使用JavaScript编写一个中国象棋程序.希望通过这个系列,我们对博弈程序的算法有一定的了解.同时,我们也将构建出一个不错的中国象棋程序. JavaScript中国象棋程序系列共有9个部分: 0.JavaScript中国象棋程序(0)- 前言 1.JavaScript中国象棋程序(1)- 界面设计 2.JavaScript中国象棋程序(2)- 校验棋子走法 3.JavaScript中国象棋程序(3)- 电脑自动走棋 4.J

BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )

dp(i, j, k)表示考虑了前i行, 放了0个炮的有j列, 放了1个炮的有k列. 时间复杂度O(NM^2) -------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const in

中国象棋棋子及棋盘的绘制

一.题目简介 本课程设计主要是使用Swing这个Java自带的图形开发工具实现中国象棋棋子及棋盘的绘制,并根据相应的象棋规则,可以设计棋谱,完成棋谱的保存和对已保存的棋谱的演示,方便现在爱棋人士对残局的收藏于研究,而且达到了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,熟练的应用面向对象的思想和设计方法解决实际问题的能力的目的. 1.当两方有一方将(帅)被吃掉后,程序不能自动结束或提示游戏结束,但想到该程序并不是要进行两方对弈,而是要设计棋谱所以在能力实现范围内

1.2中国象棋将帅问题

(根据中国象棋的基本原则)在只有双的将帅棋盘上,找出所有双方可以落子的位置(将帅不能碰面),但只能使用一个变量. 直觉上我们想到,只要遍历将帅所有可能的位置,去除将帅冲突的位置即可.可见,剩下的问题就在于如何使用一个变量来做二重循环的遍历.书中解法一给出的方法是将一个Byte变量拆成两个用,前一半代表"帅"可以走的位置,后一个变量代表"将"可以走的位置(事先已经将"将"和"帅"可以走的3*3的位置进行了编号),利用位操作即可获

Qt版本中国象棋开发(四)

内容:走法产生 中国象棋基础搜索AI, 极大值,极小值剪枝搜索, 静态估值函数 理论基础: (一)人机博弈走法产生: 先遍历某一方的所有棋子,再遍历整个棋盘,得到每个棋子的所有走棋情况(效率不高,可以改进) 1 void SingleGame::getAllPossibleMove(QVector<Step *> &steps) 2 { 3 int min, max; 4 if(this->_bRedTurn) 5 { 6 min = 0, max = 16; 7 } 8 els

Cocos2d-X开发中国象棋《六》游戏开始功能的实现

我在前面的博客Cocos2d-X开发中国象棋<四>设计游戏场景中介绍了在游戏场景上场景了一个开始按钮,并没有实现开始的功能 游戏开始功能的实现效果: 实现思路: 1.显示随机位置的棋子 2.将棋子移动到棋盘上的指定位置 具体实现方式: 首先在SceneGame类中定义一个initStone()函数用于初始化棋子 initStone()函数实现了3个功能 1.创建棋子 2.将棋子设置到随机位置 3.隐藏棋子 initStone()中的代码: //初始化32个棋子 void SceneGame::

团队-团队编程项目中国象棋-需求分析

需求分析: 1.棋盘和棋子的绘制 2.按照象棋规则对棋子进行布局   3.鼠标响应 : 在对弈中,棋子是必须可以移动的,不然游戏无法进行.因此,鼠标左键点击是必不可少的一部分. 4.棋子的功能分析:  中国象棋中各色的象棋棋子的功能使象棋具有了真正的趣味性,中国象棋的棋子的类型大致分为:帅(将).士.象.马.车.炮.兵(卒)等几个类型.  帅(将):红方中的帅和黑方中的将的功能相同,都是只能在九宫格中进行横向和竖向的移动,每次移动一格,并且不能移动超出九宫格,帅和将不能见面.  士:士在整片棋盘

关于中国象棋的意思感悟

哈哈 由于刚刚把工作辞了,然后想好好安静的玩一个月.然而现实是残酷的,时间过个还是好快,自己想的放松其实并没有放松 尤其是看书什么的,并不比上班的时候清闲啊,今天看了一天书,其实实际真正利用的时间还是很少的吧 看了关于怎么做笔记的,恩,用方格纸分析做笔记那本书. 然后还看了数据科学家养成,没问题吧. 看完了之后晚上8点回到宿舍,立马洗澡,但实在是路上感觉,一天这样下来没有好好的玩会游戏太对不起自己了 那么就~~   不能打开电脑跟朋友约好的,21天不玩LOL.... 黑脸 哈哈  然后就找室友下