本题要求:
今天教一个可以在控制台移动光标的函数,当初我大一的时候,就是用这个做了好多控制台小游戏。
输入格式:
w,s,a,d代表方向键
输出格式:
在x,y处输出#
输入样例:
dddddsssssaaawww
输出样例:
######
#
# #
# #
# #
####
解题思路 :
conio.h里面有一些检查输入有关的函数,我们用getch()和kbhit()。
getch是不回显的立即读取一个字符
kbhit是检测是否有键盘输入
代码 :
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
void gotoXY(int x, int y)
{
//Initialize the coordinates
COORD coord = {x, y};
//Set the position
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main() {
char a;
int x = 0;
int y = 0;
gotoXY(x, y);
cout << '#';
while (true) {
if (kbhit()) {
a = getch();
switch(a) {
case 'w':
y--;
break;
case 's':
y++;
break;
case 'a':
x--;
break;
case 'd':
x++;
break;
}
if (x < 0) {
x = 0;
} else if (y < 0) {
y = 0;
} else if (x > 15) {
x = 15;
} else if (y > 15) {
y = 15;
}
gotoXY(x, y);
cout << '#';
}
}
return 0;
}