精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux下的圖形庫curses寫貪吃蛇,酷

系統 Linux
最近看到大神在Linux下寫的貪吃蛇代碼,用到了curses圖形庫,可能很多人都沒有用過,分享出來給大家。

近看到大神在Linux下寫的貪吃蛇代碼,用到了curses圖形庫,可能很多人都沒有用過,分享出來給大家。

在ubuntu下安裝curses圖形庫命令

  1. sudo apt-get install libncurses5-dev 

雙buff是一個非常優秀的機制,之前寫貪吃蛇的時候,如果不使用雙buff屏幕跳動會很劇烈,使用了雙buff后體驗就非常好。

我們使用curses圖形庫也是一樣,如果沒有調用refresh()函數之前,顯示的屏幕是不會進行更新的。

比如下面這段代碼 

  1. #include <unistd.h>  
  2. #include <stdlib.h>  
  3. #include <curses.h>  
  4. int main()  
  5.  
  6.     initscr();  
  7.     /* We move the cursor to the point (5,15) on the logical screen,  
  8.        print "Hello World" and refresh the actual screen.  
  9.        Lastly, we use the call sleep(2) to suspend the program for two seconds,  
  10.        so we can see the output before the program ends. */  
  11.     move(5, 15);  
  12.     addstr("Hello World");  
  13.     refresh();  
  14.     sleep(2);  
  15.     endwin();  
  16.     exit(EXIT_SUCCESS);  

使用下面的命令編譯并運行

  1. gcc -o t screen1.c -lncurses && ./t 

首先初始化一個屏幕,然后移動到屏幕的 5,15位置,在輸出字符串 Hello World。之后休眠 2秒后,程序退出。

