#include
#include
#include
//sleep()函式的標頭檔案
#include
#include
#define mod 28
#define size_n 19
//控制邊框的高度
#define size_m 12
//控制邊框的寬度
int a[
100]=;
//定義排行榜
int cur_x,cur_y,score,mark,next,map[size_n]
[size_m]
,gamespeed=
300;
char key1,key;
int shape[28]
[6]=
,,,,
,,,,
,,,,
,,,,
,,,,
,,,,
,,,}
;void
gotoxy
(int x,
int y)
//遊戲結束的判斷函式
void
gameover()
}if(flag==1)
puts(""
);}gotoxy(7
,3);
int t;
for(j=
0;j<
3;j++
)for
(i=0
;i<
3-j;i++)if
(a[i]
)printf
("game over!");
gotoxy(8
,9);
//輸出下面一行內容的位置是9行7列
printf
(" 排行榜 \n");
for(i=
0,j=
6;i<
3;i++
,j++
)gotoxy(1
,size_n+1)
;exit(0
);//遊戲結束}}
//顯示遊戲底板的函式
void
showmap
(int id)
if(i==1)
printf
(" next:");
//表示提示下一次出現的圖形的條件
if(i==11)
printf
(" score : %d"
,score)
;//計算所得的分數
if(i==13)
printf
(" speed : %d"
,score/
100+1)
;//控制圖形下落的速度
if(i==15)
printf
(" 空格鍵: 暫停");
if(i==16)
printf
(" 左方向鍵左移-右方向鍵右移");
if(i==17)
printf
(" 上方向鍵變形-下方向鍵下降");
puts(""
);}}
else
if(i==1)
printf
(" next:");
//表示提示下一次出現的圖形的條件
if(i==11)
printf
(" score : %d"
,score)
;//計算所得的分數
if(i==13)
printf
(" speed : %d"
,score/
100+1)
;//控制圖形下落的速度
if(i==15)
printf
(" 空格鍵: 暫停");
if(i==16)
printf
(" 左方向鍵左移-右方向鍵右移");
if(i==17)
printf
(" 上方向鍵變形-下方向鍵下降");
puts(""
);}}
/*對於next 方塊的處理,先擦除再畫圖*/
for(i=
2;i<=
10;i++)}
gotoxy(29
,6);
printf
("■");
//控制下乙個圖形出現提示圖形的位置,29是列,6是行
for(i=
0;i<
6;i=i+2)
sleep
(gamespeed)
;//sleep是乙個庫函式,是表示時間的函式,這裡用來控制圖形下落的速度
}//初始化函式,cur_x,cur_y是全域性變數,標記了移動方塊的位置
void
init
(int id)
cur_x=
0; cur_y=6;
showmap
(id);}
//顏色函式
void
color
(int n_color)
//判斷是否出界,或者說是否合法的函式
intjudge_in
(int x,
int y,
int id)
return1;
}//得分,擦除行的閃爍,還有圖形的向下平移
void
fun_score()
}if(flag==0)
}//控制消除的行數
else
printf
("■");
}}sleep
(100);
//執行到sleep()函式時,程式在那裡等100毫秒
}for
(int ii=i;ii>
1;ii--
)showmap(-
1); score+=10
;//控制每次得分時所加的分數
if(score%
100==
0&& score!=
0)gamespeed-=50
;// 控制形狀下落的速度}}
}//主函式
intmain()
while(!
kbhit()
)//kbhit()在執行時,檢測是否有按鍵按下,有按下返回鍵值,
//沒有按下返回0;是非阻塞函式getch() 在執行時,檢測按下什麼鍵,如果不按鍵該函式不返回;是阻塞函式.
fun_score()
;if(mark!=1)
showmap
(id)
;//當標誌的那一行為1時,就把那一行消掉
goto here;
}//end of while(!kbhit())
key=
getch()
;if(key1==-32
&& key==72)
//控制轉換圖形變形的操作
else
if(key1==-32
&& key==
80&&
judge_in
(cur_x+
1,cur_y,id)==1
)cur_x++
;//使圖形向下移動的操作
else
if(key1==-32
&& key==
75&&
judge_in
(cur_x,cur_y-
1,id)==1
)cur_y--
;//使圖形向左移動的操作
else
if(key1==-32
&& key==
77&&
judge_in
(cur_x,cur_y+
1,id)==1
)cur_y++
;//使圖形向右移動的操作
//****************************
else
if(key==32)
//按空格鍵,暫停}}
}//*****************************
else
if(key==27)
return0;
label:
key1=key;
}return0;
}
小遊戲 俄羅斯方塊(C 版)
大一作品,留念 include include include kbhit include rand,srand include define wide 15 define hight 18 define period 500 typedef struct point point 1 1 4 4 1...
C 俄羅斯方塊遊戲
俄羅斯方塊是一款非常經典的老遊戲,相比現在的網路遊戲和大型遊戲而言,俄羅斯方塊非常小。不要看似小,要實現俄羅斯方塊的全部功能也不容易。先說說涉及的知識點 繼承 不同的方塊繼承於方塊類 多型 每種方塊都可以旋轉 初始化,但是每種方塊的旋轉都不一樣,採用抽象方法定義 簡單工廠設計模式 由工廠隨機建立方塊...
俄羅斯方塊遊戲
大二上學期前兩周的課程設計寫 更多的是借鑑 了乙個500多行的俄羅斯方塊遊戲,畢竟也是花了兩天時間把被人的看懂,然後花了兩天多的時間敲出來,又花了兩天時間寫了4000多字的專案報告,所有有必要在部落格中寫下來以留作紀念。struct block blocks 7 i 口 l 反l z 反z t 用十...