Jump to content
Fórum Script Brasil
  • 0

Código - Jogo em C (EDITADO COM MENU)


athoslive
 Share

Question

Como o Rocco está sempre postando códigos interessantes,vou postar um que eu desenvolvi...

Me avisem se acharem algum defeito pois eu estou tentando melhorar.

#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<dos.h>
#include<ctype.h>
#include<stdlib.h>
#include<math.h>

int p_r=40,p_m=39,p_n=41,p_v=39,p_b=41,p_i=40,vida=100,vi=100;

void menu(int esc,int a,int f,int z);
void cenario();
void nave(int p,int m,int n);
void semnave(int p,int m,int n);
void tiro(int p,int y);
void inimigo(int u,int v,int b);
void seminimigo(int u,int v,int b);
void tiroinimigo(int u,int g);

int main()
{
    int b=0;
    clrscr();
    clrscr();
    _setcursortype(_NOCURSOR);
    menu(0,0,0,0);
    while(b!=27)
    {
        gotoxy(1,1); textcolor(RED); cprintf("HP-%d%",vi);
        if(kbhit())
        {
            b=getch();
            semnave(p_r,p_m,p_n);
            seminimigo(p_i,p_v,p_b);
            if(b==100)
            {
                p_r++;
                p_m++;
                p_n++;
            }
            if(b==97)
            {
                p_r--;
                p_m--;
                p_n--;
            }
            if(b==119)
                tiro(p_r,24);
            if(p_r==79)
                p_r=2;
            if(p_r==2)
                p_r=79;
            if(b==75)
            {
                p_i--;
                p_v--;
                p_b--;
            }
            if(b==77)
            {
                p_i++;
                p_v++;
                p_b++;
            }
            if(b==72)
            {
                tiroinimigo(p_i,3);
            }

        }
        nave(p_r,p_m,p_n);
        inimigo(p_i,p_v,p_b);
        if(vi==0)
        {
            gotoxy(20,10); printf("P1 Perdeu");
            getch();
            exit(1);
        }
        if(vida==0)
        {
            gotoxy(35,10); printf("P2 Perdeu");
            getch();
            exit(1);
        }
    }

}

void nave(int p,int m,int n)
{
    gotoxy(1,25); textcolor(RED); cprintf("HP-%d%",vida);
    gotoxy(p,23); printf("²");
    gotoxy(m,24); printf("²");
    gotoxy(n,24); printf("²");
}
void semnave(int p,int m,int n)
{
    gotoxy(p,23);   printf(" ");
    gotoxy(m,24); printf(" ");
    gotoxy(n,24); printf(" ");
}
void tiro(int p,int y)
{
    for(y=24;y>=1;y --)
    {
        gotoxy(p,y); printf("|");
        delay(10);
        gotoxy(p,y); printf(" ");
        nave(p_r,p_m,p_n);
        inimigo(p_i,p_v,p_b);
        if(p_r==p_i || p_r==p_v || p_r==p_b)
        {
            if(y==1)
                vi=vi-10;
        }
    }
    gotoxy(p,y); printf(" ");
}
void inimigo(int u,int v,int b)
{
    gotoxy(1,1); textcolor(RED); cprintf("HP-%d%",vi);
    gotoxy(u,3);   printf("²");
    gotoxy(v,2); printf("²");
    gotoxy(b,2); printf("²");
}
void seminimigo(int u,int v,int b)
{
    gotoxy(u,3);   printf(" ");
    gotoxy(v,2); printf(" ");
    gotoxy(b,2); printf(" ");
}

void tiroinimigo(int u,int g)
{
    for(g=3;g<=24;g++)
    {
        gotoxy(u,g); printf("|");
        delay(10);
        gotoxy(u,g); printf(" ");
        nave(p_r,p_m,p_n);
        inimigo(p_i,p_v,p_b);
        if(p_i==p_r || p_i==p_m || p_i==p_n)
        {
            if(g==24)
                vida=vida-10;
        }
    }
    gotoxy(u,g); printf(" ");
}

void menu(int esc,int a,int f,int z)
{
    cenario();
    a=0;
    f=0;
    while(f==0)
    {
    esc=getch();
    if(esc==72)
        a--;
    if(esc==80)
        a++;
    if(a<0)
        a=3;
    if(a>3)
        a=1;
    if(a==1)
    {
        gotoxy(30,7); printf("ÎÍÍÍÍÍÍÍÍÍÎ");
        gotoxy(30,8); printf("º  Jogar  º");
        gotoxy(30,9); printf("ÎÍÍÍÍÍÍÍÍÍÎ");

        gotoxy(30,11);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,12);printf("³Controles³");
        gotoxy(30,13);printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,16);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,17);printf("³  Sair   ³");
        gotoxy(30,18);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        if(esc==13)
        {
            a=0;
            f++;
        }
    }
    if(a==2)
    {
        gotoxy(30,7); printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,8); printf("³  Jogar  ³");
        gotoxy(30,9); printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,11);printf("ÎÍÍÍÍÍÍÍÍÍÎ");
        gotoxy(30,12);printf("ºControlesº");
        gotoxy(30,13);printf("ÎÍÍÍÍÍÍÍÍÍÎ");

        gotoxy(30,16);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,17);printf("³  Sair   ³");
        gotoxy(30,18);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        if(esc==13)
            z++;
    }
    if(a==3)
    {
        gotoxy(30,7); printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,8); printf("³  Jogar  ³");
        gotoxy(30,9); printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,11);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,12);printf("³Controles³");
        gotoxy(30,13);printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,16);printf("ÎÍÍÍÍÍÍÍÍÍÎ");
        gotoxy(30,17);printf("º  Sair   º");
        gotoxy(30,18);printf("ÎÍÍÍÍÍÍÍÍÍÎ");
        if(esc==13)
        {
        a=0;
        exit(1);
        }
    }
    if(z==1)
    {
        clrscr();
        gotoxy(1,1); printf("P1 joga com (A) para esquerda,(D) para direita e (W) para atrar.");
        gotoxy(3,1); printf("P2 joga com a setas, esquerda,direita e emcima");
        getch();
        clrscr();
        z=0;
        cenario();
    }
    }
    a=0;
    f=0;
    z=0;
    clrscr();
}
void cenario()
{
        gotoxy(30,7); printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,8); printf("³  Jogar  ³");
        gotoxy(30,9); printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,11);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,12);printf("³Controles³");
        gotoxy(30,13);printf("ÅÄÄÄÄÄÄÄÄÄÅ");

        gotoxy(30,16);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
        gotoxy(30,17);printf("³  Sair   ³");
        gotoxy(30,18);printf("ÅÄÄÄÄÄÄÄÄÄÅ");
}

Edited by athoslive
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

xD Meu código só tem um problema,quando você aperta muito rápido,ele trava,porque só executa uma ação por vez. (Mesmo assim ele executa tão rápido que só faz diferença se você ficar teclando feito doido que nem eu muitas vezes faço...)

----

Estou pondo um menu nele,quando conseguir edito o tópico.

(É um menu bem legal...)

Já coloquei o menu,qualquer problema me avisa e tenta mandar a solução...

Edited by athoslive
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...