使用curses寫貪吃蛇代碼 

  1. //sudo apt-get install libncurses5-dev  
  2. //gcc -o t tanchishe.c -lncurses && ./t  
  3. #include <curses.h> // Linux 下的圖形庫  
  4. #include <unistd.h> // usleep()  
  5. #include <stdlib.h> // rand()  
  6. #include <time.h>   // time()  
  7. #define W 40  
  8. #define H 24  
  9. int m[W * H], q[W * H], p = H / 2 * W + (W / 2), a, h = 0t = 0d = 1, i;  
  10. int main(void) {  
  11.     initscr(); noecho(); keypad(stdscr, 1); nodelay(stdscr, 1); curs_set(0);  
  12.     srand(time(NULL)); 
  13.     for (i = 0; i < W * H; i++)  
  14.         m[i] = !(i / W % (H - 1) && i % W % (W - 1));  
  15.     m[q[t = (t + 1) % (W * H)] = p] = 1;  
  16.     do { a = rand() % (W * H); } while (m[a]);  
  17.     while ((i = getch()) != 27) {  
  18.         if      (i == KEY_UP    && d !=  W) d = -W;  
  19.         else if (i == KEY_DOWN  && d != -W) d =  W 
  20.         else if (i == KEY_LEFT  && d !=  1) d = -1;  
  21.         else if (i == KEY_RIGHT && d != -1) d =  1 
  22.         if (m[p += d]) break;  
  23.         m[q[t = (t + 1) % (W * H)] = p] = 1;  
  24.         if (p == a) do { a = rand() % (W * H); } while (m[a]);  
  25.         else m[q[h = (h + 1) % (W * H)]] = 0;  
  26.         for (i = 0; i < W * H; i++)  
  27.             mvaddstr(i / W, (i % W) * 2, m[i] ? "[]" : "  ");  
  28.         mvaddstr(a / W, (a % W) * 2, "()");  
  29.         refresh();  
  30.         usleep(100000);  
  31.     }  
  32.     while (getch() == ERR);  
  33.     endwin();  

程序運行

簡單解釋下 

  1. for (i = 0; i < W * H; i++)  
  2.             mvaddstr(i / W, (i % W) * 2, m[i] ? "[]" : "  "); 

構建邊框和蛇身的代碼,邊框是用 [] 構建的,用這個字符從視覺上看會比較舒服。 

  1. mvaddstr(a / W, (a % W) * 2, "()"); 

隨機生成的食物,之前已經用時間srand(time(NULL));作為種子設置了隨機數。

  1. if (m[p += d]) break; 

碰撞檢測 

  1. if (p == a) do { a = rand() % (W * H); } while (m[a]);  
  2.         else m[q[h = (h + 1) % (W * H)]] = 0; 

如果碰撞到了食物,就增加蛇長度,m[]里面同時保存蛇的數據和邊框的數據,并且蛇移動的時候,需要把后面的數值設置為0。 

  1. p = H / 2 * W + (W / 2) 

蛇的初始位置

自己修改的代碼,可以實現穿墻效果 

  1. //sudo apt-get install libncurses5-dev  
  2. //gcc -o t tanchishe.c -lncurses && ./t 
  3. #include <curses.h> // Linux 下的圖形庫  
  4. #include <unistd.h> // usleep()  
  5. #include <stdlib.h> // rand()  
  6. #include <time.h>   // time()  
  7. #define W 40  
  8. #define H 24  
  9. int m[W * H], q[W * H], p = H / 2 * W + (W / 2), a, h = 0t = 0d = 1, i,j=3 
  10. int main(void) {  
  11.     initscr(); noecho(); keypad(stdscr, 1); nodelay(stdscr, 1); curs_set(0);  
  12.     srand(time(NULL));  
  13.     for (i = 0; i < W * H; i++) m[i] = !(i / W % (H - 1) && i % W % (W - 1));  
  14.     m[q[t = (t + 1) % (W * H)] = p] = 1;  
  15.     do { a = rand() % (W * H); } while (m[a]);  
  16.     while ((i = getch()) != 27) {  
  17.         if      (i == KEY_UP    && d !=  W) {d = -W;j=0;}  
  18.         else if (i == KEY_DOWN  && d != -W) {d =  W;j=1;}  
  19.         else if (i == KEY_LEFT  && d !=  1) {d = -1;j=2;}  
  20.         else if (i == KEY_RIGHT && d != -1) {d =  1;j=3;}  
  21.         if (m[p += d]) {  
  22.             switch(j){  
  23.                 case 0:p = p+(H-2)*W; break;  
  24.                 case 1:p = p-(H-2)*W; break;  
  25.                 case 2:p = p+W-2; break;  
  26.                 case 3:p = p-W+2; break;  
  27.                 default: p = H / 2 * W + (W / 2); break;  
  28.             }  
  29.         };  
  30.         m[q[t = (t + 1) % (W * H)] = p] = 1;  
  31.         if (p == a) do { a = rand() % (W * H); } while (m[a]);  
  32.         else m[q[h = (h + 1) % (W * H)]] = 0;  
  33.         for (i = 0; i < W * H; i++){  
  34.             mvaddstr(i / W, (i % W) * 2, m[i] ? "[]" : "  ");  
  35.         }  
  36.         mvaddstr(a / W, (a % W) * 2, "()");  
  37.         refresh(); 
  38.         usleep(100000);  
  39.     }  
  40.     while (getch() == ERR);  
  41.     endwin();  

運行如下:

代碼原文:

https://www.zhihu.com/question/360814879/answer/1013986215 

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2015-07-31 11:26:24

Swift貪吃蛇

2024-01-18 11:22:41

C++Windows開發

2012-06-05 14:42:57

Silverlight

2022-07-25 14:17:04

JS應用開發

2022-10-28 09:33:10

Linux貪吃蛇

2021-06-15 09:18:51

鴻蒙HarmonyOS應用

2020-08-20 20:30:49

C語言小游戲貪吃蛇

2024-12-17 17:46:05

Android原生控件貪吃蛇

2021-09-02 15:25:53

鴻蒙HarmonyOS應用

2022-11-07 11:27:00

JS游戲開發

2023-10-17 10:20:53

VueReact

2025-02-27 09:31:05

2010-02-05 15:00:44

Android 調用u

2016-09-19 21:24:08

PythonAsyncio游戲

2016-09-14 21:17:47

PythonAsyncio游戲

2016-09-22 21:12:14

2025-02-18 09:00:00

2018-08-31 15:48:33

2021-06-10 22:26:53

Python 幾何圖形

2021-05-27 16:53:09

開發技能代碼
點贊
收藏

51CTO技術棧公眾號

亚洲精品成人| 日韩一级视频| 久久久久久日产精品| 国产成人精品免费视频| 在线观看亚洲大片短视频| 激情欧美一区二区三区黑长吊| 国产精品色在线| 97netav| 日本少妇性生活| 免费欧美一区| 欧美一级日韩免费不卡| 成年人视频网站免费| 深夜福利在线看| 麻豆免费看一区二区三区| 欧美大片第1页| 短视频在线观看| 久久精品黄色| 亚洲成人午夜电影| 夜夜爽99久久国产综合精品女不卡| 国产三区在线播放| 香蕉成人久久| 欧美精品制服第一页| 成年人在线观看av| 日韩欧国产精品一区综合无码| 亚洲成人在线观看视频| 一本一生久久a久久精品综合蜜| 国产极品久久久| 日韩中文字幕一区二区三区| 欧美日韩国产va另类| 亚洲一区二区自偷自拍 | 日韩一级在线免费观看| 成人看片免费| 中文字幕乱码一区二区免费| 久久国产精品99久久久久久丝袜| 国产免费无遮挡| 噜噜噜91成人网| 久久久久久久网站| 青青草原在线免费观看| 激情婷婷综合| 日韩精品中文字幕在线观看 | 日韩中文视频| 午夜成人在线视频| 激情视频小说图片| 亚洲欧美视频一区二区| 久久精品一二三| 久久久精品动漫| 国产18精品乱码免费看| 国内外成人在线| 国产精品电影在线观看| 国产www在线| 亚洲激情成人| 久久久久久久久久av| 国产女人被狂躁到高潮小说| 欧美熟乱15p| 国产亚洲欧洲在线| 亚洲人人夜夜澡人人爽| 日本韩国欧美超级黄在线观看| 日韩欧美在线影院| 九色porny自拍| 日韩精品第一| 欧美三区在线观看| 视色视频在线观看| 国产精品.xx视频.xxtv| 欧美视频中文一区二区三区在线观看| 国产精品wwwww| 成人爱爱网址| 日本福利一区二区| 中文字幕网av| 久久av日韩| 欧美精品18+| 国产精品久久久久野外| 午夜久久av| 精品欧美一区二区在线观看| 丰满人妻一区二区三区免费视频棣| 一本色道69色精品综合久久| 日韩一区国产二区欧美三区| 黄色片子免费看| 秋霞午夜一区二区三区视频| 精品精品国产高清一毛片一天堂| 国产大学生av| 久久91在线| 国产网站欧美日韩免费精品在线观看| 成人午夜剧场视频网站| 成人毛片免费看| 精品久久国产精品| 久久久久性色av无码一区二区| 亚洲第一黄色| 日本欧美黄网站| 伊人网视频在线| 国产一本一道久久香蕉| 国产日韩二区| 黄色av免费在线看| 亚洲视频在线观看一区| 日韩精品视频在线观看视频| 最新中文字幕在线播放| 欧美视频日韩视频在线观看| 日韩欧美理论片| 加勒比久久高清| 国产一区二区三区欧美| 性欧美videos| 久久久一二三| 91免费在线视频网站| 少妇高潮久久久| 国产精品视频免费看| 欧美一区二区三区综合| 日本高清不卡一区二区三区视频| 9191久久久久久久久久久| 69亚洲乱人伦| 91综合在线| 久久久久久久久网站| 中文字幕人妻精品一区| 粉嫩aⅴ一区二区三区四区 | 天天操天天操天天| 国产精品久久一级| 青青青青草视频| 欧美日韩va| 日韩的一区二区| 永久免费看mv网站入口| 97人妻人人澡人人爽人人精品| 777午夜精品电影免费看| 欧美变态tickling挠脚心| 性欧美精品中出| 欧美午夜一区| 国产精品自拍小视频| 五月激情丁香婷婷| 亚洲欧洲中文日韩久久av乱码| 国产福利视频在线播放| 国色天香久久精品国产一区| 亚洲一区二区久久| 少妇一级淫片免费放中国| 国产一区二区三区精品视频| 日韩国产欧美一区| 精品人人视频| 日韩美女天天操| 免费黄在线观看| 性欧美xxxx大乳国产app| 98国产高清一区| 色老头视频在线观看| 欧美性极品xxxx做受| 美女伦理水蜜桃4| 亚洲精品tv久久久久久久久久| 国产精品69精品一区二区三区| 污视频在线免费| 亚洲国产欧美在线人成| 香蕉网在线视频| 99精品综合| 国产精品三级美女白浆呻吟| 九色蝌蚪在线| 色哟哟一区二区在线观看| 中文字幕一区三区久久女搜查官| 精品动漫一区| 国产一区不卡在线观看| av有码在线观看| 欧美成人免费网站| 精品国产一区二区三区久久| 成人黄色免费网址| 亚洲一级在线| 美女黄毛**国产精品啪啪| 俺来也官网欧美久久精品| 精品剧情v国产在线观看在线| 精品无码一区二区三区蜜臀| 精品一区二区在线播放| 一本一生久久a久久精品综合蜜| 日本a人精品| 色爱av美腿丝袜综合粉嫩av | 欧美日韩视频| 91嫩草免费看| 俺来也官网欧美久久精品| 亚洲成人xxx| 国产精品xxxx喷水欧美| 91免费视频观看| 日本黄网站免费| 欧美理论电影大全| 国产精品视频网站| 黄网站免费在线观看| 精品久久久久一区二区国产| 久久这里只有精品国产| 成人黄色777网| 国产成人无码精品久久久性色| 欧美偷窥清纯综合图区| 日韩av手机在线看| 在线国产91| 欧美一区二区久久久| 久久久夜色精品| 99久久婷婷国产综合精品电影 | 蜜臀久久99精品久久久久久9| 亚洲mv在线看| 日韩精品一级| 欧美最猛性xxxx| 91美女视频在线| 欧美一区二区啪啪| 800av免费在线观看| 国产亚洲成av人在线观看导航 | 亚洲成av人片在线观看香蕉| 久久露脸国语精品国产91| 久久久99精品久久| 五月激情婷婷在线| 国一区二区在线观看| 免费看成人片| 精品国产第一国产综合精品| 97在线视频观看| 9191在线观看| 精品久久一区二区| 中文字幕乱码视频| 亚洲男人天堂av| 三级电影在线看| 精品无码三级在线观看视频| 欧美日韩性生活片| 91亚洲一区| 欧美人与性禽动交精品| 一区二区三区日本视频| 97超级碰碰人国产在线观看| 国产福利在线播放麻豆| 精品性高朝久久久久久久| 97人妻精品一区二区三区视频| 精品magnet| av激情在线观看| 久久久蜜桃精品| 国产调教打屁股xxxx网站| 日韩电影免费一区| 色欲色香天天天综合网www| 欧美亚洲在线日韩| 国内外成人免费视频| 9999在线精品视频| 国产精品99久久久久久www| 岛国片av在线| 久久久999精品视频| 丁香婷婷在线| 亚洲精品电影在线| www日本视频| 欧美剧情片在线观看| 无码视频在线观看| 午夜久久久久久| 国产高清在线免费观看| 国产精品久久看| 国产熟女一区二区| 久久综合狠狠综合| 88av在线播放| 国产不卡视频一区| 久久久精品高清| 日韩精品欧美成人高清一区二区| 亚洲午夜精品久久久久久人妖| 欧美全黄视频| 欧美与动交zoz0z| 99精品电影| 亚欧洲精品在线视频免费观看| 免费精品国产| 欧美日韩精品免费观看| 群体交乱之放荡娇妻一区二区| 成人综合av网| xxxx日韩| 国产精品.com| 97人人澡人人爽91综合色| 99超碰麻豆| 一区二区日韩| 99久久自偷自偷国产精品不卡| 亚洲国产91视频| 成人在线国产精品| 国产麻豆精品| 国产精品日韩在线播放| 欧美男体视频| 欧美又大粗又爽又黄大片视频| 理论不卡电影大全神| 2019中文在线观看| 樱桃视频成人在线观看| 国产精品wwwwww| 精品视频一区二区三区四区五区| 国产精品电影久久久久电影网| 欧美影视资讯| 国产精品中文字幕在线观看| 亚洲图片小说区| 成人中心免费视频| 国产日韩一区二区三免费高清| 91日本视频在线| 一区二区三区自拍视频| 精品国产福利| 精品视频黄色| 在线视频不卡一区二区| 亚洲精品中文字幕乱码| 欧美中文字幕在线观看视频| 妖精视频成人观看www| 日本久久久精品视频| 日本系列欧美系列| 三区视频在线观看| 懂色av中文一区二区三区| 水蜜桃av无码| 中文字幕国产一区| 美女福利视频在线观看| 香蕉影视欧美成人| 免费黄色av片| 欧美一级二级在线观看| 牛牛影视精品影视| www.日韩av.com| av今日在线| 日本视频久久久| 999久久久国产999久久久| 国产chinese精品一区二区| 亚洲亚洲免费| 亚洲日本精品| 亚洲夜间福利| 日韩大片一区二区| www.av亚洲| 久久久久麻豆v国产| 亚洲午夜影视影院在线观看| 蜜臀精品一区二区三区| 欧美一区二区精品在线| 国产在线视频网址| 欧美另类极品videosbestfree| 三级在线观看视频| 91亚洲国产成人精品性色| 亚洲精华一区二区三区| 精品一区二区成人免费视频| 在线视频日韩| 性鲍视频在线观看| 久久精品这里都是精品| 国产一级做a爱免费视频| 欧美天堂一区二区三区| 国产小视频一区| 北条麻妃一区二区三区中文字幕| 国产在线精彩视频| 亚洲sss综合天堂久久| 精品成人影院| 青青草国产精品视频| 韩国女主播成人在线观看| 亚洲精品乱码久久久久久不卡| 亚洲欧美日韩中文播放| jizz国产在线| 日韩av最新在线| 女人天堂av在线播放| 成人福利网站在线观看| 九九久久婷婷| 欧美a v在线播放| 国产风韵犹存在线视精品| 亚洲一二三四视频| 日本丶国产丶欧美色综合| 污视频网站在线播放| 欧美黑人xxxx| 国产精品va视频| 中文字幕黄色大片| 日韩va欧美va亚洲va久久| 变态另类丨国产精品| 亚洲电影第三页| 国产成人精品一区二三区四区五区 | a级黄色一级片| 国产成人av电影在线播放| 啪啪一区二区三区| 欧美剧在线免费观看网站| 91吃瓜网在线观看| 国产精品免费一区豆花| 激情综合网五月| 中文字幕欧美人妻精品一区| 91麻豆国产香蕉久久精品| 男女视频免费看| 亚洲精品suv精品一区二区| а√天堂8资源在线| 国产精品乱子乱xxxx| 在线播放精品| 日本japanese极品少妇| 欧美午夜电影在线| 日本在线视频1区| 欧美亚洲成人免费| 国产欧美高清视频在线| 国产日韩成人内射视频| 国产丝袜美腿一区二区三区| 国产污视频网站| 中文字幕日韩欧美| 国产一区二区三区免费观看在线| 黄色网络在线观看| 国产高清在线观看免费不卡| 免费一级肉体全黄毛片| 亚洲精品国产精品乱码不99按摩| 麻豆免费版在线观看| 欧美亚洲另类久久综合| 日韩av高清在线观看| 国产黄色录像片| 欧美成人精精品一区二区频| 成人影院在线视频| 欧美欧美一区二区| 精品影视av免费| 国产在线视频二区| 日韩电影中文 亚洲精品乱码| japanese23hdxxxx日韩| 一区不卡字幕| 国产成人免费xxxxxxxx| 国产九色在线播放九色| 色综合亚洲精品激情狠狠| 另类视频一区二区三区| 黄色一级视频片| 亚洲国产精品99久久久久久久久| 国产视频在线观看免费| 97免费视频在线| 日本一本不卡| 无码av免费精品一区二区三区| 91久久线看在观草草青青| 国产精品实拍| 欧美日韩一区二区三区在线观看免| 久久99精品久久只有精品| 日韩高清精品免费观看| 中国日韩欧美久久久久久久久| 亚洲精品观看|