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

通過 ncurses 在 Linux 上寫一個猜謎游戲

系統 Linux
使用 ncurses 的靈活性和強大功能在 Linux 上創建一個猜數字游戲。

使用 ncurses 的靈活性和強大功能在 Linux 上創建一個猜數字游戲。

在我的 上一篇文章,我簡要介紹了使用 ncurses 庫通過 C 語言編寫文本模式交互式應用程序。使用 ncurses,我們可以控制文本在終端上的顯示位置和方式。如果你通過閱讀手冊頁探索 ncurses 庫函數,你會發現顯示文本有很多不同的方式,包括粗體文本、顏色、閃爍文本、窗口、邊框、圖形字符和其它功能,這些都可以使你的應用脫穎而出。

如果你想探索一個更高級的程序來演示其中一些有趣的功能,有一個簡單的“猜數字”游戲,我已更新為使用 ncurses 編寫的了。該程序在一個范圍內選擇一個隨機數,然后要求用戶進行重復猜測,直到他們猜到這個秘密數字。當用戶進行猜測時,程序會告知他們猜測的數字是太低還是太高。

請注意,程序限定可能的數字范圍是 0 到 7。將值保持在有限的個位數數字范圍內,可以更輕松的使用 getch() 函數從用戶讀取單個數字。我還使用了 getrandom 內核系統調用來生成隨機數,設定數字最大值為 7,以從 0 (二進制 0000)到 7 (二進制 0111)中選擇一個隨機數。

  1. #include <curses.h>;
  2. #include <string.h>;          /* for strlen */
  3. #include <sys/random.h>;      /* for getrandom */
  4.  
  5. int
  6. random0_7()
  7. {
  8.    int num;
  9.    getrandom(&num, sizeof(int), GRND_NONBLOCK);
  10.    return (num & 7); /* from 0000 to 0111 */
  11. }
  12.  
  13. int
  14. read_guess()
  15. {
  16.   int ch;
  17.  
  18.   do {
  19.     ch = getch();
  20.   } while ((ch < '0') || (ch > '7'));
  21.  
  22.   return (ch - '0'); /* turn into a number */
  23. }

通過使用 ncurses,我們可以增加一些有趣的視覺體驗。通過添加函數,我們可以在屏幕頂部顯示重要的文本信息,在屏幕底部顯示狀態消息行:

  1. void
  2. print_header(const char *text)
  3. {
  4.   move(0, 0);
  5.   clrtoeol();
  6.  
  7.   attron(A_BOLD);
  8.   mvaddstr(0, (COLS / 2) - (strlen(text) / 2), text);
  9.   attroff(A_BOLD);
  10.   refresh();
  11. }
  12.  
  13. void
  14. print_status(const char *text)
  15. {
  16.   move(LINES - 1, 0);
  17.   clrtoeol();
  18.  
  19.   attron(A_REVERSE);
  20.   mvaddstr(LINES - 1, 0, text);
  21.   attroff(A_REVERSE);
  22.   refresh();
  23. }

通過這些函數,我們就可以構建猜數字游戲的主要部分。首先,程序為 ncurses 設置終端,然后從 0 到 7 中選擇一個隨機數。顯示數字刻度后,程序啟動一個循環,詢問用戶的猜測。

當用戶進行猜測時,程序會在屏幕上提供反饋。如果猜測太低,程序會在屏幕上的數字下方打印一個左方括號。如果猜測太高,程序會在屏幕上的數字下方打印一個右方括號。這有助于用戶縮小他們的選擇范圍,直到他們猜出正確的數字。

  1. int
  2. main()
  3. {
  4.   int number, guess;
  5.  
  6.   initscr();
  7.   cbreak();
  8.   noecho();
  9.  
  10.   number = random0_7();
  11.   mvprintw(1, COLS - 1, "%d", number); /* debugging */
  12.  
  13.   print_header("Guess the number 0-7");
  14.  
  15.   mvaddstr(9, (COLS / 2) - 7, "0 1 2 3 4 5 6 7");
  16.  
  17.   print_status("Make a guess...");
  18.  
  19.   do {
  20.     guess = read_guess();
  21.  
  22.     move(10, (COLS / 2) - 7 + (guess * 2));
  23.  
  24.     if (guess < number) {
  25.       addch('[');
  26.       print_status("Too low");
  27.     }
  28.  
  29.     else if (guess > number) {
  30.       addch(']');
  31.       print_status("Too high");
  32.     }
  33.  
  34.     else {
  35.       addch('^');
  36.     }
  37.   } while (guess != number);
  38.  
  39.   print_header("That's right!");
  40.   print_status("Press any key to quit");
  41.   getch();
  42.  
  43.   endwin();
  44.  
  45.   return 0;
  46. }

