Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
caioss

Ajuda com sistema de repetição

Recommended Posts

então pessoal fiz isso no turbo C é um jogo de nave porém não consigo fazer com que ele atire e possa movimenta-la

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

#include <dos.h>

#include "MOUSE.h"

void main(void)

{

/*DECLARANDO AS VARIAVEIS*/

int X_tiro;

int Y_tiro;

int X_nave;

int Y_nave;

int Yold;

int Xold;

int B=0;

clrscr(); // LIMPAR A TELA PRA COMECAr

InitMouse();

// DisplayMouse();

while(!kbhit()) // em loop ate que o teclado seja pressionado

{

// IMPORTANTE

// As variaveis X e Y indicam a posição da nave na tela

X_nave=XMouse()+1; // coordenadas do mouse

Y_nave=YMouse()+1; //

B=ButtonMouse(); //Ler qual o valor do botao apertado...

if (X_nave>70) X_nave=60; // evita que a tela seja excedida

if (Y_nave>24) Y_nave=19; // evita que a tela seja excedida

if (Y_nave<04) Y_nave=04;

gotoxy(1,1); // mostra as coordenadas na tela

cprintf("X_nave=%d \n",X_nave);

gotoxy(1,2);

cprintf("Y_nave=%d \n",Y_nave);

gotoxy(1,3);

cprintf("B=%d \n",B); // mostra o valor da variavel B

// rotinas para limpar o desenho anterior (old=velho) do cursor

textcolor(0); // Desenha na cor do fundo

gotoxy(Xold,Yold);

cprintf(" _|*|_ ");

gotoxy(Xold,Yold+1);

cprintf(" |-- --| ");

gotoxy(Xold,Yold+2);

cprintf(" |*|| (_@_) ||*| ");

gotoxy(Xold,Yold+3);

cprintf(" | DS ||||_|||| CS | ");

gotoxy(Xold,Yold+4);

cprintf("|(!)(!) (!)(!)|");

textcolor(12); // retorna cor original

// Rotinas para desenhar A NAVE

gotoxy(X_nave,Y_nave);

cprintf(" _|*|_ ");

gotoxy(X_nave,Y_nave+1);

cprintf(" |-- --| ");

gotoxy(X_nave,Y_nave+2);

cprintf(" |*|| (_@_) ||*| ");

gotoxy(X_nave,Y_nave+3);

cprintf(" | DS ||||_|||| CS | ");

gotoxy(X_nave,Y_nave+4);

cprintf("|(!)(!) (!)(!)|");

Yold=Y_nave; // guarda as variaveis antigas X e Y

Xold=X_nave;

if(B==1) /*TIRO 1*/

{

textcolor(7);

Y_tiro=Y_nave;

X_tiro=X_nave;

while(Y_tiro!=2)

{

gotoxy(X_tiro+3,Y_tiro);

cprintf(" ");

gotoxy(X_tiro+15,Y_tiro);

cprintf(" ");

Y_tiro--;

gotoxy(X_tiro+3,Y_tiro);

cprintf(".*.");

gotoxy(X_tiro+15,Y_tiro);

cprintf(".*.");

delay(100);

if(Y_tiro==2) /*Limpando a linha FINAL*/

{

gotoxy(X_tiro,Y_tiro);

cprintf(" ");

}

}

}

if(B==2) /*TIRO 2*/

{

textcolor(7);

Y_tiro=Y_nave;

X_tiro=X_nave;

while(Y_tiro!=2)

{

gotoxy(X_tiro+3,Y_tiro);

cprintf(" ");

gotoxy(X_tiro+14,Y_tiro);

cprintf(" ");

Y_tiro--;

gotoxy(X_tiro+3,Y_tiro);

cprintf("___!___");

gotoxy(X_tiro+14,Y_tiro);

cprintf("___!___");

delay(100);

if(Y_tiro==2)

{

gotoxy(X_tiro,Y_tiro);

cprintf(" ");

}

};

} } // fim do loop

}// chave final do programa

JA tentei fazer break mas nao consegui se alguem puder ajudar!!!!!!

não sei se vces conseguirao roda-lo por causa do arquivo Mouse.H, mas se puderem ajudar!

OBRIGADO,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que você não tenta usar o teclado primeiro antes de tentar o mouse?

Dá uma olhada no exemplo abaixo e faça uma comparação com o seu código.


#include <math.h>

/* Prototipagem das funcoes */

void nave(char[3][3]);
void sobe_tiro(void);

/* Variaveis Globais */

int c_nave=20, l_nave=23; //Centro da nave na linha 23 e col. 20
int c_tiro=0, l_tiro; //Coordenadas do tiro

char N1[3][3]={
{' ','+',' '},
{'<',' ','>'},
{'!','!','!'},
};

/* Fucoes */

void nave(char desenho[3][3])
{
int c,l;
textcolor(BLACK);
for(c=0;c<=2;c++)
{
for(l=0;l<=2;l++)
{
gotoxy((c_nave-1)+c,(l_nave-1)+l);
putch(desenho[l][c]);
}
}
}

void sobe_tiro(void)
{
textcolor(RED);
gotoxy(c_tiro,l_tiro);
putch(' ');
if(l_tiro==1)
c_tiro=0;
else
{
l_tiro--;
gotoxy(c_tiro,l_tiro);
putch('*');
}
}

/* Principal */

void main(void)
{
int tecla=0,contador=1;
char temp;

/* Inicialicacao da tela */

textcolor(BLACK); //Texto preto
textbackground(LIGHTGRAY); //Fundo cinza claro
_setcursortype(_NOCURSOR); //Sem cursor
clrscr(); //Limpa tela

gotoxy(c_nave,l_nave);
nave(N1);

while(temp!=27)
{
if(kbhit())
{
temp=getch();
switch(temp){
case 'a':
// mover para esquerda
break;
case 'd':
// mover para direita
break;
case ' ':
if(c_tiro==0)
{
textcolor(RED);
c_tiro=c_nave;
l_tiro=l_nave-2;
gotoxy(c_tiro,l_tiro);
putch('*');
}
break;
case 'p':
tecla=1;
break;
}
}
delay(10);
contador++;
if(contador==10)
{
contador=1;
if(c_tiro!=0)
sobe_tiro();
}
}
}

#include <conio.h>

Editado por crudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×