ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:176.70KB ,
资源ID:5960280      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5960280.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件作业五子棋程序设计2.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件作业五子棋程序设计2.docx

1、软件作业五子棋程序设计2 目录一、内容摘要二、前言三、概述3.1、C语言介绍3.2、C语言特色3.3、C语言特点3.4、C语言语法3.5、开发环境四、需求分析4.1、五子棋发展史4.2、五子棋功能说明五、设计分析5.1重点模块分析5.2流程设计六、程序代码.七、游戏调试八、总结一、内容摘要 随着互联网迅速的发展,网络游戏已经成为人们普遍生活中不可或缺的一部分,它不仅能使人娱乐,也能够开发人的智力,就像下文所主要讲的五子棋游戏一样能挖掘人们聪明的才干与脑袋的机灵程度。本游戏程序能实现两个人对阵下棋,并且程序中能自定义游戏的时间并且也能智能的判定游戏的获胜方和游戏的结束与否,实现两方进行博弈。 二

2、、前言电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。 作为一名学生,在系统的学习了C语言之后,用它编了一些小程序。这次课程设计,我就想将学过的C语言中的各种技术综合起来,编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固。三、概述C语言是一种计

3、算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。3.1、C语言介绍C语言的祖先是BCPL语言。1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL

4、(Basic Combined Programming Language)语言。1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。3.2、C语言特色1C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2C是结构

5、式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。3C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。4C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的

6、。3.3、C语言特点简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。数据类型丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运

7、算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。同时对于不同的编译器也有各种编辑方式。C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。允许直接访问物理地址,对硬件进行操作由于C语言允许直接访问

8、物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。生成目标代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低10%20%。适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统,如MS-DOS、UNIX、Microsoft Windows 以及Linux;也适用于多种机型。C语言效率高,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。缺点1 C语言的缺点主要表现在数据的封装性上,

9、这一点使得C在数据的安全性上有很大缺陷,这也是C和C+的一大区别。2 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。3.4、C语言语法如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NUL作为数组的退出。要特别注意的是,方括内的索引值是从0算起的。指针如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里

10、存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值(不同于return(z)这样的仅能得到一个返回值。指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。字符串C语言的字符串其实就是char型数组,所以使用字符串并不需要引用库。但是C标准库确实包含了一些用于对字符串进行操作的函数,使得它们看起来就像字符串而不是数组。使用这些函数需要引用头文件;。文件输入/输出在C语言中,输入和输出是经由标准库中的一

11、组函数来实现的。在ANSI/ISO C中,这些函数被定义在头文件;中。标准输入/输出有三个标准输入/输出是标准I/O库预先定义的:stdin 标准输入stdout 标准输出stderr 输入输出错误3.5、开发环境常用的C语言IDE(集成开发环境)有Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,Watcom C+,Borland C+ Builder,GNU DJGPP C+,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode(mac os x)等。对于一个初学者,Micro

12、soft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC+6.0、VS2005VS2008VS2010等,分为企业版和学生版等。对于初学者VC+6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。在unix/linux操作系统上,学习c语言一般使用vim/emacs来编辑源文件,使用gcc来编译源文件,使用make程序来管理编译过程。其他编译器如CodeBlocks10.05(跨平台linux/windows开源免费支持高达29种不同的项目)、dev-c+(开源免费)、turbo、c-fre

13、e5.0、codelite(开源免费)、eclipse(开源免费基于Java 扩展平台)四、需求分析4.1、五子棋的发展史五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;

14、它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。 对于五子棋与围棋的关系有两种说法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一说源于围棋,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。古代的五子棋的棋具与围棋相同,纵横各十七道。五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等地。4.2、五子棋的功能说明4.2.1 五子棋特点及规则 五子棋的娱乐性强、规则简单、易学、流行性广,普通人不需长时间专门训练即可自如行棋,因此极受大众喜欢。五子棋规则为:1.棋盘:采用像围棋盘一样的棋盘,本系统采用

15、18路的棋盘。2.下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。3.输赢判断:黑、白双方有一方的五个棋子在横、竖或斜方向上连接成一线即为该方赢。4.2.2 操作界面需求操作界面如下图,画面简单易懂: 游戏的操作界面五、设计分析5.1、重点模块分析本程序最重要的就是能够自动判定黑白两方各个方向上的棋子是否连了五个相同颜色的棋子,怎么做到这点呢?这个要通过private int checkCount(int xChange, int yChange, int color)方法来判定,然后通过private boolean checkWin()方法判定

16、获胜方(具体方法后边会写出,供读者了解分析)。其次本程序关键的一点就是可以模拟游戏中的按钮来自定义游戏的时间,从而增加本游戏的可控性,智能性,同时增强游戏玩家的趣味性和刺激。5.2、程序流程 六、程序代码#include #define N 14char stateNN;void init(void);void printState(void);bool isWin(bool isBlack,int x,int y);bool isLevelWin(bool isBlack,int x,int y);bool isVerticalWin(bool isBlack,int x,int y);bo

17、ol isLeftInclinedWin(bool isBlack,int x,int y);bool isRightObliqueWin(bool isBlack,int x,int y);bool isWin(bool isBlack,int x,int y) return isLevelWin(isBlack,x,y) |isVerticalWin(isBlack,x,y) |isLeftInclinedWin(isBlack,x,y) |isRightObliqueWin(isBlack,x,y);bool isLevelWin(bool isBlack,int x,int y) ch

18、ar c = isBlack ? :O; int count; while(y0 & statexy = c) y-; count =0; if(statexy = c) count = 1; y+; while(y 0 & statexy = c) x-; count =0; if(statexy = c) count = 1; x+; while(x 0 & y0 & statexy = c) y-; x-; count =0; if(statexy = c) count = 1; x+; y+; while(x N & y 0 & yN & statexy = c) y+; x-; co

19、unt =0; if(statexy = c) count = 1; x+; y-; while(x = 0 & statexy = c) count+; if(count = 5) return true; x+; y-; return false;void init(void) int i,j; for(i=0;iN;i+) for(j=0;jN;j+) stateij = *; void printState(void) int i,j; printf(%3c, ); for(i=0;iN;i+) printf(%3d,i); printf(n); printf(-n); for(i=0

20、;iN;i+) printf(%3d,i); for(j=0;jN;j+) printf(%3c,stateij); printf(n); int main(void) int x,y; bool isBlack = true; init(); printf(-n); printState(); while(1) printf(please %s quick snipn,(isBlack?black:white); printf(example:(1-2)n); scanf(%d-%d,&x,&y); if(statexy= | statexy=O) printf(this position

21、to have piecesn); continue; statexy = (isBlack?:O); printState(); if(isWin(isBlack,x,y) printf(%s winn,(isBlack?black:white); break; isBlack = !isBlack; return 0;七、游戏调试游戏调试界面游戏运行游戏运行界面八、总结通过本次论文设计,我初步学会了论文设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,这为以后的大学毕业设计论文打下了一个初步的基础使我收益最大的是享受到了一种成功的喜悦,在这两个星

22、期之中从开始的确定论文题目,然后是上网和上图书馆查找资料,编写C语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。-王政通过本次C程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要团队的合作,还有有足够的耐心和严谨治学的作风,来不得半点马虎。-刘正华

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1