`
梅蒙毅澎
  • 浏览: 40030 次
  • 性别: Icon_minigender_1
  • 来自: 莱州
文章分类
社区版块
存档分类
最新评论

从五子棋到以后的路

阅读更多
        五子棋游戏大家并没有少玩,可以说这是一个很大众化的游戏,学习过程中,这也是第一个尝试编完的游戏,虽然比画板更简陋些,但至少是他最早给了我编程的自信。
        在编画板重绘之前,五子棋是用来练手的。一是进一步熟悉图形化界面的绘制,二是了解重回的概念,三是对队列的练习,四是算法分析。其中,算法分析又包括了:黑白棋子的交替出现,放子位置的矫正(没有正好点在纵横线的交点上时的调整),输赢的判断等等。其中最难的便是游戏输赢的判断,我采取了最笨的方法解决了这个问题,以后打算去进一步优化。我的方法是棋盘式的扫描,从第一行开始逐行扫描一遍,遇到子就用计数器加一,遇到空或是不同颜色的子,就将计数器重置为零。横向和纵向的很好实现,但是左上——右下和左下——右上方向用这种扫描式的方式就要花一些脑筋了。因为用循环来实现的时候,只能扫描整个棋盘以对角线为界线的三角形区域,之后通过多次判断,才将这个功能实现,不过感觉确实有些麻烦了。
        这个游戏基本上是在3天左右的时间实现的基本功能。没有菜单的添加,没有时间的计时,没有悔棋(其实和画板的撤销是大同小异的),也没有实现人机对战。在一段时间里,为了实现人机对战,我曾经找了一些比较好的算法,但是判断略显复杂,因此就暂且放下了。
在五子棋的编写中,我自身感觉基础差确实是阻碍我编程的重要问题,而且也不像身边的人那样更有天赋。老师教的内容可以听的懂,也会照猫画虎,但是怎么也做不到灵活的应用,并且缺乏透彻的理解,有些问题想着想着就走进了死胡同,这让人很头疼。这一个致命的弱点在学习了更多的知识后,要综合应用所学知识时暴露无遗。
        还记得龙哥说,每做一个项目要拿得出手,但总感觉我达不到这种要求,因此心里也是很痛恨自己,我也试图让自己去完善自己的作品,毕竟是自己所创造出来的东西,就像自己的孩子,要给他生命才对。无奈的是,伴随着专业的各项考试的临近,第二专业的开课,自己的时间总感觉慢慢的被吞噬了,双休日已经远去了,一个周再也没有了假期,每天的课程都保证在6个可是以上。再加上学生会的种种会议和棘手的烦心事,真的感觉有些扛不住。但是,我不能抱怨,所有的事情我都自己承受着,因为这是我自己选择的路,不需要别人的同情或是讽刺,我也更不能退缩。如果真的我选择的错了,那么我会得到报应,但是我至今还没有得到报应,说明我的选择是对的,我就应该义无反顾的走下去。大学就这么一两年的事情了,前两年多我感觉我没有为自己将来的就业做出任何的贡献,现在就是我赎罪的时候了。只要累不垮,那就要挺起胸脯,昂首向前。
分享到:
评论

相关推荐

    C编写的五子棋

    此外,考虑到VC++6.0是该程序的运行环境,这是一款古老的集成开发环境,它支持老版本的C++标准,因此代码可能不包含现代C++的一些特性,如模板、STL库或C++11以后的语法。开发者需要在编写和调试时注意兼容性问题。 ...

    JAVA开发五子棋 绝对不错

    7. **文件保存与加载**:为了保存游戏进度或记录精彩对局,开发者需要实现将棋盘状态序列化到文件的功能,以及从文件中恢复游戏的能力。 8. **设计模式**:在实现五子棋时,可能会用到设计模式,如单例模式(用于...

    java五子棋游戏代码

    此外,五子棋的逻辑处理涉及到一些算法。例如,我们需要检查每一步棋后是否形成五子连线,这可能需要用到深度优先搜索(DFS)或广度优先搜索(BFS)等图遍历算法。同时,为了防止非法操作,如在已有的棋子位置再次...

    超级五子棋.rar_mfc五子棋_五子棋人机_超级五子棋

    游戏的实现还需要考虑到一些额外的功能,例如悔棋、保存和加载棋局、提示和禁手规则等。悔棋功能允许玩家撤销上一步操作,以便重新考虑策略;保存和加载功能则让玩家可以随时中断游戏,以后继续;提示功能可能包括...

    C#五子棋完成案例

    在本项目中,"C#五子棋完成案例"是一个基于C#编程语言实现的五子棋...通过学习和分析这个"C#五子棋完成案例",开发者不仅可以掌握C#编程,还能深入了解游戏开发的核心技术和策略,为以后创建更多类型的游戏奠定基础。

    C语言编写五子棋与迷宫

    这个游戏中,包括走迷宫和五子棋两款游戏 其中走迷宫可分为5关,实际上是n关,因为第二关以后都带有部分随机性, 按上面的提示进行操作可进行游戏,五子棋虽然不敢说打败你,但也会让你赢得不那么容易,我的迷宫游戏...

    五子棋算法

    当然,仅靠当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱,因为它没有考虑以后的变化。所以在此基础上我们加入递归调用,即:在电脑中预测出今后几步的各种走法,以便作出最佳选择,这也是我们...

    五子棋游戏,可以自动下棋

     先来分析己方的棋型,我们从棋盘左上角出发,向右逐行搜索,当遇到一个空白点时,以它为中心向左挨个查找,如果遇到己方的子则记录然后继续,如果遇到对方的子、空白点或边界就停止查找。左边完成后再向右进行同样...

    五子棋 围棋 控制台程序 c++ builder

    五子棋和围棋都是用黑白两色棋,进行比赛的,当然它们的比赛规则不同,所以它们可以出自同一个基类,它们在落子以后的结果体现在不同的落子函数上,因此在基类中编写一个纯虚函数——对弈函数,在导出类——五子棋类...

    c语言五子棋很好用双人对打

    简单的五子棋算法很好 以后还有电脑版 敬请期待阿萨飒飒飒飒飒飒

    五子棋 C语言 五子棋 C语言

    综上所述,《五子棋 C语言》课程设计项目不仅涵盖了C语言的基本语法结构,还深入到了更高级的编程概念,如图形界面处理、键盘事件监听等。通过该项目的开发,学生可以全面地提升自己的编程能力,并且能够在实践中...

    很好的五子棋 MFC

    五子棋的核心算法 一、相关的数据结构 关于盘面情况的表示,以链表形式表示当前盘面的情况,目的是可以允许用户进行悔棋、回退等操作。 CList StepList; 其中Step结构的表示为: struct Step { int ...

    VC++五子棋代码

    总的来说,通过分析和理解这个VC++五子棋代码,初学者不仅能掌握C++编程的基本技巧,还能了解到游戏开发中的算法设计、图形用户界面编程以及人机交互的实现方法。这是一个很好的实践项目,有助于提高编程能力和解决...

    C++大作业:五子棋程序.zip

    这涉及到搜索算法,例如深度优先搜索(DFS)或广度优先搜索(BFS)。 5. **用户交互**:程序需要接受用户的输入并显示棋盘状态。C++标准库中的`iostream`用于输入输出,`ncurses`库(或Windows下的`conio.h`)可以...

    DbY五子棋擂台赛v3.2--game_wzq1go_v32@vc60.exe

    DbY五子棋擂台赛v3.2 目的: 用C++编写的五子棋游戏;简单的AI算法训练;剪枝优化加速,4层深度搜索,适合初级玩家; 特点: 人机对战;创新的擂台赛形式;十级评分,包括守擂成绩分和攻擂经验分,对弈趣味十足;棋盘采用19x19...

    手机五子棋联网游戏源代码

    里面涉及的五子棋算法,经网上单机程序修改而来。压缩包里包括了本人的所有代码,和设计文挡。建议先看测试文挡说明。本人联系方法 qq:376680338 email:zhengyu_xie@hotmail.com 由于有些朋友反映程序无法运行...

    五子棋AI算法

    五子棋AI算法 ...五子棋AI算法的实现在实际上需要考虑到时间和空间有效性,只找出当前情况来说相对比较好的几个棋盘,而不是对所有的可下子的位置都进行搜索。这也体现了五子棋AI算法的智慧和效率。

    疯狂java实战演义-第1章_控制台五子棋

    通过这三个类的实现,我们可以更好地掌握 Java 编程的基础知识,并为以后的学习 awt,swing 等图形用户界面的编写打下基础。 五子棋游戏是一个比较大众的棋类游戏,大多数人都会玩这个游戏,五子棋的玩法与规则如下...

    VC版仿QQ界面五子棋

    这可能涉及到文件操作,如序列化游戏状态到文件,或者从文件加载状态。 5. **用户交互**:除了基本的游戏功能外,界面还可能包含菜单和对话框,允许用户选择游戏难度、查看规则、退出游戏等。 尽管这个版本的...

Global site tag (gtag.js) - Google Analytics