#include 赞 踩 C++小游戏 双人贪吃蛇 一个双人贪吃蛇的C++源代码 要使用easyX 我这里用得是VS2012版 具体内容如下: #include <stdio.h> void Stop(); enum DIR struct FOOD int main() while(1) return 0; void Key() void snakeMove() //音乐 void Eatfood() if(food1.flag&&snake2.coor[0].x>=food1.x-food1.r&&snake2.coor[0].x<=food1.x+food1.r&& //有些地方没用for循环,因为懒‘''___'''’ //还有许多要优化的地方 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。
C++小游戏 双人贪吃蛇_c++写一个可以几个人一起玩的贪吃蛇的代码怎么写
#include "graphics.h"
#include <mmsystem.h>
#include <conio.h>
#include <stdlib.h>
#define SNAKE_NUM 500
#pragma comment(lib,"winmm.lib")
void Eatfood();
void Huitu();
void snakeMove();
void Cushihua();
void WeiyiPD();
void Key();
void zhuangji();
{
UP,
DOWN,
LEFT,
RIGHT,
};
struct Snake
{
int size;
bool life;
int dir;
int speed;
POINT coor[SNAKE_NUM];
}snake1,snake2;
{
int x;
int y;
bool flag;
int r;
DWORD color;
}food1,food2,food3,food4;
{
initgraph(1000,650);
Cushihua();
{
Huitu();
snakeMove();
Key();
Eatfood();
zhuangji();
Sleep(10);
}
}
{
int i;
i=0;
int j;
j=0;
if(_kbhit())
{
switch(_getch())
{
case 72:
if(snake1.dir!=DOWN){
snake1.dir=UP;}
break;
case 80:
if(snake1.dir!=UP){
snake1.dir=DOWN;}
break;
case 75:
if(snake1.dir!=RIGHT){
snake1.dir=LEFT;}
break;
case 77:
if(snake1.dir!=LEFT){
snake1.dir=RIGHT;}
break;
case '.':
while(1)
{
Sleep(3000);i=1;
if(i=1)return;
}
case 'w':
if(snake2.dir!=DOWN){
snake2.dir=UP;}
break;
case 's':
if(snake2.dir!=UP){
snake2.dir=DOWN;}
break;
case 'a':
if(snake2.dir!=RIGHT){
snake2.dir=LEFT;}
break;
case 'd':
if(snake2.dir!=LEFT){
snake2.dir=RIGHT;}
break;
case 'h':
while(1)
{
Sleep(3000);j=1;
if(j=1)return;
}
}
}
}
void Huitu()
{
BeginBatchDraw();
setbkcolor(RGB(28,115,119));
cleardevice();
if(snake1.life)
{
for(int i=0;i<snake1.size;i++)
{
solidcircle(snake1.coor[i].x,snake1.coor[i].y,5);
}
}
if(snake2.life)
{
for(int j=0;j<snake2.size;j++)
{
solidcircle(snake2.coor[j].x,snake2.coor[j].y,5);
}
}
if(food1.flag)
{
solidcircle(food1.x,food1.y,food1.r);
}
if(food2.flag)
{
solidcircle(food2.x,food2.y,food2.r);
}
if(food3.flag)
{
solidcircle(food3.x,food3.y,food3.r);
}
if(food4.flag)
{
solidcircle(food4.x,food4.y,food4.r);
}
EndBatchDraw();
}
{
if(snake1.life)
{
for(int i=snake1.size-1;i>0;i--)
{
snake1.coor[i]=snake1.coor[i-1];
}
switch (snake1.dir)
{
case UP:
snake1.coor[0].y-=snake1.speed;
if( snake1.coor[0].y+10<=0)
{
snake1.coor[0].y=650;
}
break;
case DOWN:
snake1.coor[0].y+=snake1.speed;
if( snake1.coor[0].y-10>=650)
{
snake1.coor[0].y=0;
}
break;
case LEFT:
snake1.coor[0].x-=snake1.speed;
if( snake1.coor[0].x+10<=0)
{
snake1.coor[0].x=1000;
}
break;
case RIGHT:
snake1.coor[0].x+=snake1.speed;
if( snake1.coor[0].x-10>=1000)
{
snake1.coor[0].x=0;
}
break;
}
}
if(snake2.life)
{
for(int j=snake2.size-1;j>0;j--)
{
snake2.coor[j]=snake2.coor[j-1];
}
switch (snake2.dir)
{
case UP:
snake2.coor[0].y-=snake2.speed;
if( snake2.coor[0].y+10<=0)
{
snake2.coor[0].y=650;
}
break;
case DOWN:
snake2.coor[0].y+=snake2.speed;
if( snake2.coor[0].y-10>=650)
{
snake2.coor[0].y=0;
}
break;
case LEFT:
snake2.coor[0].x-=snake2.speed;
if( snake2.coor[0].x+10<=0)
{
snake2.coor[0].x=1000;
}
break;
case RIGHT:
snake2.coor[0].x+=snake2.speed;
if( snake2.coor[0].x-10>=1000)
{
snake2.coor[0].x=0;
}
break;
}
}
}
void Cushihua()
{
mciSendString("open ./音域/yy.mp3 alias BGM",0,0,0);
mciSendString("play BGM repeat",0,0,0);
snake1.size=33;
snake1.life=true;
snake1.dir;
snake1.speed=1;
for(int i=0;i<snake1.size;i++)
{
snake1.coor[0].x=100-10*i;
snake1.coor[0].y=10;
}
snake2.size=33;
snake2.life=true;
snake2.dir;
snake2.speed=1;
for(int j=0;j<snake2.size;j++)
{
snake2.coor[0].x=500-10*j;
snake2.coor[0].y=10;
}
srand(GetTickCount());
food1.x=rand()%1000;
food1.y=rand()%650;
food1.color=RGB(rand()%256,rand()%256,rand()%256);
food1.r=rand()%10+5;
food1.flag=true;
food2.x=rand()%1000;
food2.y=rand()%650;
food2.color=RGB(rand()%256,rand()%256,rand()%256);
food2.r=rand()%10+5;
food2.flag=true;
food3.x=rand()%1000;
food3.y=rand()%650;
food3.color=RGB(rand()%256,rand()%256,rand()%256);
food3.r=rand()%10+5;
food3.flag=true;
food4.x=rand()%1000;
food4.y=rand()%650;
food4.color=RGB(rand()%256,rand()%256,rand()%256);
food4.r=rand()%10+5;
food4.flag=true;
}
{
if(food1.flag&&snake1.coor[0].x>=food1.x-food1.r&&snake1.coor[0].x<=food1.x+food1.r&&
snake1.coor[0].y>=food1.y-food1.r&&snake1.coor[0].y<=food1.y+food1.r)
{
food1.flag=false;
snake1.size+=11;
}
if(!food1.flag)
{
food1.x=rand()%1000;
food1.y=rand()%650;
food1.color=RGB(rand()%256,rand()%256,rand()%256);
food1.r=rand()%10+5;
food1.flag=true;
}
if(food2.flag&&snake1.coor[0].x>=food2.x-food2.r&&snake1.coor[0].x<=food2.x+food2.r&&
snake1.coor[0].y>=food2.y-food2.r&&snake1.coor[0].y<=food2.y+food2.r)
{
food2.flag=false;
snake1.size+=11;
}
if(!food2.flag)
{
food2.x=rand()%1000;
food2.y=rand()%650;
food2.color=RGB(rand()%256,rand()%256,rand()%256);
food2.r=rand()%10+5;
food2.flag=true;
}
if(food3.flag&&snake1.coor[0].x>=food3.x-food3.r&&snake1.coor[0].x<=food3.x+food3.r&&
snake1.coor[0].y>=food3.y-food3.r&&snake1.coor[0].y<=food3.y+food3.r)
{
food3.flag=false;
snake1.size+=11;
}
if(!food3.flag)
{
food3.x=rand()%1000;
food3.y=rand()%650;
food3.color=RGB(rand()%256,rand()%256,rand()%256);
food3.r=rand()%10+5;
food3.flag=true;
}
if(food4.flag&&snake1.coor[0].x>=food4.x-food4.r&&snake1.coor[0].x<=food4.x+food4.r&&
snake1.coor[0].y>=food4.y-food4.r&&snake1.coor[0].y<=food4.y+food4.r)
{
food4.flag=false;
snake1.size+=11;
}
if(!food4.flag)
{
food4.x=rand()%1000;
food4.y=rand()%650;
food4.color=RGB(rand()%256,rand()%256,rand()%256);
food4.r=rand()%10+5;
food4.flag=true;
}
snake2.coor[0].y>=food1.y-food1.r&&snake2.coor[0].y<=food1.y+food1.r)
{
food1.flag=false;
snake2.size+=11;
}
if(!food1.flag)
{
food1.x=rand()%1000;
food1.y=rand()%650;
food1.color=RGB(rand()%256,rand()%256,rand()%256);
food1.r=rand()%10+5;
food1.flag=true;
}
if(food2.flag&&snake2.coor[0].x>=food2.x-food2.r&&snake2.coor[0].x<=food2.x+food2.r&&
snake2.coor[0].y>=food2.y-food2.r&&snake2.coor[0].y<=food2.y+food2.r)
{
food2.flag=false;
snake2.size+=11;
}
if(!food2.flag)
{
food2.x=rand()%1000;
food2.y=rand()%650;
food2.color=RGB(rand()%256,rand()%256,rand()%256);
food2.r=rand()%10+5;
food2.flag=true;
}
if(food3.flag&&snake2.coor[0].x>=food3.x-food3.r&&snake2.coor[0].x<=food3.x+food3.r&&
snake2.coor[0].y>=food3.y-food3.r&&snake2.coor[0].y<=food3.y+food3.r)
{
food3.flag=false;
snake2.size+=11;
}
if(!food3.flag)
{
food3.x=rand()%1000;
food3.y=rand()%650;
food3.color=RGB(rand()%256,rand()%256,rand()%256);
food3.r=rand()%10+5;
food3.flag=true;
}
if(food4.flag&&snake2.coor[0].x>=food4.x-food4.r&&snake2.coor[0].x<=food4.x+food4.r&&
snake2.coor[0].y>=food4.y-food4.r&&snake2.coor[0].y<=food4.y+food4.r)
{
food4.flag=false;
snake2.size+=11;
}
if(!food4.flag)
{
food4.x=rand()%1000;
food4.y=rand()%650;
food4.color=RGB(rand()%256,rand()%256,rand()%256);
food4.r=rand()%10+5;
food4.flag=true;
}
}
void zhuangji()
{
int i,j;
for(i=0;i<=snake2.size-1;i++)
{
if(snake1.life&&snake1.coor[0].x>=snake2.coor[i].x-5&&snake1.coor[0].x<=snake2.coor[i].x+5&&
snake1.coor[0].y>=snake2.coor[i].y-5&&snake1.coor[0].y<=snake2.coor[i].y+5)
snake1.life=false;
}
for(j=0;j<=snake1.size-1;j++)
{
if(snake2.life&&snake2.coor[0].x>=snake1.coor[j].x-5&&snake2.coor[0].x<=snake1.coor[j].x+5&&
snake2.coor[0].y>=snake1.coor[j].y-5&&snake2.coor[0].y<=snake1.coor[j].y+5)
snake2.life=false;
}
}