想折腾一下Linux环境下的中国象棋
找到了一个神奇的ucci引擎,这个引擎的特点是只接受FEN代码
于是一不做二不休我搞了一个图形界面的象棋程序
目前的输出是这个样子的:
車-馬-象-士-将-士-象-馬-車
| | | |\|/| | | |
・-・-・-・-・-・-・-・-・
| | | |/|\| | | |
・-#-・-・-砲-・-・-砲-・
| | | | | | | | |
卒-・-卒-・-卒-・-卒-・-卒
| | | | | | | | |
・-・-・-・-・-・-・-・-・
| 楚 河 汉 界 |
・-・-・-・-・-・-・-・-・
| | | | | | | | |
兵-・-兵-・-兵-・-兵-・-兵
| | | | | | | | |
・-炮-马-・-相-・-・-炮-・
| | | |\|/| | | |
・-・-・-・-・-・-・-・-・
| | | |/|\| | | |
车-・-・-仕-帅-仕-相-马-车
我下一步的计划是,增加光标支持
高亮光标所在位置非常容易(事实上我的棋子都是用format!("{}[1;32m{}{}[0m",27_u8 as char,prints,27_u8 as char)
或format!("{}[1;33m{}{}[0m",27_u8 as char,prints,27_u8 as char)
带上颜色的(Linux终端支持如此上色,Windows……windows有现成的引擎不需要我插手))
现在的问题是没有办法监听键盘事件,除非我输入一串wwddw然后回车,否则程序并不知道我输入了什么
想问一下,Rust应该如何监听键盘事件,在按下按键(比如上下左右)的时候,程序能主动获知(而不需要我们敲回车)
1
共 4 条评论, 1 页
评论区
写评论看到了,谢谢
可以试试哪个更好用了
--
👇
luojia65: 建议使用TUI框架
感谢~
(其实可能主要的问题是我也不会C的处理)
(C的文件处理只学了fopen……)
--
👇
Aya0wind: 跟是C一样的,Linux下可以调OSAPI,open一个事件文件然后用read去读事件,或者使用termios库来做无阻塞无缓冲的读取输入。实际开发没必要这样,直接调ncurses里的函数就行了,使用非常简单,不仅可以选择有或无阻塞和缓冲的监听键盘事件,鼠标事件也可以,包括你画窗口画字符,颜色啥的都可以做,并且windows也能用pdcurses,API基本一样,很方便移植。上面这些库都有Rust的binding,直接crates.io里面搜就行了,选哪个看你自己。
建议使用TUI框架
跟是C一样的,Linux下可以调OSAPI,open一个事件文件然后用read去读事件,或者使用termios库来做无阻塞无缓冲的读取输入。实际开发没必要这样,直接调ncurses里的函数就行了,使用非常简单,不仅可以选择有或无阻塞和缓冲的监听键盘事件,鼠标事件也可以,包括你画窗口画字符,颜色啥的都可以做,并且windows也能用pdcurses,API基本一样,很方便移植。上面这些库都有Rust的binding,直接crates.io里面搜就行了,选哪个看你自己。