2 файла в один

Тема в разделе "Общие вопросы по С и С++", создана пользователем akma, 30 май 2010.

  1. akma

    akma Гость

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

    Код ( (Unknown Language)):
    #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);
    }

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


    Код ( (Unknown Language)):
    #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;
    }
     
  2. eReS

    eReS Гость

    Код (Text):
    #include<dos.h>
    #include<conio.h>
    #include<graphics.h>
    чему вас учат? :rolleyes:
     
  3. akma

    akma Гость

    а что не так?)
     
Загрузка...

Поделиться этой страницей