每日一题 No.13 会移动的光标

来源:互联网 发布:淘宝上的食品能买吗 编辑:程序博客网 时间:2024/05/29 17:57

本题要求:

今天教一个可以在控制台移动光标的函数,当初我大一的时候,就是用这个做了好多控制台小游戏。

输入格式:

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;}
0 0
原创粉丝点击