C/C++中国象棋程序入门与提高

出版时间:2009-5  出版社:电子工业出版社  作者:蒋鹏 等著  页数:333  字数:550000  
Tag标签:无  

前言

  程序设计是计算机专业的必修课,从C到C++,再到可视化程序设计VC++。C/C++是大学计算机专业的基础语言课,不少程序员都是从C走上他们的程序设计之路的。大学课程主要从语法的角度讲解C/C++。具体是C讲述基础的语言设计方法,C++主要讲述面向对象程序设计方法,VC++则讲述基本的可视化程序设计的知识。太多的语法基础占据了语言课的大部分时间,学生学习后基本只能应付课后习题,要提高程序设计能力还有很长的路要走。学生一路走来,到毕业时很多人竟不能独立编写一个像样的程序。  数据结构,算法分析与设计则是计算机专业的主要课程,可许多学生学习之后竟然觉得数据结构无用。理论教学与实践的脱离使得学生只追求盲目的60分。很多计算机专业学生毕业之后没有独立程序设计的能力,无法从事计算机相关行业。  案例教学成为近年比较流行的教学模式。它将课本理论与实际项目开发结合在一起,提高了学生的动手能力和实践经验。实践证明,编写一个带有实际意义的项目是提高编程能力最高效的方法。如果能有一个项目将C、C++、VC++、数据结构、算法分析与设计结合在一起,提高学生的基础程序设计能力,同时又能掌握数据结构与算法的高级应用,必然为以后从事软件开发打下良好的基础。中国象棋程序就是这样一个项目,它综合了C、C++、VC++、数据结构、算法分析与设计等知识。象棋作为竞技体育同时又作为一个游戏,具有一定的趣味性。学生通过自己亲身参与游戏程序的编写可以提高学习的积极性。  中国象棋程序主要由局面表示、走法表示及生成、局面评估、搜索算法、界面控制等五大部分组成。  局面就是一盘棋经过若干回合之后当前所处的形势,包括棋盘、红黑双方所剩棋子及其在棋盘上的分布、当前该走棋一方、双方所剩时间、双方所剩走棋步数等内容。局面表示是象棋程序的基础,局面表示的好坏直接关系到走法生成、局面评估和搜索算法的效率,从而影响象棋程序得到的最佳走法。  象棋程序每一次思考的目的是获取一个最佳走法(至少在程序看来是最佳的)。要实现这一目的的简单方法就是生成全部所有可能的走法,然后再一个一个的比较,找出最佳的一个。实际上程序也是这样做的。

内容概要

本书由浅入深地介绍了中国象棋博弈程序的各个基本知识点,以实际案例来促进读者对算法的理解,提高实际编程能力。主要内容包括:中国象棋博弈,局面表示,走法表示及生成走法,局面评估,基本搜索算法,人机博弈,机器对弈,置换表,算法分析及测试技术,时间控制策略,启发式搜索策略,更多搜索策略。    本书适用于在校计算机专业本科学生及研究生,以及程序设计、算法、博弈和人工智能的爱好者及专业人士。

书籍目录

第1章  绪论 1.1  机器博弈  1.1.1  Tic-Tac-Toe游戏  1.1.2  国际象棋机器博弈  1.1.3  机器博弈发展趋势 1.2  中国象棋程序  1.2.1  中国象棋博弈程序组成  1.2.2  中国象棋程序研究现状  1.2.3  全国计算机博弈锦标赛 1.3  C/C++基础知识  1.3.1  结构体  1.3.2  联合体  1.3.3  枚举  1.3.4  指针  1.3.5  面向对象程序设计 1.4  数据结构基础知识  1.4.1  线性表  1.4.2  栈和队列  1.4.3  树  1.4.4  查找  1.4.5  排序 1.5  算法分析基础知识  1.5.1  算法描述  1.5.2  算法时间复杂度分析第2章  中国象棋博弈 2.1  中国象棋简介  2.1.1  棋盘与棋子  2.1.2  走棋和吃子  2.1.3  将死和困毙  2.1.4  胜、负、和 2.2  中国象棋博弈程序  2.2.1  局面表示  2.2.2  走法生成  2.2.3  搜索算法  2.2.4  局面评估第3章  局面表示 3.1  简单的表示方法 3.2  扩展数组表示  3.2.1  棋盘表示  3.2.2  棋子表示  3.2.3  二维数组与一维数组 3.3  字符串表示局面  3.3.1  棋子表示  3.3.2  棋盘表示  3.3.3  走方表示  3.3.4  走棋步数 3.4  不同表示方法的转换  3.4.1  一维数组转换成FEN串  3.4.2  FEN串转换成一维数组第4章  走法表示及生成走法 4.1  走法表示 4.2  车炮马象(相)士(仕)卒(兵)将(帅)走法生成  4.2.1  马的走法生成  4.2.2  将(帅)的走法生成  4.2.3  士(仕)的走法生成  4.2.4  象(相)的走法生成  4.2.5  车的走法生成  4.2.6  炮的走法生成  4.2.7  卒(兵)的走法生成 4.3  产生一个局面的全部走法 4.4  简化合理位置数组 4.5  棋子数组 4.6  将军检测 4.7  如何更快地生成走法  4.7.1  事先生成法  4.7.2  位行位列第5章  局面评估第6章  基本搜索算法第7章  人机博弈第8章  机器对弈——博弈引擎第9章  置换表第10章  算法分析及测试技术第11章  时间控制策略第12章  启发式搜索策略参考文献

