一道课设题,第一步快做完的时候卡住了,求助

TESJackeyIove 2018-09-02 06:37:48

第一次运行时会出现大面积的消除,但后面的消除情况又是正常的
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Votangroom 2018-09-04
  • 打赏
  • 举报
回复
还有要说的就是,,,,cin太low了....

conio.h 里面的getch()了解一下,用了不用按回车直接读键值

还有选中目标点。
你现在用输入坐标点+回车.....玩家会感觉有点麻烦。你加个光标,用↑↓←→控制,用getch()读键值从而改变光标位置
Votangroom 2018-09-04
  • 打赏
  • 举报
回复
看到 就想说了.....每操作一次能不能刷新一下屏幕

用system("CLS");
zangfong 2018-09-03
  • 打赏
  • 举报
回复
第一次play的时候出现大面积,是因为你没有调用你自己的InitEliminate()函数,所以Eliminate数组中的值为0的部分和Bubble中'A'的那些格子相等了,所以都消掉了。
把这个函数加到play()函数中,消除的问题就没有了。
            if (b == 'y')
{
InitEliminate();//这里初始化Eliminate数组
grade += Grade(CalculateCount(x, y));

eliminate();
cout << "分数=" << grade << endl;
cout << "输入坐标或命令:";
}


粗看了下,应该是会数组越界的,个人建议,要避免这个问题,数组再开大一点,比如你用的只是bubble[1][1]到bubble[10][10],那么你就标记数组的外围一圈为-1,遇到-1就是到边界了。如下:


查找相同的可消除的泡泡,建议可以使用深度优先遍历来递归做标记,代码会简洁很多。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