投稿  收藏 
五子棋是一种两人对战的棋类游戏,游戏中双方各自使用一种颜色的棋子,轮流落子,先形成5子连线者获胜。试编程实现一个简单的五子棋游戏。 思路分析如下。 (1)定义一个二维数组,对应棋盘及棋子的位置。 (2

五子棋是一种两人对战的棋类游戏,游戏中双方各自使用一种颜色的棋子,轮流落子,先形成5子连线者获胜。试编程实现一个简单的五子棋游戏。
思路分析如下。
(1)定义一个二维数组,对应棋盘及棋子的位置。
(2)使用 while(1) 循环语句等待鼠标在窗口中单击。
(3)获取鼠标单击的位置,若单击位置在绘制的棋盘内,且对应的数组元素未被赋值,则根据当前步数判断是哪位玩家落子,分别以 1或 -1 表示并保存到对应的二维数组元素中。
(4)每一次循环执行时,刷新绘制的棋盘和棋子。
参考程序如下。
  1. #include"picture.h"//加入绘图头文件 
  2. intb[20][20],step,m,x,y;/b[20][20]表示棋盘,step表示步数 
  3. void DrawChess()//绘制棋盘 
  4. for(inti=0;i<20;i++)//横向一个格子占两个字符 
  5. for(intj=0;j<20;j++)//纵向一个格子占一个字符 
  6. if(b[i]〔j]==0) 
  7. Cmd.TextColor(0,2);//设置字符颜色 
  8. Cmd.Cout(i*2,j,"口");//绘制棋盘格,“☐”从ord的“插入字符”中取 
  9. else if(b[i][j]>o) 
  10. Cmd.TextCo.1or(4,1);//设置甲方棋子的颜色 
  11. Cmd.Cout(i*2,j,"●");//绘制甲方棋子 
  12. else 
  13. Cmd.TextColor(9,1);//设置乙方棋子的颜色 
  14. Cmd.Cout(i*2,j,"●");//绘制乙方棋子 
  15. int main() 
  16. Cmd.HideCursor();//隐藏光标 
  17. while(1) 
  18. DrawChess();//绘制棋盘 
  19. m=Cmd.GetMouse () 
  20. =Cmd.GetMousex(m);//获取鼠标单击时指针位置的x值 
  21. y=Cmd.GetMouseY(m);//获取鼠标单击时指针位置的v值 
  22. if(K40&y<20&b[x/2][y]=0)/鼠标须在棋盘范围内单击且单击位置未出界、无落子 
  23. if (step++용2=0)//step定方 
  24. b[x/2][y]=1: 
  25. else 
  26. b[x/2][y]=-1; 
  27. Win.Show();//启动绘图窗口 

关 键 词

五子棋

相关教程

五子棋是一种两人对战的棋类游戏,游戏中双方各自使用一种颜色的棋子,轮流落子,先形成5子连线者获胜。试编程实现一个简单的五子棋游戏。 思路分析如下。 (1)定义一个二维数组,对应棋盘及棋子的位置。 (2
制作一个击碎陨石的小游戏。游戏界面上会随机出现陨石,玩家可以通过鼠标单击的方式击碎陨石。 ​​​​​​​参考程序如下。
下图 所示是杨辉三角中的一组数字,试找出其排列规律并通过编程输出杨辉三角的前 10 行。
模仿科幻片《黑客帝国》中不断下落的字符效果,思路分析如下。 (1)设置窗口为黑色,字体颜色为绿色,隐藏光标等。 (2)定义一个二维数组保存所有字符的坐标。 (3)因为字符是不断下落的,所以使用 whi
有一个 3 行 4 列的二维数组,通过编程输出其中最大的数和该数所在的行号和列号,参考代码如下。
有一个 10 个元素的数组,数组元素的值依次为 0,1,2,...,9,试编程实现逆序输出数组元素值,参考程序如下。
通过随机数的帮忙,计算机也变成了一位小小“艺术家”。试使用随机数在三维平面上绘制图 所示的“艺术画”。
试使用随机数的方式编程,实现在屏幕上绘制 4000 个颜色和大小随机的“星星”。思路分析如下。 (1)设置窗口为三维视图,隐藏画笔。 (2)利用当前时间作为随机数种子。 (3)利用 while 循环语
求 1 + 2 + 3 +...+ 100 的值的程序可以像下面这样写。
有一个游戏叫“过 7”,即从 1 开始数,跳过包含 7 或者 7 的倍数深入探究,掌握的数字,试输出 99 以内没有跳过的数。参考程序如下。

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