Ir para conteúdo
Fórum Script Brasil
  • 0

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


athoslive

Pergunta

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("ÅÄÄÄÄÄÄÄÄÄÅ");
}

Editado por athoslive
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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...

Editado por athoslive
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...