基于Microsoft Visual C++的五子棋程序

基于Microsoft Visual C++(easyx)的五子棋程序

项目简介

  • 本次的项目设计是在Windows 10操作系统下使用Microsoft Visual C++6.0编译器并且装置图形库EasyX开发的。其中,Visual C++6.0由Microsoft开发, 它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。EasyX 是针对 C++ 的图形库,其编译环境版本支持Visual C++ 6.0、Visual Studio 2003/2008/2010/2012/2013/2015。虽然二者皆是基于C++设计,但是同样可以使用于C语言编程。
  • 目前所设计的五子棋游戏只能实现人人对弈功能(而且是同一台机器上两个人操作),暂无人机对弈功能和允许玩家远程联机功能。

流程图

  • 函数调用流程图基于Microsoft Visual C++的五子棋程序_第1张图片

  • 总流程图
    基于Microsoft Visual C++的五子棋程序_第2张图片

  • 人人对弈模式流程图基于Microsoft Visual C++的五子棋程序_第3张图片

效果展示

程序界面展示:
1:展示特效界面(即欢迎界面)
基于Microsoft Visual C++的五子棋程序_第4张图片
2:展示菜单界面(即选择界面):【当鼠标移至其中的一个菜单选框时,从此选框到最后一个菜单选框,背景色均变色,且为同色。】
基于Microsoft Visual C++的五子棋程序_第5张图片
3:展示棋盘界面:【棋盘为15*15,其中3行3列,3行12列,12行3列,12行12列我、各有一个黑色圆点,7行7列,有一个稍大的黑色圆点】
基于Microsoft Visual C++的五子棋程序_第6张图片
4:下棋界面展示:【依靠鼠标点击,首落黑子,然后落子时落与前一次颜色不同的棋子】
基于Microsoft Visual C++的五子棋程序_第7张图片
5:悔棋界面展示:【找到当前棋盘上最后一步下的棋子,在其上面,点击鼠标右键,擦除棋子,画上棋盘线】
在这里插入图片描述基于Microsoft Visual C++的五子棋程序_第8张图片
6:获胜界面(即返回赢家信息的界面):【在棋盘指定位置,依据check()函数是否检查出五子连珠,如果检查到五子连珠,则根据对应棋子的颜色返回相应的赢家信息】
基于Microsoft Visual C++的五子棋程序_第9张图片
以上的六张截图均是程序运行时每个界面的截图,展示了系统调试的大致步骤,其中包含了欢迎界面,菜单界面(目前只有人人模式和退出游戏,人机模式和游戏设置暂定),棋盘界面,下棋界面,悔棋界面,返回赢家信息的界面,可以使我们大致了解一下本游戏的调试过程以及调试模块。

调试过程中遇到的问题

(1)程序运行的时候,棋盘画不出来,画着画出来之后,当鼠标端点有个小圈转动时,图形界面闪退,当图形界面不闪退的时候落子的颜色是一样的,下上几个字之后图形界面自动闪退。
解决方法:
基于Microsoft Visual C++的五子棋程序_第10张图片
(2)同色子
解决方法:第二个if前面没有加else,所以每次画完黑棋,然后count++,会直接满足第二个if的条件,然后会导致直接在黑棋上面画了一个白棋,把黑棋盖住了,所以加上else。
基于Microsoft Visual C++的五子棋程序_第11张图片
(3)程序在下完一局棋后(已经显示赢家信息),左击鼠标,仍旧可以下棋,以及判断赢家信息;右击鼠标可以悔棋。
解决方法:定义了整型变量 move_condition//落子条件,stop_condition//悔棋条件(赋值为2,均在int Player_Information(int win)函数中)。
使画棋子的条件变变成成1:
鼠标左键点击在棋盘区域;2:鼠标点击处没有棋子落下;3:落子数对2取余的得数为1或者为0(判断画黑子还是白子);4:变量move_condition等不等于2,为落子的条件。
使悔棋的条件调变成用悔棋函数的条件变成:
函数前用if语句判断stop_condition不等于2。

程序清单

由于程序很长,所以这里采用链接形式给出:
链接:https://pan.baidu.com/s/10UzyNEyy9ARjOnjqi6S_Jw
提取码:y9yf
复制这段内容后打开百度网盘手机App,操作更方便哦

总结

这个项目是在很久之前写的,当时觉得挺难的,什么坐标计算的,但是现在看来,只是调用Easyx中的相关绘图函数就可以。

你可能感兴趣的:(C语言结合图形界面)