這是很早以前寫的.好像還是有問題,"食物"的出現有可能跟牆壁重疊,懶得改啦
#include
#include
#include
#include
#include
using namespace std;
const int hall=20;
const int level=300;
const char t='#';
char hall[hall][hall]=;//牆壁
bool ifgameover(int,int);
void gameover();
class snake//蛇結構
*phead,*ptail; //蛇頭蛇尾
int snake::get_x()
int snake::get_y()
void snake::change(int a,int b)
int snake::add_head(int a,int b)
}void snake::delete_tail()
void snake::draw(int a)
class food//食物
;void food::getfood()
hall[x][y]='$';
}int food::getfood_x()
int food::getfood_y()
food::food()
class start//初始化
;void start::draw()
cout
}void start::draw1()
class moving
;void moving::change_point(int n,char a) //n==0沒有按鍵 n==1有按鍵輸入
else gameover();
break;
case 's':
if(phead->add_head(phead->get_x()+1,phead->get_y())==1){}
else gameover();
break;
case 'a':
if(phead->add_head(phead->get_x(),phead->get_y()-1)==1){}
else gameover();
break;
case 'd':
if(phead->add_head(phead->get_x(),phead->get_y()+1)==1){}
else gameover();
break;
}ptail->delete_tail();
}if(n==1)
else
gameover();
}else if(a=='s' && point!='w')
else
gameover();
}else if(a=='a' && point!='d')
else
gameover();
}else if(a=='d' && point!='a')
else
gameover();
}else
change_point(0,1);
}if(n==2)
else if(a=='s' && point!='w')
else if(a=='a' && point!='d')
else if(a=='d' && point!='a')
else}}
}bool moving::over()
void gameover()
bool ifgameover(int a,int b)
int main()
if(kbhit()==0)
else
t.draw();
if(r.over()==0)
sleep(level);}}
c語言寫了乙個貪吃蛇
很簡單的 可能存在一些bug 大牛不要嘲笑 include stdafx.h include include head.h include include int x 1,y 1,m 0 m為蛇的長度 n為食物個數 int nx 1,ny 1,n 0 int chengji 0 void 遊戲開始 ...
C 簡單貪吃蛇
一定要自己定義set level view score 等函式,main 函式中主要運用了函式指標來縮短 其中忽略了必要的 include標頭檔案和using指示 如 using namespace std 請自行補充。我的想法是有 兩個線性表 和乙個字串 一 定義第乙個線性表的 片段如下 int ...
C 貪吃蛇程式
方向控制表 dirdirect dir 行進方向 可轉的方向0上 左右1下左右 2左上下3 右上下 include include include include include include include using namespace std int s 12,d 12,hard 3 dir...