復制這個程序,自己嘗試編譯它。不要忘記你需要告訴 GCC 編譯器鏈接到 ncurses 庫:

  1. $ gcc -o guess guess.c -lncurses

我留下了一個調試行,所以你可以看到屏幕右上角附近的秘密數字:

 

圖1:猜數字游戲。注意右上角的秘密數字。

開始使用 ncurses 

該程序使用了 ncurses 的許多其它函數,你可以從這些函數開始。例如,print_header 函數在屏幕頂部居中以粗體文本打印消息,print_status 函數在屏幕左下角以反向文本打印消息。使用它來幫助你開始使用 ncurses 編程。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2021-06-26 16:24:21

Linux命令系統

2019-05-23 14:36:24

LinuxSOSReportxsos

2015-12-17 11:04:00

云開支云計算

2019-03-31 08:50:44

LinuxWine游戲

2012-01-04 13:55:23

Canvas

2015-06-29 11:30:07

JavaScript小烏龜推箱子

2021-04-14 15:25:39

Linux加密文件保險庫

2022-10-11 15:15:31

應用開發鴻蒙

2011-09-08 10:46:12

Widget

2021-09-06 09:10:31

Linuxncurses定位文本

2015-06-02 04:13:23

Python乒乓球類游戲

2018-01-19 12:56:19

Linux進程

2022-07-01 15:33:53

LinuxBash

2021-01-14 08:55:20

C語言編程

2021-01-03 16:30:34

Rust編程語言

2018-07-16 08:40:08

Linux段錯誤C++

2018-11-06 09:24:55

LinuxLutries命令

2021-11-01 12:13:53

Linux僵尸進程

2022-08-10 18:14:49

國際象棋游戲位字段C語言

2023-11-29 08:10:36

javascriptH5游戲
點贊
收藏

51CTO技術棧公眾號

