play with snake on linux
在寫完超Low的windows上的貪吃蛇後
被人吐槽了幾個方面:
1.界面真的Low,開始,結束,遊戲中,都太簡陋了...
2.每次都清屏在輸出字符矩陣的解決方案...太晃眼了
3.一個BUG,為了解決貪吃蛇隔固定時間time移動一個單位的問題
我們寫的是while(距上次移動時間 < time && 沒有鍵盤方向鍵的讀入);
於是我們驚喜的發現,只要一直摁方向鍵,就不必等待固定時間time
而是會直接下一步移動...手動加快貪吃蛇移動速度...
但是我們暫時並不想改進這個程序...畢竟怎麽說還是能玩一玩的
於是ytz決定在自己的deepin系統上寫一個能運行的貪吃蛇...
先想到的方法當然是直接把windows上的代碼拿來改一改啊...
但很快我們就遇到了重重障礙!
1.我們使用了conio.h中的_kbhit函數來判斷是否有鍵盤讀入
然而linux系統下是沒有conio.h這個庫的...
百度了一下linux下也沒有自帶庫函數有相同功能
於是我們就百度了一個手動實現_kbhit函數加進去
(參考自這個博客裏的方法二)
2.conio.h中的getch函數同樣需要替代品
這時候就有人指出明路,curses.h庫裏有啊
然後我們需要先安裝這個庫,在終端輸入
sudo apt-get install libncurses5-dev
回車即可開始安裝
然後編譯時需要加入 -lncurses 命令
比如 g++ -o Snake -lncurses Snake.cpp
否則編譯無法通過
3.啊,編譯通過了!
我們愉快的運行一下吧!
運行出了一坨屎!
我們百度一下curses.h 這個庫
發現是一個圖形庫,類似於大一學習C和C++的時候
老師提供windows上的的第三方庫ege.h
只不過curses的評價似乎比ege好一點2333
然後ege那個你懂的吧,開始運行進入圖形界面後
各種函數失效,printf...
以及輸出基本靠定位定點輸出,\n,\t 什麽的都會gg你懂的吧
...未完待續
play with snake on linux