亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

使用C++一步步實現俄羅斯方塊

2020-05-23 13:31:46
字體:
來源:轉載
供稿:網友

一、實驗介紹

1.1 實驗內容

本節實驗我們進行設計俄羅斯方塊前的思路分析,以及介紹ncurses 庫的使用方法。

1.2 實驗知識點

C++ 編程基礎
ncurses 庫的使用
俄羅斯方塊邏輯設計

1.3 實驗環境

xface 終端
g++ 編譯器
ncurses 庫

1.4 適合人群

本課程難度一般,適合有 C++ 編程基礎,對游戲設計、邏輯分析感興趣的同學。

1.5 代碼獲取

git clone https://github.com/Gamerchen/game_zero.git

二、開發準備

2.1 安裝 ncurses 庫

sudo apt-get updatesudo apt-get install libncurses5-dev

2.2 編譯程序

編譯命令要加上 -l 選項引入 ncurses 庫:

g++ main.c -l ncurses

三、實驗原理

3.1 設計前的分析

在開始程序編寫之前,我們要先分析程序設計需要實現哪些功能,劃分為哪些模塊,在俄羅斯方塊中我們首先想到的應該是顯示方塊,其次是方塊的下落,左右移動,旋轉,最后的層滿消行,另外一個基本的俄羅斯方塊游戲還應該有下一個方塊形狀的提示功能。

所以我們編程中需要解決的問題有:

顯示方塊
實現方塊的移動
方塊旋轉
對層滿的方塊消行
提示下一個方塊形狀

3.2 基本圖形

每個方塊由四個 box 組成,從游戲框的中心位置掉落,在框內不碰撞邊界和其他方塊的情況下可以進行旋轉。

c++,俄羅斯方塊

3.3 NCURSES庫的使用

簡單地說, NCURSES 是一個從 System V Release 4.0 (SVr4) 中 CURSES 的克隆,這是一個可自由配置的庫,完全兼容舊版本的 CURSES,是一個可以使應用程序直接控制終端屏幕顯示的庫。NCURSES封裝了底層的終端功能,包含了一些創建窗口的函數,并且有 Menu 、 Panel 和 Form 對CURSES基礎庫的擴展,我們可以建立一個同時包含多窗口(multiple windows)、菜單(menus)、面板(panels)和表單(forms)的應用程序。窗口可以被獨立管理,例如讓它卷動(scrollability)或者隱藏。 菜單(Menus)可以讓用戶建立命令選項,從而方便執行命令。而窗體(Forms)允許用戶建立一些簡單的數據輸入和顯示的窗口。面板(Panels)是 NCURSES 窗口管理功能的擴展,可以用它覆蓋或堆積窗口。

3.3.1 NCURSES--從Hello World程序開始

如果調用 NCURSES 庫中的函數,必須在代碼中加載 ncurses.h 文件( ncurses.h中已經包含stdio.h )

例:

#include <ncurses.h>int main(){ initscr(); //初始化,進入NCURSES模式 printw("Hello World!"); //在虛擬屏幕上打印 Hello Wowrld! refresh(); //將虛擬屏幕上的內容寫到顯示器上,并刷新 getch(); //等待用戶輸入 endwin(); //退出NCURSES模式 return 0;}

在以上實例中我們介紹了 NCURSES 庫中最基本函數的使用方法,函數的功能已在注釋中說明,這里不再贅述。

3.3.2 窗口機制

