#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
// 无法进入中央区域-- 还有字符莫名其妙消失的问题
char map[20][20];
int i, j;
void move(int x, int y);
int main(void)
{
int move_x = 1, move_y = 1;
for (i = 0; i < 20; i++)
scanf ("%s", &map[i]);
map[move_x][move_y] = 'M';
for (i = 0; i < 20; i++)
puts(map[i]);
move(move_x, move_y);
return 0;
}
void move(int x, int y)
{
char ch;
while ((ch = getch()) != 'q')
{
if (ch == 'w' || ch == 's' || ch == 'a' || ch == 'd')
{
map[x][y] = ' ';
switch (ch){
case 'w': map[--x][y] = 'M'; break;
case 's': map[++x][y] = 'M'; break;
case 'a': map[x][--y] = 'M'; break;
case 'd': map[x][++y] = 'M'; break;
}
}
else
{
printf ("不是有效按键!!!\n");
continue;
}
// 重绘地图
system("cls");
for(i = 0; i < 20; i++)
puts(map[i]);
}
}
移动时会出现字符莫名其妙消失 还有多个字符飞来飞去, 怎么回事
for (i = 0; i < 20; i++)
scanf ("%s", &map[i]);
map[move_x][move_y] = 'M';
for (i = 0; i < 20; i++)
puts(map[i]);
move(move_x, move_y);
循环体需要用{}