gpt4 book ai didi

c - 在 while 循环中使用 kbhit()

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:02 25 4
gpt4 key购买 nike

这是程序。

void main( )
{
int h, v;
h = 1; v = 10;
while ( !kbhit( ) || h <= 80 )
{
gotoxy( h, v );
printf( "<--->" );
delay( 200 );
clrscr( );
h = h + 1;
}
getch( );
}

我正在用 C 编写一个程序,我在其中使用了 kbhit()运行一个循环,直到按下一个键。所以这里是箭头 "<--->"将继续向前移动,直到按下某个键或到达屏幕的最后一个像素。

我想要的是程序每次都将 h 递增 1 'd'每次按下并减​​1 'a'被按下。即h++;h--;并运行另一个循环,直到按下一个字符。这个想法更像是贪吃蛇游戏,蛇会一直朝某个方向移动,直到按下一个键。请帮忙!

最佳答案

clrscr() 应该在 gotoxy 和 printf 之前

无论如何,我要做的是创建一个状态变量,只是指示蛇应该走的方向,即,如果用户按下“a”或“d”时存储的东西。

而且我不会离开循环,只需使用 if(kbhit) 并获取 char。

int direction = 1; char control;
while (1)
{
if(kbhit()){
control = getch();
switch (control){
case 'a': direction = -1; break;
case 'd': direction = +1; break;
default: break;
}
}
clrscr( );
gotoxy( h, v );
printf( "<--->" );
delay( 200 );
h = h + direction;
}

关于c - 在 while 循环中使用 kbhit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22270310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com