c语言程序设计游戏图片导入,C语言编程小游戏-迷宫游戏(极难)

以下是游戏截图:

60be343213af

迷宫示意图

说明:0是玩家所在位置,#号是障碍物,玩家不可以穿越,玩家只可以移动到空白的地方,例如按s往下后出现这种情况

60be343213af

如图所示

我们发现0即玩家已经往下走了一格

另外只能输入w、s、a、d这四个按键,输入其他无反应。

代码如下:

#include

#define ROW 6

#define COL 6

int main(int

argc, const char * argv[]) {

char map[ROW][COL]={

{'#','#','#','#','#','#'},

{'#','0','#','#',' ',' '},

{'#','','#','#',' ','#'},

{'#','',' ','#',' ','#'},

{'#','#',' ',' ',' ','#'},

{'#','#','#','#','#','#'}

};

char input;

//

表示人的位置

int x = 1;

int y = 1;

while (1) {

// 打印

for (int i = 0; i < ROW; i++) {

for (int j = 0; j< COL; j++) {

printf("%c", map[i][j]);

}

printf("\n");

}

// 胜利的代码

if (x == 0|| x == ROW - 1|| y == 0 || y == COL- 1) break;

// 提示用户的输入

printf("请输入 w(上) s(下) a(左) d(右)\n");

// 输入数据, 判断正确

while (1)

{

printf("> ");

input = getchar();

while (getchar() != '\n');

if (input =='w' || input == 's' || input == 'a' || input =='d') {

break;

}

}

// 更新地图

switch (input) {

case 'W':

case 'w':

// 判断下一个位置是否可以走, 如果可以走就交换地图中的数据

// 如果不能走就不变

// 即 判断 (x - 1, y) 是不是空格, 如果是空格就可以走

if (map[x- 1][y] == ' ')

{

// 交换

int temp = map[x - 1][y];

map[x -1][y] = map[x][y];

map[x][y] = temp;

// 交换后更新 x y

x--;

}

break;

case 's':

if (map[x+ 1][y] == ' ')

{

// 交换

int temp = map[x + 1][y];

map[x +1][y] = map[x][y];

map[x][y] = temp;

// 交换后更新 x y

x++;

}

break;

case 'a':

if (map[x][y - 1] == ' ') {

// 交换

int temp = map[x][y - 1];

map[x][y -1] = map[x][y];

map[x][y] = temp;

// 交换后更新 x y

y--;

}

break;

case 'd':

if (map[x][y + 1] == ' ') {

// 交换

int temp = map[x][y + 1];

map[x][y +1] = map[x][y];

map[x][y] = temp;

// 交换后更新 x y

y++;

}

break;

}

// 清屏

system("clear");

}

printf("恭喜你重获自由...\n");

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值