天堂√中文最新版在线| 后进极品白嫩翘臀在线视频| 国产精品久久观看| 精品国产乱码久久| 国产无套内射久久久国产| 在线毛片网站| 粉嫩欧美一区二区三区高清影视| 欧美一区三区三区高中清蜜桃| 国产性猛交xx乱| 91麻豆精品激情在线观看最新 | 在线天堂中文资源最新版| 国产网站一区二区三区| av一区二区三区在线观看| 亚洲AV无码成人精品区东京热| 99久久婷婷| 亚洲国产精品成人av| 亚洲小视频网站| а√天堂资源官网在线资源| 亚洲欧洲在线观看av| 久久精品日产第一区二区三区| 97久久人国产精品婷婷| 亚洲欧美网站| 欧美丰满老妇厨房牲生活| 国产真人做爰视频免费| 成人h动漫精品一区二区器材| 欧美性大战久久久久久久蜜臀 | 日韩成人一区二区| 久久久久亚洲精品成人网小说| 日日操免费视频| 久久99高清| 亚洲成人av在线| 黄色一级片免费播放| 深夜视频一区二区| 欧美日韩免费看| 91国在线高清视频| 日本三级视频在线观看| 久久精品水蜜桃av综合天堂| 国产视频一区二区不卡| av中文字幕在线免费观看| 免费成人你懂的| 国产精品久久久久久久久免费| 天天操天天爽天天干| 好看的亚洲午夜视频在线| 久久亚洲春色中文字幕| 日本激情视频一区二区三区| 国产欧美日韩在线观看视频| 日韩精品中文字幕有码专区| 久久久老熟女一区二区三区91| 日韩精品视频在线看| 在线播放欧美女士性生活| 69久久久久久| 成人免费网站www网站高清| 欧美性猛交xxxx黑人猛交| 国产一级爱c视频| 超碰97国产精品人人cao| 亚洲国产综合色| 国产精品一线二线三线| 黄色在线观看www| 福利视频导航一区| 各处沟厕大尺度偷拍女厕嘘嘘| 三妻四妾完整版在线观看电视剧 | 老司机在线精品视频| 精品久久久久香蕉网| 亚洲一区二区三区黄色| 欧美精品中文| 亚洲一级黄色av| 中文字幕第24页| 999成人精品视频线3| 久久精品99久久久久久久久| 日本老熟俱乐部h0930| 亚洲视频精品| 欧美一级大片视频| 中文字幕av在线免费观看| 日韩高清在线电影| 成人国产在线视频| 亚洲av无码乱码国产精品| 丁香婷婷综合激情五月色| 精品国产免费久久久久久尖叫 | 久久久久久国产精品| 国产精品第9页| 久久这里只有| 91精品久久久久久久久久另类 | 欧美精品videos| wwwxxx亚洲| 美腿丝袜在线亚洲一区| 91免费版黄色| 天天干天天舔天天射| 久久久国产综合精品女国产盗摄| 亚洲女人毛片| 成人影音在线| 日本韩国精品在线| 亚洲视频在线不卡| 欧美日韩精品一区二区三区在线观看| 亚洲色图av在线| 老湿机69福利| 国产精品日本| 91久久国产精品| 五月婷婷在线播放| 国产精品免费人成网站| 男人插女人视频在线观看| 国产原创一区| 亚洲精品久久久久中文字幕欢迎你| 亚洲第一视频区| 中国女人久久久| 成人免费观看a| 男同在线观看| 亚洲一区二区三区四区在线免费观看 | 一边摸一边做爽的视频17国产| 狠狠操综合网| 国产69精品久久久久9999| 在线观看视频中文字幕| av不卡在线播放| 国产精品久久成人免费观看| 女生影院久久| 亚洲国产另类 国产精品国产免费| 毛片久久久久久| 性色av一区二区怡红| 亚洲a一级视频| 阿v免费在线观看| 五月天视频一区| 中文字幕乱妇无码av在线| 成人免费电影网址| 亚洲大片免费看| 五月天av影院| 欧美magnet| 精品99一区二区| 视频这里只有精品| 久久99日本精品| 日韩av影视| 精品三级久久| 亚洲国产欧美在线成人app | 色婷婷精品久久二区二区密| 亚洲精品国产首次亮相| 国产精品久久久久久搜索| 久青青在线观看视频国产| 亚洲成a人在线观看| 制服.丝袜.亚洲.中文.综合懂| 日韩在线观看| 国产精品久久久久9999| 精品视频一二区| 色88888久久久久久影院按摩| 亚洲调教欧美在线| 一本不卡影院| 九九久久99| 国内激情视频在线观看| 亚洲国产精品va| 国产乱码久久久久久| 99精品在线观看视频| 欧美国产视频一区| 九九热播视频在线精品6| 国模极品一区二区三区| 午夜视频福利在线观看| 精品久久久久久中文字幕| 欧亚乱熟女一区二区在线| 99视频一区| 欧美日韩在线一二三| 国模视频一区| 中文字幕精品av| 国产又粗又猛又黄又爽无遮挡| 亚洲三级在线免费观看| 中文字幕永久视频| 久久久久电影| 91成人免费视频| 9999热视频在线观看| 精品亚洲永久免费精品| 中文字幕人妻色偷偷久久| 国产精品久久久久一区二区三区 | 久久这里只有精品99| 国内精品国产成人国产三级| 亚洲午夜电影在线观看| 久久国产精品无码一级毛片| 日韩一区欧美二区| 一区二区三区欧美成人| 亚洲一区二区三区免费| 国语自产偷拍精品视频偷| 欧美女子与性| 91精品国产色综合久久ai换脸| 久久婷婷一区二区| 久久亚洲精品国产精品紫薇| 校园春色 亚洲色图| 午夜免费一区| 精品中文字幕人| 欧美高清影院| 国产做受高潮69| 日本中文字幕在线播放| 亚洲第一区在线观看| 亚洲精品一区二三区| 亚洲免费毛片网站| 中文字幕5566| 国产在线视频一区二区| 成熟了的熟妇毛茸茸| 天天揉久久久久亚洲精品| 精品免费国产| 国产精品一站二站| 欧美资源在线观看| 成年人黄视频在线观看| 亚洲精品视频在线观看视频| 精品国产av 无码一区二区三区 | 久久综合色占| 岛国视频一区免费观看| 国产v综合v| 韩国精品美女www爽爽爽视频| 91在线直播| 亚洲国产精品人人爽夜夜爽| 亚洲系列在线观看| 欧美性猛交xxxx| 久青草免费视频| 国产精品久久久久一区二区三区共 | 成人在线国产视频| 国产精品97| 日本成人三级| 日韩在线你懂的| www.一区二区三区| 亚洲精品tv| 国产精品成人一区二区三区吃奶| av中文资源在线资源免费观看| 久久综合网hezyo| caoporn国产精品免费视频| 亚洲精品www| 亚洲精品久久久久久无码色欲四季| 欧美三区免费完整视频在线观看| 国产成人愉拍精品久久 | 青青草视频国产| 日韩欧美视频在线播放| 日本在线高清视频一区| 色爱av综合网| 国产一区二区三区奇米久涩| 免费精品一区二区三区在线观看| 国产欧美中文字幕| 播放一区二区| 国产精品久久久一区| 欧美freesex| 日韩av电影免费观看高清| 人妻少妇精品无码专区久久| 777久久久精品| 亚洲天堂avav| 欧美日韩午夜在线| 五月激情丁香网| 欧美又粗又大又爽| 91麻豆精品在线| 在线观看日韩高清av| www毛片com| 91久久久免费一区二区| 香蕉污视频在线观看| 色老综合老女人久久久| 欧美a视频在线观看| 91九色02白丝porn| 黄色av网站免费观看| 在线欧美日韩国产| 黄色污污视频软件| 欧美三级资源在线| 一区二区视频播放| 69堂国产成人免费视频| 国产精品嫩草影院桃色| 欧美一区二区成人6969| 国产高清视频免费| 精品毛片乱码1区2区3区| 亚洲a视频在线| 亚洲高清福利视频| 日本一二三区在线视频| 亚洲色图35p| 九七久久人人| 欧美激情精品久久久久久变态| 1234区中文字幕在线观看| 欧美做爰性生交视频| www.久久| 亚洲自拍偷拍网址| 欧美人与动xxxxz0oz| 日本成人黄色| 一区二区三区午夜探花| 日本男女交配视频| 亚洲欧美成人| 久久久精品高清| 懂色av一区二区三区蜜臀| 国产偷人妻精品一区| 国产精品水嫩水嫩| 久一区二区三区| 色哟哟精品一区| 国产精品老熟女视频一区二区| 欧美电影免费观看完整版| 欧洲综合视频| 美女久久久久久久| 天堂√中文最新版在线| 国产在线观看不卡| 日韩激情网站| 香蕉精品视频在线| 国产美女精品| 超碰成人在线播放| 91视频国产资源| 2014亚洲天堂| 一本大道久久a久久综合婷婷| 91精品人妻一区二区三区果冻| 亚洲国产精品小视频| 巨大荫蒂视频欧美另类大| 亚洲3p在线观看| 亚洲伊人精品酒店| 免费久久久一本精品久久区| 亚洲精品一二三区区别| 成人在线激情网| 国产jizzjizz一区二区| 女人黄色一级片| 精品二区三区线观看| 97在线播放免费观看| 亚洲精品一区中文| 青草在线视频| 国产日韩av高清| 精品一区欧美| 黄页网站在线观看视频| 久久69国产一区二区蜜臀| av在线网站观看| 亚洲国产欧美一区二区三区丁香婷| 久久久久久av无码免费看大片| 亚洲国产小视频| 四虎影视成人| 成人网在线免费看| 精品成人影院| 欧美视频免费播放| 成人av高清在线| 国产小视频在线看| 欧美精品一二三区| 91精品国产综合久| 亚洲新声在线观看| 亚洲美女尤物影院| 国产日韩精品一区观看| 欧美另类亚洲| 国产91在线免费观看| 中文字幕亚洲电影| 亚洲天堂网视频| 在线观看成人黄色| 人人鲁人人莫人人爱精品| 久久波多野结衣| 一区在线视频| 国产精品亚洲一区二区无码| 亚洲欧美日韩国产一区二区三区| 一卡二卡在线观看| 日韩有码片在线观看| 看片一区二区| 亚洲一区二区高清视频| 老司机精品视频在线| 免费看的黄色录像| 欧美色图片你懂的| av片在线看| 国产日本欧美一区二区三区在线 | 久草热在线观看| 国产一区二区三区在线视频| 草莓视频成人appios| 亚洲精品自在在线观看| 精品影视av免费| 国产免费久久久久| 日韩三级在线免费观看| 久草在线新免费首页资源站| 国产精品久久7| 亚洲欧美日韩国产一区| www.黄色在线| 欧美美女网站色| 羞羞视频在线观看不卡| 福利视频一区二区三区| 99视频精品| 国产精品酒店视频| 欧美一三区三区四区免费在线看 | 伦理片一区二区三区| 国产精品国产福利国产秒拍| 日韩欧美一区二区三区免费看| 久久精品国产露脸对白| 一个色妞综合视频在线观看| 五月婷婷在线播放| 国产精品久久色| 欧美日韩一区自拍| 久久无码人妻精品一区二区三区| 欧美日韩中文字幕一区| 特级毛片在线| 欧美午夜视频在线| 国内精品久久久久影院色| 日本一级淫片免费放| 亚洲午夜av电影| 日韩中文字幕一区二区高清99| 日韩免费一级视频| 国产精品亲子乱子伦xxxx裸| www.久久伊人| 欧美中文字幕在线播放| 亚欧美无遮挡hd高清在线视频| 日本精品一二三| 欧美综合色免费| 欧美人与禽性xxxxx杂性| 欧美亚洲爱爱另类综合| 国产精品自拍三区| 800av免费在线观看| 日日狠狠久久偷偷四色综合免费| 超碰一区二区三区| 一区二区在线免费看| 欧美日韩国产精品一区二区不卡中文| 成人在线高清视频| 国产精品久久久久久久免费大片| 日本亚洲视频在线| 国产亚洲欧美久久久久| 丝袜美腿亚洲一区二区| 欧美jizz19性欧美| 五月天六月丁香| 欧洲生活片亚洲生活在线观看| 欧美人与禽性xxxxx杂性|