基于Java语言的五子棋游戏设计开题报告

时间:2024.4.30

基于Java语言的五子棋游戏设计开题报告

毕业设计(论文)开题报告书

课 题 名 称 基于Java语言的五子棋游戏设计与实现 学 生 姓 名 王 正 平 学 号 1141302041 系、年级专业 信息工程系、11级计算机科学与技术 指 导 教 师 成 娅 辉

20xx年 12 月 15 日

基于Java语言的五子棋游戏设计开题报告

基于Java语言的五子棋游戏设计开题报告

基于Java语言的五子棋游戏设计开题报告

基于Java语言的五子棋游戏设计开题报告

基于Java语言的五子棋游戏设计开题报告


第二篇:基于C语言的五子棋游戏程序设计


·

月201210年4月

第164卷第2期

·

宁波职业技术学院学报

JournalofNingboPolytechnic

Apr,201210Vol.164No.No.22

基于C语言的五子棋游戏程序设计

陈慧杰,郭占祥

(内蒙古民族大学计算机科学与技术学院,内蒙古通辽

028043)

要:为了设计人人对弈模式的五子棋游戏系统,采用了C语言函数模块化程序设计方法,利用Visual

C++6.0编译器运行游戏,实现一方执白棋,一方执黑棋,通过屏幕上的文字提示,轮流走棋,最先使五子相连

一方获胜的人人对弈功能。同时,也对其他游戏系统的开发设计具有一定的借鉴作用。

关键词:五子棋;C语言;人人对弈中图分类号:TP312

文献标识码:A

文章编号:1671-2153(2012)02-0041-04

0引言

VisualC++6.0是一个集面向过程与面向对

开始

象为一体的开发工具,本游戏以VisualC++6.0为工具,以#include<stdio.h>为头文件展开游戏的设计,以函数模块化的思想进行设计,思路清晰,可操作性强。另外,该游戏在WindowsXP及

欢迎界面信息

显示棋盘10*10

Player1先下

Windows7等操作系统环境下均可运行,兼容性强。

本设计重点从函数模块化方面进行研究。

显示棋子位置,Player1为空心子○,

Player2为实心子●

1设计流程图

五子棋设计主要由“欢迎界面模块”、“初始化

换玩家下棋

模块”、“下棋操作模块”、“判断胜负模块”和“游戏结束模块”共5个模块组成。“欢迎界面模块”实现在游戏开始时出现一个欢迎界面,同时介绍游戏规则的功能;“初始化模块”实现画出棋盘大小,并可输入棋子功能;“下棋操作模块”主要实现判断键盘输入哪个键并执行操作,包括玩家Player1先落棋,玩家Player2后落棋及玩家轮流下棋的功能;“判断胜负模块”实现判断五子连棋为赢家的功能;“游戏结束模块”实现退出游戏功能。具体流程如图1所示。

五子连成一线?

NY

下满棋盘?

N

结束游戏

Y和棋

图1五子棋游戏流程

收稿日期:2011-11-29

作者简介:陈慧杰(1964-),女,内蒙古通辽人,副教授,硕士,从事计算机应用研究。

20xx年第2期

基于C语言的五子棋游戏程序设计

基于C语言的五子棋游戏程序设计

宁波职业技术学院学报E-mail:nbtpxb@163.com

2主要功能模块设计

本游戏设计主要利用函数模块化设计思想,

通过主函数调用各个自定义函数完成游戏的运行。以下为主函数和各自定义函数功能的设计及其运行结果。

2.1欢迎界面voidwelcome()函数设计欢迎界面函数的设计以格式化输出函数为核

心,介绍了游戏规则,同时也展现了友好的游戏界面,其主要代码为

/*********欢迎界面*******/

