// 貪吃蛇(指標).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 遊戲...