C五子棋游戏开发.doc_第1页
C五子棋游戏开发.doc_第2页
C五子棋游戏开发.doc_第3页
C五子棋游戏开发.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c五子棋游戏开发 目录前言11预备知识 211计算机图形学方面的知识 2111基本的c作图方法及主循环控制模块 2112图形模式下的文本输出 2125子棋基本数据结构 3121栈 3122树 42单人游戏 7   21开发的基本步骤 7211系统流程图  7212建立棋盘 822电脑最优落子点的算法 8221最大值点法 9222最优落点方法 10223搜索算法及其改进算法 17224.3种算法的比较与选择2523编程实现 253双人游戏 26参考文献28致谢29附录:部分源代码30摘要c语言是1种结构化语言,尽管在当前,可视化语言发展迅速,普及很快,但c语言作为1种基础的语言,它的优势依然存在,甚至有时它是不可替代的,特别是和硬件接口技术相联系的软件。5子棋游戏是1种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,但是现在流行的5子棋游戏软件大多缺乏美观的界面,和容易的操作方法,电脑的ai值也不是很高。本文通过c语言在计算机图形学方面的编程,设计了5子棋游戏软件,使该软件具有美观友好的界面,在人机对弈时,使电脑具有较高的智商。    本游戏是以turbo c 2.0语言作为开发工具,采用搜索及其改进的-剪枝算法设计最优落子点开发的游戏软件。本文详细地介绍了5子棋游戏软件设计的全过程,描述了该软件的功能,以及和其他5子棋程序的1些比较。关键词:结构化语言;最优落子点算法;搜索算法;-剪枝算法。abstractc language is a structured language, although in the current visualization language rapidly, and spread quickly, but the c language as a basis for language, its advantages still exist, and sometimes it is irreplaceable, particularly hardware and software interfaces are linked. gobang game is a simple and popular game, since the computer to achieve, by the love of computer players, but now most popular game software gobang lack aesthetic interface, and easy method of operation, the value of the computer ai is not high. the adoption of the c programming language in computer graphics, designed gobang game software to enable the software with a beautiful and friendly interface in both game, the computer has a higher iq.      the game is based on  turbo c 2.0 language, using searching algorithm and -cut algorithm to design  best gobang. the detailed presentation of the whole process of gobang game software design, describes the software functions and procedures and other gobang some more. keywords : structured language;best algorithm;searching algorithm;-cut algorithm.                          前言     5子棋是人们喜欢的1种棋类游戏,近来,随着计算机的快速发展,以计算机作为游戏对战平台,各种棋类游戏如雨后春笋般纷纷冒出,使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾,而且这类软件个个水平颇高,大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表。     当我们与电脑对战时,您知道这些软件是怎样象人脑1样进行思考的吗?总的来说(我们假定您熟悉5子棋的基本规则),要让电脑知道该在哪1点下子,就要根据盘面的形势,为每1可能落子的点计算其重要程度,也就是当这子落下后会形成什么棋型,然后通览全盘选出最重要的1点,这便是最基本的算法。当然,仅靠当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱,因为它没有考虑以后的变化。所以在此基础上我们需要使用好的算法使电脑能预测出今后几步的各种走法,以便作出最佳选择,这也是我们下棋时常说的“想了几步”。怎样才能达到这个程度呢?这是本文所要讨论的主要问题。作为1个5子棋游戏爱好者,在使用了众多的5子棋游戏软件后,发现当今大多数5子棋游戏软件中电脑的ai值不是很高,难与人脑抗衡,这是基于以上的最基本算法扩展而出的电脑最优落子算法不够优秀而造成的。本人使用turbo c 2.0语言作为开发工具,在吸收别人所编的5子棋游戏软件的基础上,再融入自己的创新思想(最优落子算法的改进),编写了这个5子棋游戏,软件实现了人机对弈和双人对弈的功能,游戏软件界面美观,操作容易,电脑的ai值也较高。本文分为3个部分,首先介绍了开发5子棋游戏所需要的1些背景知识,包括c语言在计算机图形学方面的知识和数据结构方面的知识,然后详细介绍了单人游戏和双人游戏的开发步骤,在单人游戏设计中讨论了3种提高电脑智商的最优落子点算法,并对其中的搜索算法及其改进的-剪枝算法进行了详细的分析,最后绘出了部分关键代码。1预备知识1 1计算机图形学方面的知识111基本的c作图方法及主循环控制模块turbo c提供了非常丰富的图形函数,所有的图形函数的原型均建立在graphics.h中,在使用图形函数时要确保有显示器图形驱动程序*.bgi,同时将集成开发环境options/linker中的graphics lib选为on,只有这样才能保证正确使用图形函数。这个程序调用1个ega、vga显示器下能独立图形运行的函数。所谓独立图形运行程序,就是在编译和连接时将相应的驱动程序(*.bgi)直接装入到执行程序,从而能在独立的计算机上运行,避免需要重新编译连接才能运行。turbo c进行画点、画线、封闭图形填充以及图形下文本输出只需要调用graphics.h中相关的函数。主循环控制模块:控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当1个调度者的角色。这个5子棋程序是用键盘控制下棋,所以要用到turbo c中的bios.h。在1个循环块中等待键盘信息,判断键盘所输入的信息是否需要响应,调用相关的代码进行下棋。112图形模式下的文本输出 在c语言的图形模式下,只能用标准输出函数,如printf(),puts(),putchar()函数输出文本到屏幕。除此之外,其它输出函数(如窗口输出函数)不能使用,即是可以输出的标准函数,也只以前景色为白色,按80列,25行的文本方式输出。turbo c2.0也提供了1些专门用于在图形显示模式下的文本输出函数。下面将分别进行介绍。 1、文本输出函数 void far outtext(char far *textstring);    该函数输出字符串指针textstring所指的文本在现行位置。    void far outtextxy(int x, int y, char far *textstring);该函数输出字符串指针textstring所指的文本在规定的(x,  y)位置。其中x和y为象元坐标。 说明: 这两个函数都是输出字符串,但经常会遇到输出数值或其它类型的数据,此时就必须使用格式化输出函数sprintf()。sprintf()函数的调用格式为: &nb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论