工具: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...