C 控制台遊戲 貪吃蛇 指標版

2021-10-25 20:52:51 字數 2234 閱讀 8126

// 貪吃蛇(指標).cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

#include

#include

#include

using namespace std;

#define key_down(vk_code) getasynckeystate(vk_code)&0x8000?1:0

int arrmap[15]

[15]=

, ,, ,

, ,, ,

, ,, ,

, , }

;//控制方向的列舉值

enum

;int ndir = e_dir_none;

//節點的結構體

struct snode

snode(int ninrow, int nincol)

//節點的備份

void backup()

};//蛇的結構體

struct ssnake

//節點的容器

//vector vecsnake;

vector vecsnake;

snode* head

= new snode(

5,5)

; //速度的建構函式

ssnake(int ninspeed)

//蛇頭的備份

void backuphead()

//移動

void move()

elseif(

1== ndir)

elseif(

2== ndir)

elseif(

3== ndir)}}

//是否碰到蛇頭,蛇吃食物

bool i***isthead(int ninrow, int nincol)

return

false;}

//長身體

void addbody()

//跟隨

void follow()

for(int i =

0; i < vecsnake.size(

) - 1

; i++)

} //渲染蛇

bool i***ist(int nrow, int ncol)

}return

false;}

//蛇頭撞牆

void iscrashwall()

} //蛇頭撞身體

void iscrashself()

}}};

//食物的結構體

struct sfood

//食物隨機生成

void randpos()

};//建立乙個snake物件,給兩次迴圈的速度

//ssnake snake(2)

;ssnake* snake = new ssnake(2)

;sfood* sfood = new sfood(

5, 6);

int _tmain(int argc, _tchar* ar**)

else

if(key_down(vk_down))

else

if(key_down(vk_left))

else

if(key_down(vk_right))

//蛇吃食物

if(snake->i***isthead(sfood->nfoodrow, sfood->nfoodcol))

//身體跟隨蛇頭

snake->follow();

//檢測蛇頭是否幢牆

snake->iscrashwall();

//蛇頭與蛇身的碰撞

snake->iscrashself();

//渲染

for(int i =

0; i <

15; i++)

else

if(snake->i***ist(i, j))

else

if(i == sfood->nfoodrow && j == sfood->nfoodcol)

else

} cout << endl;//陣列換行輸出

} sleep(60)

; system(

"cls");

} system(

"pause");

return0;

}

控制台版貪吃蛇

include include include include include 地圖大小 define map size 20 全域性螢幕輸出快取區控制代碼 handle g houtput 地圖屬性 struct mapnode s nodetype e type 全域性地圖資料 mapnode ...

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 ...

C 控制台貪吃蛇

大二下的遊戲程式設計第乙個小作業,以此篇記錄一下,感謝李仕老師的循循善誘和同學們的熱情討論。include include include using namespace std define leftborder 3 define topborder 3 bool gameover,died 遊戲...