voidwelcome(){printf("**********\n");printf("制作人:10计汉(1)班:郭占祥。\n");printf("Welcome!!!\n");printf("输入你所下棋

子的行数和列数,并分别通过enter键来确定

图3

棋盘初始化输出显示

列数实现下棋操作,其核心代码为[1]:

\n");printf("通过backspace键来悔棋\n");printf

("**********\n");}

其运行结果如图2所示。

/*********显示棋子********/voidchess(intp)

{inti,j,k,m;inta[N*N],b[N*N];for(i=1;i<=N*N;i++)

a[i]=weizhi[i].x[i];b[i]=weizhi[i].y[i];}

for(m=1;m<p;m++)

{while(weizhi[p].x[p]==a[m]&&weizhi[p].y[p]==b[m])

{printf("error!\n");weizhi[p].x[p]=zouqihang();weizhi[p].y[p]=zouqilie();m=1;}}

下面通过调用循环语句实现再一次初始化棋盘:

图2欢迎界面输出显示

2.2初始化棋盘voidinitialization()函数设计初始化棋盘函数设置坐标为10×10,也可以根

for(i=0;i<N;i++){printf("%2d",i);printf

("");}printf("\n");

据需求适当修改棋盘大小方便下棋,以“.”代替直线画出棋盘,通过循环语句实现棋盘显示功能,并且分别赋予其横纵坐标,为走棋奠定基础,其主要代码有:

for(i=1;i<N;i++){for(j=1;j<N;j++)

{if(j==1)printf("%2d",i);for(k=1;k<=p;k++){if(i==weizhi[k].x[k]&&j==weizhi[k].y[k])

{if(k%2==1){printf("○");break;}elseif(k%2==0){printf("●");break;}}}

if(k>p)printf("·");elsecontinue;}printf("\n");}}

实现横坐标输入核心代码:

/**********初始化棋盘********/voidinitialization()

{inti,j;for(i=0;i<N;i++)

{printf("%2d",i);printf("");}printf("\n");for(i=1;i<N;i++){for(j=0;j<N;j++)

{if(j==0)printf("%2d",i);elseprintf("·");}printf("\n");}}

其运行结果如图3所示。

2.3下棋操作voidchess(intp)函数设计

通过以上初始化棋盘函数的设计,可以确定输入棋子的位置和状态,再利用循环语句重新调用初始化棋盘,实现下棋操作,然后输入相应的行

intzouqihang()

{intx;printf("请输入要走棋子所在行数!\n");printf("x=");

scanf("%d",&x);while(x>N-1||x<1)

{printf("error!\n");printf("请输入要走棋子所在行数!\n");

printf("x=");scanf("%d",&x);}returnx;}

··

20xx年第2期

·

基于C语言的五子棋游戏程序设计

基于C语言的五子棋游戏程序设计

陈慧杰等:基于C语言的五子棋游戏程序设计

·

