第八节课
复习
- 字符和字符串的区别
- “1234” 这是什么类型的?
- 不需要回车,不带回显的用于读取字符的函数是?
小人到哪了(利用xy确定小人的坐标)
我们学习也有一段时间了,大家应该有读代码的能力
今天,我们先来看一段代码
#include <stdio.h>
#include <stdlib.h>
#include "getch.h"
int main()
{
char map[50][50] = {" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};
map[0][0] = 'O';
int i;
int x, y;
x = y = 0;
char ch = '\0';
while (1)
{
system("clear");
for (i = 0; i < 10; i++)
puts(map[i]);
ch = getch();
if (ch == 'w')
{
map[x][y] = ' ';
x--;
map[x][y] = 'O';
}
if (ch == 's')
{
map[x][y] = ' ';
x++;
map[x][y] = 'O';
}
if (ch == 'a')
{
map[x][y] = ' ';
y--;
map[x][y] = 'O';
}
if (ch == 'd')
{
map[x][y] = ' ';
y++;
map[x][y] = 'O';
}
if (ch == 'q')
break;
}
return 0;
}
在上面这段代码中,我们使用了 x
y
两个变量来储存小人O
当前所在的位置
并且我们使用了ch = getch();
这样的一条语句来读入我们的键盘敲击
得到键盘输入以后,就可以根据输入的数值来确定用户想要往上下左右哪个方位
x
用于表示行y
用于表示列
那么各个方位就如下面的表格所示
x-1 y-1 | x-1 y | x-1 y+1 |
---|---|---|
x y-1 | x y | x y+1 |
x+1 y-1 | x+1 y | x+1 y+1 |
当我们知道用户想要小人往上走的时候
我们就可以把当前空间变成”空“,接着把x-1 y
所在的空间替换成小人O
这就代表着小人从当前位置”转移“到了正上方
其他方向同理
接下来我们想要加上墙壁做迷宫的话,我们就可以增加一个判断
如果想要走的那一步是墙壁的话就不能移动