精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩一区国产二区欧美三区| 久久久久国产一区二区三区四区| 精品视频9999| 国产污在线观看| 亚洲精品日产| 中文字幕一区二区在线观看| 高清一区二区三区视频| 成人免费毛片视频| 午夜欧美精品| 亚洲欧美第一页| 免费观看黄网站| 国产免费不卡| 一区二区视频在线看| 日韩av电影免费在线| 国产偷人妻精品一区二区在线| 国产精品日韩| 欧美日韩电影在线观看| www在线观看免费视频| 久久久久久久久久久久电影| 在线精品国精品国产尤物884a| 69精品丰满人妻无码视频a片| 免费黄色片在线观看| 国产一区二区h| 国产成人一区二区三区| 国产一卡二卡在线播放| 亚洲一级淫片| 永久免费看mv网站入口亚洲| 无码精品一区二区三区在线播放| 99re8精品视频在线观看| 色呦呦网站一区| 霍思燕三级露全乳照| 99热国产在线| **欧美大码日韩| 日韩精品一线二线三线| 艳母动漫在线看| 成人av资源在线| 97超碰在线播放| 97人妻精品一区二区三区视频| 亚洲欧美日韩综合国产aⅴ| 久久久久久久久久久免费精品 | 69视频免费看| 99精品国产在热久久下载| 欧美激情在线播放| 欧美精品久久久久性色| 久久久久久久久久久9不雅视频 | 俄罗斯毛片基地| 一区二区三区视频免费观看| 日韩电影网在线| 欧亚乱熟女一区二区在线| 亚洲精品国产九九九| 欧美一区二区三区在线看| 男人添女人下面高潮视频| 色av手机在线| 亚洲一区二区美女| 高清无码视频直接看| 色在线视频网| 亚洲一区日韩精品中文字幕| 成人国产在线看| 黄色污污视频在线观看| 亚洲国产日韩综合久久精品| 国产aaa免费视频| 草草在线视频| 日韩欧美福利视频| 久久精品视频91| 黄色精品视频| 91精品国产综合久久婷婷香蕉 | 99久久久无码国产精品| 久久国产精品久久精品国产| 国产在线视频网址| 国产精品国产a级| 9999在线观看| 黑人极品ⅴideos精品欧美棵| 一二三区精品视频| 91免费黄视频| 成人性生活av| 欧美午夜视频网站| 日韩欧美色视频| 欧美日本三级| 亚洲成人黄色在线| 日韩中文字幕电影| 久久在线视频| 欧美激情精品久久久久久蜜臀| 久久精品国产亚洲AV无码麻豆| 亚洲伦理精品| 国产精品av免费在线观看| 一本色道久久综合无码人妻| 狠狠狠色丁香婷婷综合久久五月| 91精品视频免费观看| 亚洲大尺度视频| 91偷拍与自偷拍精品| 欧美日韩另类丝袜其他| 免费黄网在线观看| 亚洲国产精品综合小说图片区| 国产最新免费视频| 欧美在线se| 亚洲国产毛片完整版| 2019男人天堂| 国户精品久久久久久久久久久不卡| 欧美一级在线播放| 一级片视频播放| 成人午夜短视频| 日韩欧美亚洲日产国| jizz性欧美| 91久久精品一区二区三| 精品人妻一区二区三区免费| 亚洲国产欧美日韩在线观看第一区| 色悠悠久久88| 日本系列第一页| 免费观看久久久4p| 久久精品aaaaaa毛片| 欧美18hd| 一本一道久久a久久精品| 99热这里只有精品2| 欧美精选视频在线观看| 久久久亚洲影院你懂的| 在线视频 91| 91亚洲资源网| 少妇一晚三次一区二区三区| 毛片无码国产| 亚洲成人精品视频| 亚洲精品卡一卡二| 日韩av中文字幕一区二区| 国产欧美一区二区三区另类精品| 毛片网站在线免费观看| 91久久久免费一区二区| 中文字幕日韩三级片| 国内成人在线| 91亚洲精品视频| 最新国产在线观看| 色就色 综合激情| 国产毛片毛片毛片毛片毛片毛片| 久久精品国内一区二区三区水蜜桃| 国产精品成人播放| 日韩二区三区| 欧美日韩人人澡狠狠躁视频| 成人啪啪18免费游戏链接| 999久久久精品国产| 国产999精品| 秋霞av在线| 欧美日韩亚洲国产一区| 97人妻精品一区二区三区免费| 亚洲精品99| 亚洲一区亚洲二区| 老司机av在线免费看| 欧美美女网站色| jizz18女人高潮| 日韩av一二三| 午夜精品电影在线观看| 成人精品高清在线视频| 国产一区二区日韩| 狠狠躁夜夜躁人人爽视频| 国产视频911| 国产三级日本三级在线播放 | 99热一区二区三区| 亚洲欧洲专区| 久久国产精彩视频| 国产特级aaaaaa大片| 一区二区三区欧美久久| 成年人性生活视频| 欧美日韩一区自拍| 国产精品二区三区四区| 18aaaa精品欧美大片h| 亚洲国产精品久久久久久| 日本熟妇色xxxxx日本免费看| 成人av电影在线| 国产精品又粗又长| 免费观看久久av| 国产精品午夜国产小视频| 国产在线高清视频| 精品国产三级电影在线观看| 男人的天堂一区二区| 久久综合av免费| 牛夜精品久久久久久久| 一区二区在线影院| 99www免费人成精品| 黄色漫画在线免费看| 亚洲欧美国产一本综合首页| 在线免费观看一区二区| 一区二区免费在线播放| 人妻丰满熟妇av无码久久洗澡| 日韩精品视频网| ijzzijzzij亚洲大全| 超碰97久久| 国产精品91视频| 中文在线手机av| 日韩成人xxxx| 亚洲一级黄色大片| 亚洲无线码一区二区三区| 欧美成人国产精品一区二区| 精品一区二区三区免费| 成人毛片一区二区| 色爱综合网欧美| 国产精品一区视频网站| 91大神在线观看线路一区| 九九精品视频在线观看| 精品乱码一区二区三四区视频 | 成人a在线视频| 欧美性爽视频| 中文字幕在线日韩| 黄色片一区二区| 欧美日韩视频一区二区| 久久久国产成人| 欧美激情一区三区| 稀缺呦国内精品呦| 麻豆91精品视频| 国产精品无码一区二区在线| 久久精品一区二区不卡| 欧美亚洲另类久久综合| 无码国模国产在线观看| 国产精品久久中文| 高潮在线视频| 欧美成人精品h版在线观看| 日本在线视频1区| 精品久久久久久综合日本欧美 | 日韩精品极品| 欧美插天视频在线播放| 91在线网址| 亚洲欧美一区二区精品久久久| 国产手机视频在线| 欧美三级电影在线观看| 国产成人愉拍精品久久 | 中日韩美女免费视频网址在线观看| 亚洲精品国偷拍自产在线观看蜜桃| 欧美亚洲一区三区| 久久青青草视频| 亚洲超碰精品一区二区| 黄色一级片中国| 亚洲欧洲日韩在线| 国产精品免费无码| 97se狠狠狠综合亚洲狠狠| 成人欧美精品一区二区| 国产福利一区二区| 中文字幕视频三区| 蜜桃视频第一区免费观看| 26uuu国产一区二区三区| 日韩欧美精品中文字幕| 在线观看成人毛片| 国产精品成人免费在线| 日韩福利在线视频| 久久久久久久综合色一本| 久久精品女同亚洲女同13| 国产成人三级在线观看| 亚洲黄色片免费| 国内精品久久久久影院薰衣草| 日本xxxx黄色| 美女视频免费一区| 日日干夜夜操s8| 毛片av一区二区三区| 91国产精品视频在线观看| 日欧美一区二区| 三级在线视频观看| 久久狠狠亚洲综合| 日韩成人av免费| 国产高清无密码一区二区三区| 国产又粗又长又爽又黄的视频| 紧缚捆绑精品一区二区| 91性高潮久久久久久久| 国产mv日韩mv欧美| 免费在线观看日韩av| gogo大胆日本视频一区| 少妇一级淫片免费放播放| 91女厕偷拍女厕偷拍高清| 美国黄色a级片| 国产喷白浆一区二区三区| 非洲一级黄色片| 国产精品久久久久久久久免费樱桃 | 欧美大片免费| 国产成人精品在线观看| 久久久久久久性潮| 亚洲精品欧美一区二区三区| 秋霞一区二区三区| 精品国产电影| 残酷重口调教一区二区| 黄色www在线观看| 国产精品a级| 超碰97人人射妻| 毛片不卡一区二区| 日本精品一二三| 久久精品欧美一区二区三区麻豆| 国产精品久久久视频| 亚洲精品视频观看| 欧美另类一区二区| 欧美日韩一区二区三区在线看 | 亚洲最新在线| 国模 一区 二区 三区| caopor在线视频| 国产在线播精品第三| 91黄色免费视频| 最新国产精品久久精品| 国产精品成人免费一区二区视频| 日韩欧美亚洲成人| 国产乱码精品一区二三区蜜臂| 亚洲第一国产精品| 国产高清在线| 欧美高清视频一区二区| 成人日韩精品| 成人动漫视频在线观看完整版| 亚洲成在人线免费观看| 在线视频不卡一区二区三区| 亚洲精品人人| 一区二区三区四区毛片| 91视视频在线直接观看在线看网页在线看| 欧美18—19性高清hd4k| 一区二区三区在线视频观看| 久久久久久无码午夜精品直播| 欧美一区二区三区四区在线观看| 天天操天天射天天舔| 久久精品电影网站| 中文不卡1区2区3区| 91成人理论电影| 欧美综合另类| 成人小视频在线看| 从欧美一区二区三区| sm捆绑调教视频| 日韩欧美精品网站| 日本国产在线观看| 欧美乱大交做爰xxxⅹ性3| 日韩精品免费观看视频| 九九九九九九精品| 国产精品v亚洲精品v日韩精品| 中文字幕在线观看日 | 日本视频一区在线观看| 极品尤物久久久av免费看| 91丝袜超薄交口足| 国产精品电影一区二区三区| 黄色污污网站在线观看| 精品毛片乱码1区2区3区| 麻豆tv在线| 国产精品视频在线播放| 精品一区在线| 日韩网址在线观看| 99国产欧美久久久精品| 久久久久久av无码免费网站| 91精品国产综合久久久久久久| 国产69久久| 国产精品成人在线| 要久久电视剧全集免费| 两根大肉大捧一进一出好爽视频| 成人久久视频在线观看| 欧美日韩精品亚洲精品| 欧美一区二区视频在线观看 | 亚洲精品国产无天堂网2021 | 精品一区免费av| 日韩在线一卡二卡| 欧美乱妇15p| 男人和女人做事情在线视频网站免费观看| 国产成人av网址| 精品国产a一区二区三区v免费| 日本免费黄视频| 91色视频在线| 四虎影院在线免费播放| 国产亚洲欧美日韩一区二区| 澳门成人av网| 亚洲电影一二三区| 免费的成人av| 一级性生活免费视频| 7777精品久久久大香线蕉| 免费黄色网页在线观看| **亚洲第一综合导航网站| 亚洲一区在线| 日本一级大毛片a一| 亚洲一区成人在线| 色视频在线观看免费| 国产成人福利网站| 色喇叭免费久久综合| 91看片破解版| 亚洲综合色噜噜狠狠| 亚洲人妻一区二区三区| 国产精品久久国产精品99gif| 日本成人小视频| 亚洲网中文字幕| 亚洲二区在线观看| 青青草在线视频免费观看| 国产精品va在线播放| 婷婷另类小说| 欧美图片自拍偷拍| 色天使色偷偷av一区二区| 91caoporn在线| 99在线热播| 美女被久久久| 中文字幕av免费在线观看| 亚洲高清av在线| xxxxx.日韩| 久久99久久99精品| 久久精品视频在线免费观看| 国产精品怡红院| 欧美亚洲一区在线| 午夜影院欧美| 日本japanese极品少妇| 欧美日韩亚洲综合一区二区三区| av网站在线免费看推荐| 欧美h视频在线| 国产一区免费电影| 久久久午夜影院| 日韩在线视频国产| 亚洲调教一区| 2018国产精品| 欧美午夜片在线看| 国产高清在线a视频大全| 亚洲不卡一卡2卡三卡4卡5卡精品|