初始化(运行两次addRandom())
以下操作循环:
显示棋盘showBoard(p)
获取操作_getch()
用RecordBoard()记录棋盘
判断操作后执行函数(moveUp()、moveDown()、moveLeft()、moveRight())
运行comparePre()如果操作有效就开始新的回合
判断游戏状态Judge()
addRandom:先判断棋盘有没有满,然后随机挑个位置空着就加个2或4,没空着就再随机一次如此反复
showBoard:单纯的把数组里的数字展示出来
获取用户操作:用_getch()
这个函数能不用回车直接读取键盘的输入
游戏操作处理:
首先将棋盘划分开来思考,比如上下的操作,左右之间就没有任何联系
然后对单独的一列的相邻两个进行比对,移动方向为零就传值,相同就乘2
考虑各种情况,最终我的执行顺序就是
移动两次,合并一次再移动一次
还有就是比如向下的操作就得从下面开始,不然会出现0222(从上到下)变成0042的情况,正确来说应该是0024
能解决4*4的所有情况,目前还没发现什么不妥
最终程序的体现就是轮询12格,让它们与下一格比对
判断游戏状态:首先判赢,然后判断有没有空格和还能不能合并,都没有就游戏结束(失败)了