C語言 俄羅斯方塊demo

2022-06-25 18:36:11 字數 4350 閱讀 3320

這是我的第一篇隨筆,當然是發我寫的第乙個遊戲啦!

大一(本人現在大二)寒假過完年,在家待著想起放假前計畫寫乙個遊戲的,因為本人立志走遊戲開發這條路,加上大一上冊學了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遊戲。另外提醒,我的所有作品都是自己開發的,絕無抄襲 程式 和程式設計思想絕沒超抄過別人的 最多也就是高仿別人的遊戲 貪吃蛇算嗎?俄...