章节摘录

  第2章 中国象棋博弈  中国象棋是一种具有悠久历史的棋类,早在2000多年前的战国时代就已经有了关于象棋的记载。如:《楚辞·招魂》中有“蓖蔽象棋,有六簿些:分曹并进,道相迫些;成枭而牟,呼五白些。”。经过历代的发展演绎,到北宋末定型为现代的中国象棋。元明清时期,象棋继续在民间流行,技术水平不断得以提高,出现了多部总结性理论专著,其中最为重要的有《梦入神机》、《金鹏十八变》、《桔中秘》、《适情雅趣》、《梅花谱》、《竹香斋象棋谱》等。  中国象棋协会成立于1962年,40多年来,由于群众性棋类活动和比赛的推动,象棋棋艺水平提高得很快,优秀棋手不断涌现,其中以杨官磷、胡荣华、柳大华、赵国荣、吕钦、许银川等最为著名。  本书主要内容  简单介绍中国象棋。  中国象棋博弈程序组成。  2.1 中国象棋简介  2.1.1 棋盘与棋子  象棋棋盘由九条竖线和十条横线交叉组成。棋盘上共有九十个交叉点,象棋子就摆在和活动在这些交叉点上。棋盘中间没有画通直线的地方,叫做“河界”;画有斜交叉线的地方,叫做“九宫”。

编辑推荐

  本套丛书对编程语言、语法等基础知识讲得很少,重点在对语言的运用能力上。让读者看完书后,有一种“豁然开朗”的感觉,不只是简单地理解一种语言的语法,而是对一种技术的全面认识,并知道如何进行灵活运用。本书的目的主要是提升读者项目编程的知识,展现代码编写中的技巧与经验,让读者能更便捷地获取知识、积累经验,这也是本丛书的重要特色之一。

图书封面

图书标签Tags

评论、评分、阅读与下载


    C/C++中国象棋程序入门与提高 PDF格式下载


用户评论 (总计12条)

 
 

  •   很好的书,我开发象棋AI起到很大作用
  •   相当不错的一本书,太好了
  •   不是我用,不予评论了。
  •   大致看了下,很有难度,过几天再认真看,应该可以借鉴一下里面的内容。

    感觉我写的中国象棋程序比这简单多了,人机对弈等内容还是慢慢来吧!
  •   从练习算法的角度来看,这本书非常好,深入浅出的讲解了整个象棋的生成算法。
  •   这本书主要说的是图算法,对于图有基本了解的读音者非常合适,当然你对象棋也得有兴趣.
  •   主要是算法,用VC写的,关于基础的很少,购买时注意
  •   在国内来说目前的关于象棋的书来说这是一本比较简单易懂的书了,适于初学者。
  •   感兴趣买的,主要培养兴趣和思考解决问题的能力
  •   书的选材不错,内容也还好,就是复制粘贴的太多了,虽然是自己写的,但是让人感觉有点不认真的感觉 .纸张没C++primer那样好.也还行,送来的时候有个书角坏了.
  •   初学c++,过段时间再看吧
  •   走入了代码的误区
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7