這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)俄羅斯方塊小游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.要先下載一個(gè) graphics.h 的頭文件來(lái)繪圖 。
2.初始化窗口:initgraph(x, y);這是先創(chuàng)建一個(gè)窗口的函數(shù),以左上角為(0,0),向右為x軸,向下為y軸,其中x表示長(zhǎng)x個(gè)單位,y表示寬y個(gè)單位 。
3.關(guān)閉圖像窗口:closegraph();結(jié)束時(shí)用來(lái)關(guān)閉用的 。
4.按任意鍵繼續(xù):getch();這個(gè)就和getchar();差不多,為了防止以運(yùn)行完就關(guān)了,這樣能停頓一下,他的頭文件是:conio.h。
5.畫線:line(x1, y1, x2, y2);在你創(chuàng)建的那么窗口里以(x1,y1)和(x2,y2)為兩個(gè)端點(diǎn)畫線 。
6.畫矩形:rectangle(x1,y1,x2,y2);以(x1,y1)和(x2,y2)為對(duì)角畫一個(gè)矩形 。
7.畫圓:circle(x,y,r);以(x,y)為圓點(diǎn),r為半徑畫圓 。
8.顏色:setcolor(x);用來(lái)設(shè)置顏色的,其中x是你要設(shè)置的顏色,可以填這16種:黑 BLACK、藍(lán) BLUE、綠 GREEN、青 CYAN、紅 RED、紫 MAGENTA、棕 BROWN、淺灰 LIGHTGRAY、深灰 DARKGRAY、亮藍(lán) LIGHTBLUE、亮綠 LIGHTGREEN、亮青 LIGHTCYAN、亮紅 LIGHTRED、亮紫 LIGHTMAGENTA、黃 YELLOW、白 WHITE;當(dāng)然,你也可以根據(jù)光的三原色來(lái)調(diào)自己喜歡的顏色,方法是:setcolor(RGB(x,y,z));其中RGB分別代表紅綠藍(lán),對(duì)應(yīng)的x,y,z是你選的該顏色的多少,范圍是[0,255] 。

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//游戲窗口
#define FrameX 4 //游戲窗口左上角的X軸坐標(biāo)
#define FrameY 4 //游戲窗口左上角的Y軸坐標(biāo)
#define Frame_height 20 //游戲窗口的高度
#define Frame_width 18 //游戲窗口的寬度
//定義全局變量
int i,j,temp,temp1,temp2; //temp,temp1,temp2用于記住和轉(zhuǎn)換方塊變量的值
int a[80][80]={0}; //標(biāo)記游戲屏幕的圖案:2,1,0分別表示該位置為游戲邊框、方塊、無(wú)圖案;初始化為無(wú)圖案
int b[4]; //標(biāo)記4個(gè)”口”方塊:1表示有方塊,0表示無(wú)方塊
//聲明俄羅斯方塊的結(jié)構(gòu)體
struct Tetris
{
int x; //中心方塊的x軸坐標(biāo)
int y; //中心方塊的y軸坐標(biāo)
int flag; //標(biāo)記方塊類型的序號(hào)
int next; //下一個(gè)俄羅斯方塊類型的序號(hào)
int speed; //俄羅斯方塊移動(dòng)的速度
int count; //產(chǎn)生俄羅斯方塊的個(gè)數(shù)
int score; //游戲的分?jǐn)?shù)
int level; //游戲的等級(jí)
};
//函數(shù)原型聲明
//光標(biāo)移到指定位置
void gotoxy(HANDLE hOut, int x, int y);
//制作游戲窗口
void make_frame();
//隨機(jī)產(chǎn)生方塊類型的序號(hào)
void get_flag(struct Tetris *);
//制作俄羅斯方塊
void make_tetris(struct Tetris *);
//打印俄羅斯方塊
void print_tetris(HANDLE hOut,struct Tetris *);
//清除俄羅斯方塊的痕跡
void clear_tetris(HANDLE hOut,struct Tetris *);
//判斷是否能移動(dòng),返回值為1,能移動(dòng),否則,不動(dòng)
int if_moveable(struct Tetris *);
//判斷是否滿行,并刪除滿行的俄羅斯方塊
void del_full(HANDLE hOut,struct Tetris *);
//開始游戲
void start_game();
void main()
{
//制作游戲窗口
make_frame();
//開始游戲
start_game();
}
/******光標(biāo)移到指定位置**************************************************************/
void gotoxy(HANDLE hOut, int x, int y)
{
COORD pos;
pos.X = x; //橫坐標(biāo)
pos.Y = y; //縱坐標(biāo)
SetConsoleCursorPosition(hOut, pos);
}
/******制作游戲窗口******************************************************************/
推薦閱讀
- 網(wǎng)上游戲加盟 網(wǎng)頁(yè)游戲平臺(tái)加盟
- 代號(hào)降臨游戲在哪下載 代號(hào)降臨游戲下載地址分享
- 代號(hào)降臨游戲在哪預(yù)約 代號(hào)降臨游戲預(yù)約地址分享
- 代號(hào)降臨游戲測(cè)試資格怎么獲取 代號(hào)降臨游戲測(cè)試資格獲取
- 代號(hào)降臨游戲?qū)崣C(jī)畫面怎么樣 代號(hào)降臨游戲?qū)崣C(jī)畫面前瞻
- 代號(hào)降臨游戲重啟日記003說(shuō)了什么 代號(hào)降臨游戲重啟日記003預(yù)覽
- 代號(hào)降臨游戲重啟日記004說(shuō)了什么 代號(hào)降臨游戲重啟日記004預(yù)覽
- 好玩的免費(fèi)回合制游戲 經(jīng)典單機(jī)回合制游戲
- 安卓pc模擬器哪個(gè)好用 安卓pc端游戲模擬器
- 制作游戲的軟件有哪些 制作游戲的軟件排名
