這是我的第一篇隨筆,當然是發我寫的第乙個遊戲啦!
大一(本人現在大二)寒假過完年,在家待著想起放假前計畫寫乙個遊戲的,因為本人立志走遊戲開發這條路,加上大一上冊學了c語言,就想寫個遊戲練練手。
想了很久,最後決定寫乙個俄羅斯方塊。
直接上**!
#include#include效果圖:#include
#include
#include
#define space 32 //
空格鍵 旋轉
#define left 75 //
左方向鍵 向左移動
#define right 77 //
右方向鍵 向右移動
#define down 80 //
下方向鍵 加速向下移動
#define esc 27 //
esc鍵 退出
#define wall 2 //
圍牆 #define box 1 //
方塊 #define kong 0
#define face_x 30 //
方塊長度
#define face_y 20 //
方塊高度
void start_game(); //
遊戲迴圈
void gotoxy(int x, int y); //
設定游標位置
void hidden_cursor(); //
隱藏游標
int color(int c); //
設定顏色
void init_face(); //
初始化介面
void init_dia(); //
初始化方塊形狀
void draw_dia(int
base, int space_t, int x, int y); //
畫方塊
void draw_space(int
base, int space_t, int x, int y); //
畫空格
int border(int n, int space_t, int x, int y); //
邊界檢測
int del(); //
刪除增加分數
void read_file(); //
讀入最高紀錄
void write_file(); //
寫入最高紀錄
struct
face
face;
typedef
struct
diamonds
dia;
dia dia[
7][4]; //
一維表示7種形狀,二維表示旋轉次數
int grade = 0
;int max = 0
;int b = 0
;int
main()
void
start_game()
else}}
return
; }
}else
break
; }
case
right:
break
; }
case
down:
break
; }
case
space:
break
; }
case
esc:
case'r
':case'r
': case's
':case's
': }}}
}int border(int n, int space_t, int x, int
y) }
return1;
}int
del()
for (j = i; j > 1; j--)
else
}if (sum == 0
)
return1;}}
}for (i = 1; i < face_y - 1; i++)
else
if (grade ==max)
printf(
"與紀錄持平,請突破你的極限!");
else
printf(
"請繼續努力,你與最高記錄只差:%d
", max -grade);
gotoxy(face_x / 2, 2 * (face_y / 3
)); printf(
"game over!\n");
do while (1
);
if (n == '
n' || n == 'n'
)
else
if (n == '
y' || n == 'y'
) main();}}
return0;
}void
read_file()
fseek(fp,
0, 0
); fread(&max, sizeof(int), 1
, fp);
fclose(fp);
}void
write_file()
void draw_space(int
base, int space_t, int x, int
y) }
}void draw_dia(int
base, int space_t, int x, int
y) }
}void
init_face()
else
if (i == face_x - 1
)
else
face.data[i][j] =kong;}}
gotoxy(face_x - 20, 2 * face_y + 2
); printf(
"左移:←");
gotoxy(face_x - 18, 2 * face_y + 2
); printf(
"右移:→");
gotoxy(face_x - 16, 2 * face_y + 2
); printf(
"下移:↓");
gotoxy(face_x - 14, 2 * face_y + 2
); printf(
"旋**space");
gotoxy(face_x - 12, 2 * face_y + 2
); printf(
"暫停: s");
gotoxy(face_x - 10, 2 * face_y + 2
); printf(
"退出: esc");
gotoxy(face_x - 8, 2 * face_y + 2
); printf(
"重新開始:r");
gotoxy(face_x - 6, 2 * face_y + 2
); printf(
"最高紀錄:%d
", max);
gotoxy(face_x - 4, 2 * face_y + 2
); printf(
"當前分數:%d
", grade);
}void
init_dia()
for (i = 0; i < 4; i++)
dia[
6][0].space[i][2] = 1; //
直形 for (i = 0; i < 7; i++)
}for (j = 0; j < 4; j++)}}
}}void gotoxy(int x, int
y)void
hidden_cursor()
int color(int
c) setconsoletextattribute(getstdhandle(std_output_handle), c);
return0;
}
由於是大一寫的,所以沒有什麼注釋,我補了一些,如果有感興趣的朋友直接私聊我([email protected]),我們可以一起討論,一起進步!!!
c語言俄羅斯方塊
一直以來都想做的東西。參考了 這些符號 用了搜狗輸入法中的特殊符號,水平2個字元,垂直1個字元。int frame height width 遊戲框,10 x 17 遊戲區 1,1 17,10 int score,grade 1,gamespeed 300 int id,next int cur x...
俄羅斯方塊高階 AI俄羅斯方塊
前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...
C 俄羅斯方塊
因為要得找工作了,不得不寫些文章讓hr更多的了解到我,同時能幫到別的同學也是好的。因為接觸unity時間不是特別久,所以這裡先帖出早期開發的c 遊戲,然後再帖unity遊戲。另外提醒,我的所有作品都是自己開發的,絕無抄襲 程式 和程式設計思想絕沒超抄過別人的 最多也就是高仿別人的遊戲 貪吃蛇算嗎?俄...