1. 程式人生 > >play with snake on linux

play with snake on linux

dev 開始 學習 是我 改進 tails linux 庫函數 strong

在寫完超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