2 файла в один

  • Автор темы akma
  • Дата начала
A

akma

#1
люди,помогите запихнуть менюшку игры в саму игру!!
вот код игры

Код:
#include<dos.h>
#include<conio.h>
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>

#define UP 72
#define LEFT 75
#define RIGHT 77
#define DOWN 80
#define ESC 1
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
struct SnakeParts{
int x;
int y;
}box[50],target;
void snake(int ,int );
void initialize(int,int);
void interrupt (*prev)(__CPPARGS);
void interrupt our(__CPPARGS);
void snakeb();
int check();
void Rectangle(int ,int,int,int);
int
stop=0,blocks=4,direction=2,size=10,hit=1,snake_color=14,bk=7,target_color
=4;
int stage=1,speed=100,point=0;
void main(){
int gd=DETECT,gm,x=100,y=100,i=0,j=0;
char msg[50];
initgraph(&gd,&gm,"");

prev=getvect(9);

initialize(x,y);
;
while (1){

switch(direction){
case 0: j-=size;break;
case 1: j+=size;break;
case 2: i+=size;break;
case 3: i-=size;break;
}
setcolor(snake_color);
snake(x+i,y+j);
delay(speed);
setcolor(bk);
snakeb();
setvect(9,our);
if(stop==1){break;}
if(check()){break;}
if(hit==1){
hit=0;
target.x=size+size*random(25);
target.y=size+size*random(20);
setcolor(target_color);
setfillstyle(SOLID_FILL,target_color);
circle(target.x+size/2,target.y+size/2,size/2-1);
floodfill(target.x+size/2,target.y+size/2,target_color);
}
setfillstyle(SOLID_FILL,target_color);
setcolor(2);
circle(target.x+size/2,target.y+size/2,size/2-1);
floodfill(target.x+size/2,target.y+size/2,2);

gotoxy(65,4);
printf("POINT = %3d",point);

}
closegraph();
}
void interrupt our(__CPPARGS){
switch(inportb(0x60)){
case UP: if(direction==1)break;direction=0;break;
case DOWN: if(direction==0)break;direction=1;break;
case RIGHT: if(direction==3)break;direction=2;break;
case LEFT: if(direction==2)break;direction=3;break;
case 15:blocks++;break;
case ESC: stop=1;break;
}

(*prev)();
}
void snake(int x1,int y1){
int k=0;

for(k=blocks-1;k>0;k--){
box[k].x=box[k-1].x;
box[k].y=box[k-1].y;
}
box[0].x=x1;
box[0].y=y1;

for(k=0;k<blocks;k++){
Rectangle(box[k].x,box[k].y,box[k].x+size,box[k].y+size);
}

}
void snakeb(){

for(int k=0;k<blocks;k++){
Rectangle(box[k].x,box[k].y,box[k].x+size,box[k].y+size);
size/2,bk);
}
}
void initialize(int x,int y){
setcolor(bk);
rectangle(0,0,639,479);
setfillstyle(SOLID_FILL,bk);
setbkcolor(bk);
box[0].x=x;
box[0].y=y;
for(int i=1;i<blocks;i++){
box[i].x=x-size*i;
box[i].y=y;
}

}
int check(){
int i;
char msg[50];

if(!(box[0].x>=0 && box[0].x<=639 && box[0].y>=0 && box[0].y<=479)){
for( i=100;i<700;i+=100){

delay(100);

}
sprintf(msg,"GAME OVER");
setcolor(4);
settextstyle(1,HORIZ_DIR,6);
outtextxy(150,200,msg);
delay(3000);
cleardevice();
return 1;
}
for( i=1;i<blocks;i++){
if(box[0].x==box[i].x && box[0].y==box[i].y){
sprintf(msg,"GAME OVER");
setcolor(4);
settextstyle(1,HORIZ_DIR,6);
outtextxy(150,200,msg);
delay(3000);
cleardevice();
return 1;
}
}
if(box[0].x==target.x && box[0].y==target.y){

delay(100);


blocks++;
point++;
hit=1;
setcolor(bk);

setfillstyle(SOLID_FILL,bk);
setcolor(bk);
circle(target.x+size/2,target.y+size/2,size/2-1);
floodfill(target.x+size/2,target.y+size/2,bk);
}
if(blocks==40){
stage++;
blocks=4;
sprintf(msg,"STAGE %d CLEARED",stage-1);
setcolor(4);
settextstyle(1,HORIZ_DIR,6);
outtextxy(150,200,msg);
delay(2000);
cleardevice();
initialize(100,100);
speed=100/stage;
}
return 0;
}
void Rectangle(int x1,int y1,int x2,int y2){
for(int i=0;i<size/2;i++)
rectangle(x1+i,y1+i,x2-i,y2-i);
}

а вот код меню:


Код:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void text()
{
setcolor(2);
outtextxy((getmaxx()-5*8)/2,156,"START");
outtextxy((getmaxx()-6*8)/2,186,"SCORES");
outtextxy((getmaxx()-5*8)/2,216,"ABOUT");
outtextxy((getmaxx()-4*8)/2,246,"EXIT");
}
void perehod ( int i,int j) 
{setfillstyle(11,4);
bar((getmaxx()-150)/2,150+(i*30),(getmaxx()+150)/2,170+(i*30));
setfillstyle(10,12);
bar((getmaxx()-150)/2,150+(j*30),(getmaxx()+150)/2,170+(j*30));
}


int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */
initgraph(&gdriver, &gmode, "e:\\");

/* read result of initialization */
errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);			 /* return with error code */
}

setfillstyle(10,12);
bar((getmaxx()-150)/2,150,(getmaxx()+150)/2,170);

bar((getmaxx()-150)/2,180,(getmaxx()+150)/2,200);
bar((getmaxx()-150)/2,210,(getmaxx()+150)/2,230);
bar((getmaxx()-150)/2,240,(getmaxx()+150)/2,260);
text();
int k=0,i=0,j=0;
for(;k!=13;)
{
k=getch();
switch(k)
{
case 72: if(i==0){
i=3; j=0; perehod(i,j); text();
}
else	{
j=i; i--; perehod(i,j); text();
}break;
case 80: if(i==3){
i=0; j=3; perehod(i,j);text();
}
else	{
j=i; i++; perehod(i,j);text();
}break;
}
}

/* clean up */

closegraph();
return 0;
}
 
E

eReS

#2
Код:
#include<dos.h>
#include<conio.h>
#include<graphics.h>
чему вас учат? :rolleyes: