导读:#include
#include<graphicsh>
#include<stdlibh>
#include<dosh>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int i,key;
int score=0;
int gamespeed=32000;
struct Food /食物的结构体/
{
int x; /食物的横坐标/
int y; /食物的纵坐标/
int yes; /食物是否出现的变量/
}food;
struct Snack /蛇的结构体/
{
int x[N];
int y[N];
int node; /蛇的节数/
int direction; /蛇的方向/
int life; /蛇的生命,0活着,1死亡/
}snake;
void Init(void); /图形驱动/
void Close(void); /关闭游戏函数/
void DrawK(void); /画图函数/
void GameOver(void);/输出失败函数/
void GamePlay(); /游戏控制函数 主要程序/
void PrScore(void); /分数输出函数/
DELAY(char ch)/调节游戏速度/
{
if(ch=='3')
{
delay(gamespeed); /delay是延迟函数/
delay(gamespeed);
}
else if(ch=='2')
{
delay(gamespeed);
}
}
Menu()/游戏开始菜单/
{
char ch;
printf("Please choose the gamespeed:\n");
printf("1-Fast 2-Normal 3-Slow\n");
printf("\nPlease Press The numbers\n");
do
{ch=getch();}
while(ch!='1'&&ch!='2'&&ch!='3');
clrscr();
return(ch);
}
/主函数/
void main(void)
{
int ch;
ch=Menu();
Init();
DrawK();
GamePlay(ch);
Close();
}
void Init(void)
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc");
cleardevice();
}
void DrawK(void)
{
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
for(i=50;i<=600;i+=10)
{
rectangle(i,40,i+10,49); /画出上边框/
rectangle(i,451,i+10,460); /画出下边框/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /画出左边框/
rectangle(601,i,610,i+10); /画出右边框/
}
}
void GamePlay(char ch)
{
randomize(); /随机数发生器/
foodyes=1; /1代表要出现食物,0表示以存在食物/
snakelife=0;
snakedirection=1;
snakex[0]=100;snakey[0]=100;
snakex[1]=110;snakey[1]=100;
snakenode=2;
PrScore();
while(1) /可以重复游戏/
{
while(!kbhit()) /在没有按键的情况下蛇自己移动/
{
if(foodyes==1) /需要食物/
{
foodx=rand()%400+60;
foody=rand()%350+60; /使用rand函数随机产生食物坐标/
while(foodx%10!=0)
foodx++;
while(foody%10!=0)
foody++; /判断食物是否出现在整格里/
foodyes=0; /现在有食物了/
}
if(foodyes==0) /有食物了就要显示出来/
{
setcolor(GREEN);
rectangle(foodx,foody,foodx+10,foody-10);
}
for(i=snakenode-1;i>0;i--) /贪吃蛇的移动算法/
{
snakex[i]=snakex[i-1];
snakey[i]=snakey[i-1]; /贪吃蛇的身体移动算法/
}
switch(snakedirection) /贪吃蛇的头部移动算法,以此来控制移动/
{
case 1:snakex[0]+=10;break;
case 2:snakex[0]-=10;break;
case 3:snakey[0]-=10;break;
case 4:snakey[0]+=10;break;
}
for(i=3;i<snakenode;i++) /判断是否头部与身体相撞/
{
if(snakex[i]==snakex[0]&&snakey[i]==snakey[0])
{
GameOver();
snakelife=1;
break;
}
}
/下面是判断是否撞到墙壁/
if(snakex[0]<55||snakex[0]>595||snakey[0]<55||snakey[0]>455)
{
GameOver();
snakelife=1;
}
if(snakelife==1) /如果死亡就退出循环/
break;
if(snakex[0]==foodx&&snakey[0]==foody) /判断蛇是否吃到食物/
{
setcolor(0);
rectangle(foodx,foody,foodx+10,foody-10); /吃的食物后用黑色将食物擦去/
snakex[snakenode]=-20;snakey[snakenode]=-20; /现把增加的一节放到看不到的地方去/
snakenode++;
foodyes=1;
score+=10;
PrScore();
}
setcolor(4); /每次移动后将后面的身体擦去/
for(i=0;i<snakenode;i++)
rectangle(snakex[i],snakey[i],snakex[i]+10,snakey[i]-10);
delay(gamespeed);
DELAY(ch);
setcolor(0);
rectangle(snakex[snakenode-1],snakey[snakenode-1],snakex[snakenode-1]+10,snakey[snakenode-1]-10);
}
if(snakelife==1)
break;
key=bioskey(0); /接受按键/
if(key==ESC)
break;
else
if(key==UP&&snakedirection!=4)/判断是否改变方向/
snakedirection=3;
else
if(key==RIGHT&&snakedirection!=2)
snakedirection=1;
else
if(key==LEFT&&snakedirection!=1)
snakedirection=2;
else
if(key==DOWN&&snakedirection!=3)
snakedirection=4;
}
}
void GameOver(void)
{
cleardevice();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();
}
void PrScore(void)
{
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"scord:%d",score);
outtextxy(55,20,str);
}
void Close(void)
{
getch();
closegraph();
}
贪吃蛇
CAD三维绘图快捷命令较多,详细命令可参考CAD命令手册。常用的三维绘图快捷命令有以下几种:
1、3DMOVE 三维移动 ROTATE3D 三维旋转。
2、3DARRAY 三维阵列。
3、MIRROR3D 三维镜像。
4、ALIGM 三维对齐。
5、RECTANG:绘制矩形多段线。
6、REDRAW:刷新显示当前视口。
7、REDRAWALL:刷新显示所有视口。
8、REGEN:重生成图形并刷新显示当前视口。
9、REGENALL:重新生成图形并刷新所有视口。
10、REGION:从现有对象的选择集中创建面域对象。
11、RENAME:修改对象名。
12、RENDER:创建三维线框或实体模型的具有真实感的渲染图像。
13、REVOLVE:绕轴旋转二维对象以创建实体。
14、RPREF:设置渲染系统配置。
15、ROTATE:绕基点移动对象。
-CAD命令
类型:
大小:
评分:
平台:
标签:
Lifeline生命线起点该怎么选?你认为是原地复活还是新地点较好,先不用这么纠结,看看小编给你推荐一下,更多信息请看以下内容:
进入游戏后玩家会听到有人在说话,我选择的是谁在说话,然后泰勒会自我介绍,他是一个瓦里亚号星际飞船的宇航员。
第二句小编选择的是:“原本”出什么事了泰勒说他进入了一个逃生舱,不停地在求救。
接着第三句,小编选择的是:你现在在哪泰勒会给你讲述瓦里亚号偏离导致事态的经过,自己被科尔比推进了逃生舱。
第四句,小编选择的是:描述一下你说的“这儿”(了解地点,然后才可以找到逃生线索)
上面泰勒问,坠毁点离自己现在的位置比较近,要怎么做好出来的选择是去坠毁点还是山峰小编的决定是选择去比较近的坠毁点,说不定可以找到同伴或者是一些生存下来的能源呢