C 控制台貪吃蛇

2021-10-03 14:36:17 字數 3382 閱讀 1898

大二下的遊戲程式設計第乙個小作業,以此篇記錄一下,感謝李仕老師的循循善誘和同學們的熱情討論。

#include

#include

#include

using

namespace std;

#define leftborder 3;

#define topborder 3;

bool gameover,died;

//遊戲結束否

bool gamepause,fruitflash;

//遊戲暫停否

const

int width =50;

//遊戲視窗寬度

const

int height =20;

//遊戲視窗高度

int x, y, fruitx, fruity;

//蛇頭座標;果子座標

int score;

//得分

int level;

int tailx[

100]

, taily[

100]

, ntail;

//enum edirection

;//方向列舉

edirection dir;

//方向變數

handle h =

getstdhandle

(std_output_handle)

;//遊戲初始化

void

initial()

void

setpos

(int cursorx,

int cursory)

void

drawmap()

cout << endl;

}setpos(0

, height+1)

;for

(int i =

0; i < width +

2; i++

) cout <<

"#";

setpos

(tailx[0]

, taily[0]

);setconsoletextattribute

(h,0x09);

cout <<

"o";

setpos

(width +10,

0); cout <<

"====歡迎來到我做的辣雞貪吃蛇===="

;setpos

(width +14,

2); cout <<

"■規則: 1、自撞就算死亡"

;setpos

(width +14,

4); cout <<

" 2、可以自由穿牆"

;setpos

(width +14,

6); cout <<

"■控制: 1、wasd控制方向"

;setpos

(width +14,

7); cout <<

" 2、wasd任意鍵開始"

;setpos

(width +14,

8); cout <<

" 3、x鍵退出,p鍵暫停,r鍵重新開始"

;setpos

(width +14,

10); cout <<

;setpos

(width +14,

15); cout <<

"■當前難度: "

<< level;

setpos

(width +14,

17); cout <<

"■當前得分: "

<< score;

}//方向鍵輸入

void

input()

else

case

'd':

//右

if(dir == left)

else

case

'w'://上

if(dir == down)

else

case

's'://下

if(dir == up)

else

case

'x':

//退出

gameover =

true

;setpos

(width /

2, height +3)

; cout <<

"按任意鍵關閉視窗"

;system

("pause");

break

;case

'p':

gamepause =

!gamepause;

break

;case

'r':

system

("cls");

initial()

;drawmap()

;default

:break;}

}}void

logic()

int prex = tailx[0]

;int prey = taily[0]

;int pre2x, pre2y;

tailx[0]

= x;

taily[0]

= y;

for(

int i =

1; i < ntail; i++

)//移動蛇頭位置

switch

(dir)

if(level<10)

level = score /30;

for(

int i =

1; i < ntail; i++)}

}void

erasesnake()

}void

drawlocally()

else

for(

int i =

0; i < ntail; i++

)else

}//穿牆

if(x <1)

x = width;

if(x > width)

x =1;

if(y <1)

y = height;

if(y > height)

y =1;

setpos

(width +28,

15); cout << level;

setpos

(width +28,

17); cout << score;

}//主控程式

intmain()

while

(died)

}return0;

}

C 控制台貪吃蛇

軟體實訓作品,現放出個人源 供需要的同學參考 int startx 8 x起點 const int starty 4 y起點 const int rangex 60 x範圍 const int rangey 20 y範圍 const int endx startx rangex x終點 const ...

貪吃蛇 控制台

本文把遊戲區域就行編號,第一行從0到width 1,到height 1 到 width height 1 二維陣列 並用trace len 陣列儲存snake移動的軌跡 儲存的是數值,數值就能表現出所在的行和列 trace 0 始終為snake的頭部 根據display 函式繪圖,延時,在繪圖,達到...

C語言控制台貪吃蛇

貪吃蛇 這個蛇是怎麼變長的.遊戲就是方塊和空格的更新 沒有牆的地方初始化為0,有牆的地方初始化為1,有蛇的地方初始化為2,食物初始化為3 所有的操作都在snakegroup裡面進行 include include include include include include include con...