同理,可以自定义相应的纵坐标输入函数(int

elseif(i%2==1){for(j=1;j<=p;j=j+1){if((a[i]==a[j]-1)&&(b[i]==b[j]-1)){k[4]++;continue;}elseif((a[i]==a[j]-2)&&(b[i]==b[j]-2)){k[4]++;continue;}elseif((a[i]==a[j]-3)&&(b[i]==b[j]-3))

{k[4]++;continue;}elseif((a[i]==a[j]-4)&&(b[i]==b[j]-4)){k[4]++;continue;}

elseif(k[4]==5)\n");}

而左上右下方向只需设定其横坐标分别增加

zouqilie()),实现纵坐标的输入。

以输入第4行第5列为例,其运行结果如图4

所示。

{printf("Player1wins!!!

1,2,3,4的同时纵坐标分别减少1,2,3,4;数组元素

的值同时逐个自增1,直至增到5,即可实现五子相连,则该方棋子胜出。运行结果如图5所示。

图4下棋操作显示

2.4判断是否胜出voidjudge(intp)函数设计

Voidjudge(intp)函数的设计,灵活运用了数

组元素来存储四种不同方向连成五子的数据,根据每次落子的位置,分别从行、列、右上左下、左上右下四个方向判断是否有相同颜色的棋子连成五子,如果成立,游戏就结束,并显示提示信息(如:

Player1wins!!!),否则继续落子[2]。

下面就以判断行五子相连为例,说明程序的执行过程:先把数组的值初始化为“1”,即k[8]=

图5

判断胜负显示

{1,1,1,1,1,1,1,1,},再设定棋子的横坐标相等,纵坐标相差的值可以为1,2,3,4;数组元素的值也

逐个自增1,直至增加到5,则该方棋子胜出,其核心代码为:

2.5“和棋”结束游戏函数设计

如果在双方交替下满整个棋盘时,游戏还未

决出胜负,则游戏自动以和棋来结束整个游戏,直接输出printf("drawinchess!!!\n"),否则输出

{if((a[i]==a[j]-1)&&(b[i]==b[j]))k[0]++;elseif

((a[i]==a[j]-2)&&(b[i]==b[j]))k[0]++;

printf("gameover!!!\n")即可实现。

此外,在设计时还运用了一些背景功能函数,如,system("color1f")等函数,使背景颜色呈现为蓝色,也可根据喜好改变1f参数来改变不同背景颜色。例如2f呈现绿色,4f呈现红色等背景颜色;使用标题函数system("title开心五子棋!"),来显示标题,只需在头文件中加入#include<iostream>即可实现这些功能[4]。

elseif((a[i]==a[j]-3)&&(b[i]==b[j]))k[0]++;elseif((a[i]==a[j]-4)&&(b[i]==b[j]))k[0]++;elseif

(k[0]==5){printf("Player1wins!!!\n");break;}

同理,判断列五子相连,需要先设定其纵坐标相等,横坐标相差的值为1,2,3,4;数组元素的值同时逐个自增1,直至增到5,则该方棋子胜出。

而判断右上左下方向五子相连,即胜出,可以设定其横纵坐标同时分别相差1,2,3,4;数组元素的值也逐个自增1,直到增加为5,则显示该方棋子胜出,具体代码如下:

[3]

3结束语

五子棋游戏的设计主要应用C语言中函数模

块化设计思想,灵活运用自定义函数的调用,简洁大方,可玩性强,对其他游戏的开发与设计有一定借鉴作用。

for(i=1;i<=p;i++){if(k[0]==5||k[1]==5||k[2]==5||k[3]==5)break;

20xx年第2期

宁波职业技术学院学报E-mail:nbtpxb@163.com

2010:20-27.

[3]董红安.计算机五子棋博奕系统的研究与实现[D].山

东师范大学,2005:11-15.参考文献:[1]谭浩强.C程序设计[M].北京:清华大学出版社,2000:

122-128.

[2]姜勇.五子棋人机对战系统设计[D].电子科技大学,[4]朱全民,陈松乔.五子棋算法的研究与思考[J].计算技

术与自动化,2006(2):71-74.

DesignofGobanggamebyusingCprogramminglanguage

CHENHui-jie,GUOZhan-xiang

(CollegeofComputerScienceandTechnology,InnerMongoliaUniversityforNationalities,

Tongliao028043,China)

Abstract:Inordertodesignaplayers`gobangsystem,theauthorappliesClanguagefunctionmodularprogrammingmethodflexibly.Atthesametime,theVisualC++6.0compilerisusedforthepurposeofrunningthegame.Inthegame,oneexecuteswhitepiecewhileanotherblackpiece.Moreoverbothsidestrytowin,whichmeansonesidemakesfivepieceslinktogetherbeforethegameover.Simultaneouslybothsidescanplaythegameinturnthroughtextremindinginthescreen.Furthermorethedesignofgobanggameisofreferencevaluetoexploitothergames.

Keywords:Gobanggame;Cprogramminglanguage;playersgame

(上接第37页)

[8]肖智,胡蓓.软集合在商业银行客户价值评价中的应

用[J].金融论坛,2010(10):36-42.数约简[J].系统工程学报,2009,24(4):457-461.[10]丁淑妍,齐淑华.软件质量评价中指标权重的确定方

法[J].大连民族学院学报,2007,36(1):82-84.[9]邹艳,肖智,龚科.基于最优选择对象不变的软集合参

Softwarequalityevaluationbasedonthesoftset

LINJian-hua

(ZhejiangXinchangRuralCoopBank,Shaoxing312500,China)

Abstract:Softwarequalityisinfluencedbymanyfactors.Therefore,itisratherdifficulttoevaluatesoftwarequalityaccurately.Inthispaper,anewqualityevaluationmethodofsoftwarebasedonthesoftsettheoryisproposed,whichenablespeopletoevaluatemoreobjectively,scientificlyandreasonably.Theexampleprovestheobjectivityandtheusabilityofthisnewmodel.

Keywords:softset;Softwarequality;evaluation

··20xx年第2期

更多相关推荐:
游戏设计开题报告

一、选题的目的、意义和实用价值随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。可以说在人们的…

毕业设计塔防游戏开题报告

手机游戏最终防线的开发与设计一综述开题报告据市场调研机构IDC发布的20xx第三季度统计数据显示目前全球Android智能手机出货量总计达到了136亿部消费者每天激活将近130多万台Android设备Andro...

徐鹏 网络游戏 开题报告

本科毕业论文设计开题报告题目关于数字化出版的浅思考二级学院四川文理学院专业计算机科学与技术影视艺术与技术方向班级20xx级2班学号20xx111501学生姓名徐鹏指导教师吴海霞20xx年11月17日四川文理学院...

基于java程序的五子棋游戏设计 开题报告

陕西科技大学镐京学院毕业设计论文开题报告陕西科技大学镐京学院毕业设计论文开题报告1陕西科技大学镐京学院毕业设计论文开题报告3陕西科技大学镐京学院毕业设计论文开题报告5陕西科技大学镐京学院毕业设计论文开题报告6

中国古代游戏人物设计开题报告

武汉生物工程学院毕业设计开题报告题目名称中国古代游戏人物设计题目类别毕业设计

扫雷游戏设计开题报告

淮阴工学院毕业设计论文开题报告学生姓名专业设计论文题目指导教师2月27日刘源学号1071303115计算机科学与技术信息安全扫雷游戏设计与实现王留洋20xx年毕业设计论文开题报告毕业设计论文开题报告毕业设计论文...

体育游戏 开题报告

毕业设计论文开题报告题目应用现状调查研究姓名万邦耀学号09110811系别体育科学学院专业指导教师卢玲20xx年6月22日毕业设计论文开题报告5阶段进度计划

基于iOS设计的开题报告

本科毕业论文设计开题报告论文题目基于IOS的穷游折扣手机应用终端设计学院专业班级学生姓名指导教师职称20xx年2月1日填附文献综述或报告文献综述0引言目前的手机已经不仅仅是一款移动通讯工具更像是一台小型的个人便...

魔兽世界游戏中文网开题报告

大连东软信息技术职业学院毕业设计论文开题报告论文题目魔兽世界新手入门网站的设计与实现专业班级姓名学号指导教师开题日期20xx年12月20日计算机应用技术计算机09106郭春靖09110510608樊晓勇副教授

基于安卓平台贪吃蛇游戏的设计开题报告

基于安卓平台贪吃蛇游戏的设计一选题依据1设计论文题目基于安卓平台贪吃蛇游戏的设计2研究领域通信运用3设计论文工作的理论意义和应用价值目前随着移动设备越来越普及以及移动设备的硬件的提升移动设备的功能越来越完善an...

游戏交友论坛开题报告

毕业设计开题报告设计论文题目游戏交友论坛制作学生姓名学号专业计算机科学与技术所在学院信息技术学院指导教师职称讲师20xx年11月02日开题报告填写要求1开题报告含文献综述作为毕业设计论文答辩委员会对学生答辩资格...

五子棋的设计与开发开题报告

学校代码学号HENANINSTITUTEOFENGINEERING毕业设计论文题目五子棋游戏的学生姓名专业班级学号系部计算机科学与工程系指导教师职称完成时间20xx年5月20日河南工程学院毕业设计论文原创性声明...

游戏设计开题报告(31篇)