我们可以在微信小程序搜索2048,并玩上几把,体验几盘游戏后,不难发现游戏的逻辑其实很简单。
我把想到的大致逻辑画出思维导图,然后再用编程一步一步地去实现它,当然,也参考了他人优秀的逻辑来优化自己的代码。
1.菜单
菜单里面信息只有三条:开始游戏、退出游戏、操作说明。在main函数里使用switch(),列出三个选项分别对应上述菜单的三个信息,供玩家输入。
void menu()//菜单
{
printf("************************\n");
printf("******** 1.play ********\n");
printf("******** 2.exit ********\n");
printf("Control by:w/s/a/d or W/S/A/D\n");
printf("************************\n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 2:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
} while (input);
return 0;
}
2.建立图格
游戏界面是这样的(如下图),这是一个4X4的表盘,可以想出的是我们可以建立一个四行四列的数组a[4][4]来作为其中数字的填充。
当然表盘的边框也是要打印出来的,为了使界面更加的美观和清爽,一共十六个小格,每个小格的空尽量留大一些。
实现方案如上图所示,每一小方格由三根竖线组成,代码如下:
void board(void) //4x4的图格
{
int i = 0;
int j = 0;
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 4; ++j)
printf("| ");
printf("|\n");
for (j = 0; j < 4; ++j)
{
if (a[i][j] == 0)
printf("| ");
else
printf("|%4d", a[i][j]);
}
printf("|\n");
for (j = 0; j < 4; ++j)
printf("|____");
printf("|\n");
}
}
3.初始化数组
未完待续