我想在不使用图形的情况下制作蛇游戏。问题是当按下相应的按钮时,蛇必须改变方向。如何让我的程序响应我的按钮而无需扫描字符。因为,如果我添加一个像scanf()或getch()这样的指令,我的蛇就会停止移动,这不是蛇游戏的运作方式。
答案 0 :(得分:2)
实施取决于您要使用的系统。 Windows还有其他功能来检查按键而不是Linux。对于Windows,您可以使用Console.KeyAvailable。对于Linux,您最好看一下像ncurses这样的控制台库。
答案 1 :(得分:0)
在每个系统上都可以使getchar()
(或类似功能)无阻塞。在Unix系统上,解决方案是将终端(tty
)设置为原始模式。为了简化您的生活,您还可以使用一些库为您执行此操作,如curses
或其变体之一。这样的lib也可以帮助你在屏幕上绘制字符,就像你想象中的ASCII蛇程序一样。
Windows系统上也有不同的解决方案。
您还可以使用多线程。一个线程阻塞在终端I / O上并将读取字符传输到另一个移动蛇。