當 NCURSES 初始化的時候,它會默認創建一個叫做 stdscr 的窗口,大小一般是 80 列,25 行(根據顯示器或者顯卡的不同,可能會出現不同的大?。?,除此之外,你還可以通過窗口系統的函數創建你自己的窗口。

舉例說明,如果調用以下函數:

printw("Hi!");refresh();

它會在stdscr上當前光標位置輸出 "Hi!",調用 refresh() 函數,只更新 stdscr 上的緩沖區。

如果你已經建立了一個叫做win的窗口,想要在win窗口上輸出內容,可以再普通函數前添加w,同時參數也要發生變化。

printw(string) //在stdscr的當前光標位置打印字符串string
mvprintw(y,x,string)  //將字符串string打印在坐標(y,x)處
wprintw(win,string)  //在窗口win的當前光標位置打印字符串string
mvwprintw(win,y,x,string)  //將光標移動到窗口win的(y,x)處然后打印字符串string
相信看完上面的例子,你已經能夠通過函數的命名規則看出各個函數的功能區別

3.3.3 newwin和box函數

一個窗口的建立是通過 newwin() 函數開始的,函數返回一個指向窗口的結構指針,這個指針可以被傳送至一些類似于 wprintw() 這樣需要窗口參數的函數中。

然而,我們創建了一個窗口卻無法看見它,需要用 box() 函數在已經定義的窗口外圍畫上邊框。

例:

WINDOW *create_newin(int height, int width, int starty, int startx){ WINDOW *local_win; local_win = newin(height, width, starty, startx); box(local_win, 0, 0); wrefresh(local_win); return local_win;}

關于 NUCRSES 庫的基本使用方法就介紹到這里了,在具體使用中遇到問題仍需要查閱相關資料。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av免费在线看| 欧美另类交人妖| 成人性生交大片免费看小说| 国产一区二区三区四区福利| 色av吧综合网| 国产精品私拍pans大尺度在线| 精品中文字幕视频| 欧美一级高清免费| 亚洲精品成a人在线观看| 日韩精品极品视频| 亚洲女人被黑人巨大进入al| 国产亚洲精品激情久久| 欧美激情精品久久久久久大尺度| 日韩中文在线中文网三级| 亚洲精品v欧美精品v日韩精品| 色青青草原桃花久久综合| 91av在线免费观看视频| 黄色成人在线播放| 久久97精品久久久久久久不卡| 日日骚av一区| 亚洲福利在线视频| 国产成人欧美在线观看| 国产不卡视频在线| 欧美精品免费看| 亚洲无av在线中文字幕| 国产xxx69麻豆国语对白| 国产欧美日韩免费看aⅴ视频| 欧美麻豆久久久久久中文| 亚洲娇小xxxx欧美娇小| 国产成人综合久久| 成人免费自拍视频| 92看片淫黄大片看国产片| 国产一区二区三区日韩欧美| 久久影院模特热| 91国内免费在线视频| 俺去了亚洲欧美日韩| 精品福利在线观看| 日本国产欧美一区二区三区| 91香蕉亚洲精品| 国模私拍视频一区| 久久久电影免费观看完整版| 欧美日韩在线视频观看| 国产亚洲精品激情久久| 性欧美在线看片a免费观看| 国产91色在线|| 一区二区成人av| 亚洲精品成人网| 欧美视频中文在线看| 亚洲自拍偷拍色片视频| 日韩av免费在线| 国产精品国产亚洲伊人久久| 欧美大片网站在线观看| 欧美一区亚洲一区| 欧美性猛交xxxx免费看| 日韩成人av在线播放| 欧美华人在线视频| 超碰精品一区二区三区乱码| 国产日韩在线观看av| 日本国产精品视频| 在线播放亚洲激情| 久久久久久av| 亚洲的天堂在线中文字幕| 最近日韩中文字幕中文| 欧美成人精品在线| 亚洲图片在线综合| 久久精品中文字幕电影| 国产精品丝袜久久久久久不卡| 亚洲女人天堂色在线7777| 亚洲精品美女在线| 国产精品免费久久久| 性视频1819p久久| 97超碰蝌蚪网人人做人人爽| 国产精品入口免费视| 欧美中在线观看| 亚洲日本欧美日韩高观看| 亚洲精品免费在线视频| 国产97在线观看| 日本不卡免费高清视频| 亚洲精品国产精品国自产在线| 久久久久久久久久久人体| 亚州国产精品久久久| 国产成人激情视频| 国产精品久久久久久久一区探花| 欧美激情网友自拍| 国内精品久久久久久中文字幕| 亚洲美女av网站| 国产亚洲精品激情久久| 两个人的视频www国产精品| 亚洲国产精品视频在线观看| 亚洲风情亚aⅴ在线发布| 亚洲精品v天堂中文字幕| 欧美午夜精品在线| 久久夜色精品亚洲噜噜国产mv| 亚洲日韩中文字幕在线播放| 美女啪啪无遮挡免费久久网站| 免费91在线视频| 国产精品久久网| 亚洲xxx视频| 亚洲成人精品在线| 精品久久久av| 伊人伊成久久人综合网站| 日韩在线资源网| 国产亚洲人成网站在线观看| 欧美极品在线视频| 97精品在线视频| 91精品久久久久久久| 国产成人精品国内自产拍免费看| 欧美成人午夜剧场免费观看| 最新91在线视频| 亚洲性视频网站| 亚洲最大的网站| 91久久精品美女| 国产日韩欧美夫妻视频在线观看| 亚洲人成在线电影| 亚洲高清在线观看| 中文字幕国产精品久久| 国产女人18毛片水18精品| 日韩精品免费电影| 日韩在线观看免费全集电视剧网站| 久久久久久久999| 精品自在线视频| 91美女高潮出水| 久久久国产视频| 久99久在线视频| 午夜精品久久久99热福利| 日韩精品在线免费观看| 一区二区亚洲欧洲国产日韩| 成人精品福利视频| 亚洲第一精品夜夜躁人人爽| 中国china体内裑精亚洲片| 欧美精品www在线观看| 欧美福利视频网站| 精品视频偷偷看在线观看| 久久综合久中文字幕青草| 欧日韩在线观看| 亚洲xxxx视频| 久久久久久久爱| 国产在线观看91精品一区| 成人久久18免费网站图片| 亚州国产精品久久久| 亚洲aⅴ日韩av电影在线观看| 亚洲美女在线观看| 97超碰国产精品女人人人爽| 欧美国产视频一区二区| 欧美日韩国产综合新一区| 亚洲女同性videos| 欧美另类极品videosbestfree| 亚洲欧美一区二区三区在线| 国产精品日日摸夜夜添夜夜av| 日韩免费电影在线观看| 日韩高清中文字幕| 亚洲欧美中文字幕在线一区| 国模视频一区二区| 视频在线观看一区二区| 亚洲男人天堂古典| 国产有码在线一区二区视频| 日韩在线视频免费观看高清中文| 国a精品视频大全| 亚洲欧美国产一区二区三区| 永久免费毛片在线播放不卡| 亚洲人成电影网站| 成人黄色大片在线免费观看| 国产999在线| 欧美成aaa人片在线观看蜜臀|