c 手寫俄羅斯方塊

2021-10-02 03:29:42 字數 2792 閱讀 7725

工具:vc++2010,相簿:easyx

先看效果

純手寫,沒有物件導向思想,看全部原始碼

#include #include #include #include #define block_count  5

#define block_width 5

#define block_height 5

#define unit_size 20

#define start_x 130

#define start_y 30

#define key_up 72

#define key_right 77

#define key_left 75

#define key_space 32

#define key_down 76

typedef enumblock_dir_t;

typedef enummove_dir_t;

int speed = 500;

int nextindex = -1;//下乙個方塊種類

int blockindex = -1;//當前方塊種類

int score = 0;//分數

int rank = 0;//等級

int visit[30][15];//訪問陣列

int markcolor[30][15];//表示顏色

int minx = 30;

int miny = 30;

int color[block_count]=;

int block[block_count*4][block_height][block_width] = ,

, ,, //l形方塊

, ,, ,

//田字型

, ,

, ,//t字形方塊

, ,, ,

//z字形方塊

, , ,

};//歡迎介面

void welcome()

//初始化遊戲螢幕

void initgamescene()

void drawblock(int x,int y)

}} }else if(movedir == move_left)

}} }else if(movedir == move_right)

}} }

return ret;

}void failcheck()

}int wait(int interval)

} }return 1;

}void mark(int x,int y,int blockindex,block_dir_t dir)

} }}void clear_down(int x)else

} }//清除最頂層那一行,就是行標位0的哪一行

setcolor(black);

for(int j = 0;j<15;j++)

}void updatagrade()

}void addscore(int lines)

void check()

} //更新分數

addscore(clearlines);

//更新等級

updatagrade();

}void move()

} //清除當前方塊

clearblock(x,k,blockdir);

if(kbhit())

}else if(key_down == key)else if(key_right == key)

}else if(key_left == key)

}} k+=20;

//繪製當前方塊

drawblock(x,y+k,blockindex,blockdir);

wait(curspeed);

//方塊降落到底層的固化處理

if(!moveable(x,y+k,move_down,blockdir)) }}

void newblock()

int main (void)

system("pause");

closegraph();

return 0;

}

分析專案:

1,必須要有歡迎介面

2,搭建合理的邊界,就是遊戲範圍

3,邏輯1:先出現右上方的方塊樣式,等待一段時間,將右上方的樣式在遊戲區列印出

4,邏輯2,方塊降落,要擦除原先印記,將1改為0

5,邏輯3,熱鍵控制移動方向,暫停及變形,且不能移動出界,判斷方塊是否還能移動

6,邏輯4,方塊凝固在下方不出界

7,邏輯5,最下面一行方塊疊滿了,消去它並把上面的行都下移(分兩種情況),並且再次檢查這一行

8,邏輯6,計算消除行數次數,統計分數,控制休眠時間長度

9,邏輯7,每次移動先判斷是否能移動,預設結束程式,在合理遊戲區返回false,結束介面

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...

C 俄羅斯方塊

因為要得找工作了,不得不寫些文章讓hr更多的了解到我,同時能幫到別的同學也是好的。因為接觸unity時間不是特別久,所以這裡先帖出早期開發的c 遊戲,然後再帖unity遊戲。另外提醒,我的所有作品都是自己開發的,絕無抄襲 程式 和程式設計思想絕沒超抄過別人的 最多也就是高仿別人的遊戲 貪吃蛇算嗎?俄...

俄羅斯方塊 C

include include include include includeusing namespace std define a1 0 a代表長條型,b為方塊,c為l型,d為閃電型 實在無法描述那個形狀 define a2 1 define b 2 define c11 3 define c1...