经过差不多一星期c语言的学习,结合这几天学习的基础知识,再加上老师的一部分补充。成功编写出了“推箱子”的小游戏,颇有一番成就感。
下面是编写代码的过程:
首先,需要在界面打印一张地图,采用的是7行8列的二维数组,通过给数组中元素不同的值,可以打印出不同的符号,代表不同的含义。这里选用for循环遍历数组元素,然后用switch函数进行分支输出。
void show(int a[][8],size_t n){
int i;int j;
for(i=0;i<n;i++){
for(j=0;j<8;j++){
switch(a[i][j]){
case 0: printf(" ");break;//路
case 1: printf("#");break;//墙
case 2: printf("a");break;//箱子
case 3: printf("O");break;//洞
case 4: printf("&");break;//老鼠
case 5: printf("&");break;//老鼠进洞
case 6: printf("@");break;//箱子放进洞
}
}
printf("\n");
}
}
在打印出地图后,需要从键盘读取输入,在此基础上,根据键盘输入的不同,可以完成不同的动作。“推箱子”这个游戏重要的就是移动,在老师的讲解下,上下左右移动可以直接整合成一个函数,只需要改变传入函数的参数,就能做到四个方向的移动。自身坐标可以在初始化阶段循环一遍数组找到横纵坐标再