|
1楼 #include <graphics.h> #include <bios.h> #include <dos.h> #include <conio.h> #define Enter 7181 #define ESC 283 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 void Initgra(void); void Initsnake(void); void Initfood(void); void Snake_Headmv(void); void Flag(int,int,int,int); void GameOver(void); void Snake_Bodymv(void); void Snake_Bodyadd(void); void Food(void); void Dsnkorfd(int,int,int); void Delay(int); struct Snake {int x;int y;int color;}Snk[200]; struct Food {int x;int y;int color;}Fd; int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0, checkx,checky,num=2,key=0; void main() { Initgra(); Initsnake(); Initfood(); while(1) {Snake_Headmv(); GameOver(); if(key==ESC) break; if(key==Enter) {cleardevice(); Initsnake(); Initfood(); key=0; } Snake_Bodymv(); Snake_Bodyadd(); Food(); Delay(10); } closegraph(); } void Initgra() {int gd=DETECT,gm; initgraph(&gd,&gm,"d:\\tc"); } void Initsnake() {randomize(); num=2; Snk[0].x=random(540); Snk[0].x=Snk[0].x-Snk[0].x%20+50; Snk[0].y=random(380); Snk[0].y=Snk[0].y-Snk[0].y%20+50; Snk[0].color=4; Snk[1].x=Snk[0].x; Snk[1].y=Snk[0].y+20; Snk[1].color=4; } void Initfood() {randomize(); Fd.x=random(580); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(420); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; } void Snake_Headmv() {if(bioskey(1)) {key=bioskey(0); switch(key) {case UP:Flag(1,0,0,0);break; case DOWN:Flag(0,1,0,0);break; case LEFT:Flag(0,0,1,0);break; case RIGHT:Flag(0,0,0,1);break; default:break; } } if(flag1) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag2) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag3) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag4) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } } void Flag(int a,int b,int c,int d) {flag1=a;flag2=b;flag3=c;flag4=d;} void GameOver() {int i; if(Snk[0].x<10||Snk[0].x>630||Snk[0].y<10||Snk[0].y>470) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(160,220,"Game Over"); key=bioskey(0); } else for(i=3;i<num;i++) {if(Snk[0].x==Snk[i].x&&Snk[0].y==Snk[i].y) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(160,220,"Game Over"); key=bioskey(0); } } } void Snake_Bodymv() {int i,s,t; for(i=1;i<num;i++) {Dsnkorfd(checkx,checky,Snk[i].color); Dsnkorfd(Snk[i].x,Snk[i].y,0); s=Snk[i].x; t=Snk[i].y; Snk[i].x=checkx; Snk[i].y=checky; checkx=s; checky=t; } } void Food() {if(flag5) {randomize(); Fd.x=random(580); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(420); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; flag5=0; } Dsnkorfd(Fd.x,Fd.y,Fd.color); } void Snake_Bodyadd() {if(Snk[0].x==Fd.x&&Snk[0].y==Fd.y) {if(Snk[num-1].x>Snk[num-2].x) {num++; Snk[num-1].x=Snk[num-2].x+20; Snk[num-1].y=Snk[num-2].y; Snk[num-1].color=Fd.color; } else if(Snk[num-1].x<Snk[num-2].x) {num++; Snk[num-1].x=Snk[num-2].x-20; Snk[num-1].y=Snk[num-2].y; Snk[num-1].color=Fd.color; } else if(Snk[num-1].y>Snk[num-2].y) {num++; Snk[num-1].x=Snk[num-2].x; Snk[num-1].y=Snk[num-2].y+20; Snk[num-1].color=Fd.color; } else if(Snk[num-1].y<Snk[num-2].y) {num++; Snk[num-1].x=Snk[num-2].x; Snk[num-1].y=Snk[num-2].y-20; Snk[num-1].color=Fd.color; } flag5=1; } } void Dsnkorfd(int x,int y,int color) {setcolor(color); setfillstyle(1,color); circle(x,y,10); floodfill(x,y,color); } void Delay(int times) {int i; for(i=1;i<=times;i++) delay(15000); } |
|
|
|
|
4楼 #include <stdlib.h> #include <graphics.h> #include <bios.h> #include <dos.h> #include <conio.h> #define Enter 7181 #define ESC 283 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 void Initgra(void); void TheFirstBlock(void); void DrawMap(void); void Initsnake(void); void Initfood(void); void Snake_Headmv(void); void Flag(int,int,int,int); void GameOver(void); void Snake_Bodymv(void); void Snake_Bodyadd(void); void PrntScore(void); void Win(void); void TheSecondBlock(void); void Food(void); void Dsnkorfd(int,int,int); void Delay(int); struct Snake {int x;int y;int color;}Snk[200]; struct Food {int x;int y;int color;}Fd; int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0, checkx,checky,num=2,key=0,Times=0,Score,Hscore,Snkspeed; char Sco[2]; void main() { Initgra(); TheFirstBlock(); while(1) {DrawMap(); Snake_Headmv(); GameOver(); if(key==Enter) {cleardevice(); Initsnake(); Initfood(); key=0; Hscore=1; } Snake_Bodymv(); Snake_Bodyadd(); PrntScore(); Win(); if(key==ESC) break; TheSecondBlock(); Food(); Delay(Snkspeed); } closegraph(); } void Initgra() {int gd=DETECT,gm; initgraph(&gd,&gm,"d:\\tc"); } void TheFirstBlock() {setcolor(11); settextstyle(0,0,4); outtextxy(100,220,"The First Block"); loop:key=bioskey(0); if(key==Enter) {cleardevice(); Initsnake(); Initfood(); Score=0; Hscore=1; Snkspeed=1; } else goto loop; } void DrawMap() {line(10,10,470,10); line(470,10,470,470); line(470,470,10,470); line(10,470,10,10); line(480,20,620,20); line(620,20,620,460); line(620,460,480,460); line(480,460,480,20); } void Initsnake() {randomize(); num=2; Snk[0].x=random(440); Snk[0].x=Snk[0].x-Snk[0].x%20+50; Snk[0].y=random(440); Snk[0].y=Snk[0].y-Snk[0].y%20+50; Snk[0].color=4; Snk[1].x=Snk[0].x; Snk[1].y=Snk[0].y+20; Snk[1].color=4; } void Initfood() {randomize(); Fd.x=random(440); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(440); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; } void Snake_Headmv() {if(bioskey(1)) {key=bioskey(0); switch(key) {case UP:Flag(1,0,0,0);break; case DOWN:Flag(0,1,0,0);break; case LEFT:Flag(0,0,1,0);break; case RIGHT:Flag(0,0,0,1);break; default:break; } } if(flag1) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag2) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag3) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag4) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } } void Flag(int a,int b,int c,int d) {flag1=a;flag2=b;flag3=c;flag4=d;} void GameOver() {int i; if(Snk[0].x<20||Snk[0].x>460||Snk[0].y<20||Snk[0].y>460) {cleardevice(); setcolor(11); settextstyle(0,0,4); |
|
|
|
|
5楼 key=bioskey(0); } else for(i=3;i<num;i++) {if(Snk[0].x==Snk[i].x&&Snk[0].y==Snk[i].y) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(160,220,"Game Over"); key=bioskey(0); } } } void Snake_Bodymv() {int i,s,t; for(i=1;i<num;i++) {Dsnkorfd(checkx,checky,Snk[i].color); Dsnkorfd(Snk[i].x,Snk[i].y,0); s=Snk[i].x; t=Snk[i].y; Snk[i].x=checkx; Snk[i].y=checky; checkx=s; checky=t; } } void Food() {if(flag5) {randomize(); Fd.x=random(440); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(440); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; flag5=0; } Dsnkorfd(Fd.x,Fd.y,Fd.color); } void Snake_Bodyadd() {if(Snk[0].x==Fd.x&&Snk[0].y==Fd.y) {if(Snk[num-1].x>Snk[num-2].x) {num++; Snk[num-1].x=Snk[num-2].x+20; Snk[num-1].y=Snk[num-2].y; Snk[num-1].color=Fd.color; } else if(Snk[num-1].x<Snk[num-2].x) {num++; Snk[num-1].x=Snk[num-2].x-20; Snk[num-1].y=Snk[num-2].y; Snk[num-1].color=Fd.color; } else if(Snk[num-1].y>Snk[num-2].y) {num++; Snk[num-1].x=Snk[num-2].x; Snk[num-1].y=Snk[num-2].y+20; Snk[num-1].color=Fd.color; } else if(Snk[num-1].y<Snk[num-2].y) {num++; Snk[num-1].x=Snk[num-2].x; Snk[num-1].y=Snk[num-2].y-20; Snk[num-1].color=Fd.color; } flag5=1; Score++; } } void PrntScore() {if(Hscore!=Score) {randomize(); setcolor(random(14)+1); rectangle(485,155,615,195); setcolor(11); settextstyle(0,0,3); outtextxy(490,160,"SCORE"); setcolor(2); rectangle(520,200,550,240); floodfill(530,220,2); Sco[0]=(char)(Score+48); Sco[1]='\0'; Hscore=Score; setcolor(4); settextstyle(3,0,3); outtextxy(530,200,Sco); } } void Win() {if(Score==10) Times++; if(Times==2) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(160,220,"You Win"); key=bioskey(0); } } void TheSecondBlock() {if(Score==10) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(100,220,"The Second Block"); loop:key=bioskey(0); if(key==Enter) {cleardevice(); Initsnake(); Initfood(); Score=0; Snkspeed=9; key=0; } else goto loop; } } void Dsnkorfd(int x,int y,int color) {setcolor(color); setfillstyle(1,color); circle(x,y,10); floodfill(x,y,color); } void Delay(int times) {int i; for(i=1;i<=times;i++) delay(15000); } |
|
|
|
| 61.182.55.* |
8楼 不过,蛇速度太快... |
|
|
| 221.2.164.* |
9楼 |
|
|
| 221.2.164.* |
10楼 |
|
|
| 221.6.142.* |
11楼 |
|
|
| 61.150.85.* |
12楼 |
|
|
| 219.128.4.* |
13楼 |
|
|
| 202.196.245.* |
14楼 |
|
|
| 219.225.118.* |
15楼 不知道怎么暂停? 没声音,怎么加? 没有解决连续按键的问题. 高手帮帮忙. |
|
|
| 221.0.205.* |
16楼 豆字的颜色还是变的. |
|
|
|
17楼 # include <graphics.h> # include <stdlib.h> # include <bios.h> # define ERROR 0 # define OK 1 # define TRUE 1 # define FLASE 0 # define ESC 0x011b # define LEFT 0x4b00 # define RIGHT 0x4d00 # define DOWN 0x5000 # define UP 0x4800 /* 定义结点 */ struct Node { int x; int y; struct Node *next; }; typedef struct Node Snake_Node; Snake_Node *Tail, *Head, *Food; int X_Increment = 10, Y_Increment = 0; int s = 0; /* 分数 */ char *buf_1, *buf_2; /* 函数声明 */ int Initialization (void); void Initialize_Graphics_Mode (void); void Draw_Background (void); void Draw_First_Node (int x, int y); void Storage_Snake_Node (int x, int y, char **buf); void Draw_Snake_Node (int x, int y, char *buf); void Movement_Process (void); int Touch_Line (void); void After_Touch_Line (void); void Node_Coordinate (int *x, int *y, Snake_Node *L); void Game_Over (void); int Touch_Itself (void); void After_Touch_Itself (void); int Touch_Food (void); void After_Touch_Food (void); int Draw_Food (void); void score (void); void Move_Snake (void); void Delete_Tail (void); int Insert_Head (void); void Control_Direction (int key); /* 主函数 */ void main (void) { Initialization (); /* 初始部分 */ randomize (); while (1) { Movement_Process (); /* 运动过程 */ } } /* 初始部分 */ int Initialization (void) { Initialize_Graphics_Mode (); /*初始化图形模式*/ Draw_Background (); /*画背景图*/ Draw_First_Node (70, 80); /*绘制第一个蛇节*/ Storage_Snake_Node (70, 80, &buf_1); /*缓存第一个蛇节图像*/ /*缓存一个与蛇节图像宽高相等,颜色为背景色的图像*/ Storage_Snake_Node (0, 0, &buf_2); /* 创建蛇尾 */ Tail = (Snake_Node *)malloc (sizeof(Snake_Node)); if (!Tail) { return ERROR; } Tail->x = 70; Tail->y = 80; /* 创建蛇头 */ Head = (Snake_Node *)malloc (sizeof(Snake_Node)); if (!Head) { return ERROR; } Head->x = 80; Head->y = 80; Head->next = NULL; Draw_Snake_Node (80, 80, buf_1); /* 绘制蛇头 */ Tail->next = Head; /* 连接蛇尾与蛇头 */ Draw_Food (); /* 产生第一个食物 */ /* 初始化计分 */ setcolor (RED); settextstyle (0, 0, 2); outtextxy (151, 30, "SCORE:0"); } /*初始化图形模式*/ void Initialize_Graphics_Mode (void) { int gdriver = DETECT, gmode; registerbgidriver (EGAVGA_driver); initgraph (&gdriver, &gmode, ""); } /*画背景图*/ void Draw_Background (void) { setcolor (GREEN); rectangle (59, 69, 591, 411); rectangle (49, 59, 601, 421); setfillstyle (4, 6); floodfill (50, 60, GREEN); } /* 绘制第一个蛇节 */ void Draw_First_Node (int x, int y) { setcolor (GREEN); rectangle (x, y, x + 9, y + 9); setfillstyle (1, BLUE); floodfill (71, 81, GREEN); } /* 缓存一个 宽 × 高=9 × 9 的图像 */ void Storage_Snake_Node (int x, int y, char **buf) { int size; size = imagesize (x, y, x + 9, y + 9); if (size != -1) { *buf = malloc (size); } if (*buf) { getimage (x, y, x + 9, y + 9, *buf); } } /* 画蛇节 */ void Draw_Snake_Node (int x, int y, char *buf) |
|
|
|
|
18楼 putimage (x, y, buf, COPY_PUT); } /* 运动过程 */ void Movement_Process (void) { int key, increment; while (!kbhit ()) /* 检查是否按键 */ { if (Touch_Line ()) /* 如果碰到边界 */ { After_Touch_Line (); } else { if (Touch_Itself ()) /* 如果碰到它自己 */ { After_Touch_Itself (); } else { if (Touch_Food ()) /* 如果吃到食物 */ { After_Touch_Food (); } Move_Snake (); /* 直向前运动 */ delay (500000); } } } key = bioskey (0); /* 控制蛇的前进方向 */ Control_Direction (key); } /* 判断是否碰到边界 */ int Touch_Line (void) { int x, y; Node_Coordinate (&x, &y, Head); if ((x == 50) || (x == 590) || (y == 60) || (y == 410)) { return TRUE; } return FLASE; } /* 碰到边界以后 */ void After_Touch_Line (void) { Game_Over (); } /* 判断是否碰到自己 */ int Touch_Itself (void) { Snake_Node *p; p = Tail; while (p->next != NULL) { if ((p->x == Head->x) && p->y == Head->y) { return TRUE; } p = p->next; } return FLASE; } /* 碰到自己以后 */ void After_Touch_Itself (void) { Game_Over (); } /* 返回结点L的坐标 */ void Node_Coordinate (int *x, int *y, Snake_Node *L) { *x = L->x; *y = L->y; } /* 结束游戏界面 */ void Game_Over (void) { cleardevice (); settextstyle (1, 0, 8); setcolor (RED); outtextxy (128, 150, "GAMEOVER"); /* 在屏幕上显示“GAMEOVER” */ getch (); closegraph (); } /* 判断是否吃到食物 */ int Touch_Food (void) { int hx, hy, fx, fy; Node_Coordinate (&hx, &hy, Head); Node_Coordinate (&fx, &fy, Food); if ((hx + X_Increment == fx) && (hy + Y_Increment == fy)) { return TRUE; } return FLASE; } /* 碰到食物以后 */ void After_Touch_Food (void) { Head->next = Food; Head = Food; Draw_Food (); score (); } /* 产生新食物 */ int Draw_Food (void) { int x, y, flag = 1; Snake_Node *p; Food = (Snake_Node *)malloc (sizeof(Snake_Node)); if (!Food) { return ERROR; } Food->next = NULL; /* 在边界内及除蛇自身外的地方产生食物 */ while (flag == 1) { x = Food->x = (random (53) + 6) * 10; y = Food->y = (random (33) + 7) * 10; p = Tail; while (p != NULL) { if ((p->x != x) || p->y != y) { flag = 0; break; } p = p->next; } } Draw_Snake_Node (x, y, buf_1); } /* 计分 */ void score(void) { char str[10]; setfillstyle (1, 0); bar (247, 30, 311, 46); sprintf (str, "%d", s += 10); setcolor (LIGHTRED); settextstyle (0, 0, 2); outtextxy (247, 30, str); } /* 控制蛇直向前运动 */ void Move_Snake (void) { Delete_Tail (); /* 删除蛇尾结点 */ Insert_Head (); /* 新增蛇头结点 */ } /* 删除蛇尾结点 */ void Delete_Tail (void) { int x, y; Snake_Node *p; Node_Coordinate (&x, &y, Tail); /* 返回结点Cauda的坐标 */ Draw_Snake_Node (x, y, buf_2); /* 删除蛇尾结点 */ /* 得到新蛇尾结点 */ p = Tail; Tail = Tail->next; free (p); p = NULL; } /* 新增蛇头结点 */ int Insert_Head (void) { int x, y; Snake_Node *L; /* 开辟一个新蛇头空间 */ L = (Snake_Node *)malloc (sizeof (Snake_Node)); if (!L) { return ERROR; } L->next = NULL; /* 创建新蛇头结点 */ Head->next = L; Node_Coordinate (&x, &y, Head); x = L->x = x + X_Increment; y = L->y = y + Y_Increment; Head = L; Draw_Snake_Node (x, y, buf_1); } /* 控制蛇的前进方向 */ void Control_Direction (int key) { int x, y; x = X_Increment; y = Y_Increment; switch (key) { case UP: X_Increment = 0; Y_Increment = Y_Increment - 10; break; case DOWN: X_Increment = 0; Y_Increment = Y_Increment + 10; break; case RIGHT: X_Increment = X_Increment + 10; Y_Increment = 0; break; case LEFT: X_Increment = X_Increment - 10; Y_Increment = 0; break; case ESC: Game_Over (); } if (abs (X_Increment - Y_Increment) != 10) { X_Increment = x; Y_Increment = y; } } |
|
|
|
| 211.95.168.* |
19楼 |
|
|
| 222.130.62.* |
20楼 |
|
|
| 222.125.205.* |
22楼 深圳市国X科技股份有限公司(深圳市国X电子系统有限公司)在拖欠了我们员工几个月的工资后不但不积极与我们沟通解决,还逃避责任,假以借口,在仲裁后又假意调解,却对调解的结果拒不执行,其行为极其恶劣。 昨天,是仲裁调解执行的最后一日,我们满怀希望的在双方约定的时间去公司领钱。就在我们所有人天真的以为我们的苦难终于结束了时,却发现公司根本没有任何负责人在,包括财务。我们有点不安了,我们当中有两人甚至是从外地赶回来的,只请了一天的假。于是我们打电话给他们的财务,被告知在外办事,马上回来。在我们所有人等了一上午后,他们的财务终于施施然来了,却轻飘飘说了一句,没钱。 我们懵了,难道是我们听错了,还是理解错了?在与我们的律师再次确认后,我们知道自己彻底的又被耍了一次。一个注册资金有八千万的公司却跟我们玩这样的游戏,令人愤怒! 我们当初都是怀着一腔热忱为公司卖苦卖命的,我们当中有的人为公司已经工作多年,长年累月出差到外省市,顾不上家庭,顾不上自己。在公司温情脉脉的命纱下,在老板虚无飘渺的许诺下,我们以为自己的辛苦一定会得到回报,所以义无反顾。在公司告知经营上发生了一点困难,需要大家一起度时,我们没有一个人退缩,以至于公司接着连拖了我们四个月的工资,却迟迟不作任何承诺时,我们终于开始醒悟了,这是个阴谋,公司根本不会再主动付我们钱了,公司打着上市的旗号把钱都搞空了,我们再等下去只有死路一条。 我们太天真了,在进公司的第一天就已经被下了套,我们却一无所知。公司跟我们签合同用的是一个公司名称,帮我们交社保用的却是另一个公司名称,而我们为之服务的居然又是另一个公司名称,其实所有的公司幕后都是这个老板。而这些在我们打官司时居然都成了他们逃避责任的“理由”。 950 |
|
|
| 219.139.139.* |
23楼 |
|
|
| 61.132.87.* |
26楼 |
|
|
| 116.253.96.* |
27楼 谁教我啊 偶没学过这东东 蛮酷的 我想学日日日日日日日日日日日日啊 |
|
|
| 116.253.96.* |
28楼 |
|
|
| 218.88.248.* |
30楼 fatal error C1083: Cannot open include file: 'graphics.h': No such file or directory. 请高手指点下迷津. |
|
|
| 221.1.223.* |
31楼 |
|
|