• Martes 7 de Mayo de 2024, 15:44

Autor Tema:  Ayuda Urgente... Porfa  (Leído 1287 veces)

Carlos_isoft

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Ayuda Urgente... Porfa
« en: Lunes 4 de Septiembre de 2006, 06:19 »
0
Holas a todos soy nuevo en este foro, pero tengo muchos conocimientos sobre el  programa c++; ya que curso el primer año de mi carrera ingeneria de software. Actualmente llevo el curso de programacion 2 y el trabajo se trata sobre la creación de un juego de carreras muy simple. Aquí les mando el código que he realizado hasta el momento. Espero que me ayuden a concluirlo porque este trabajo tengo que presentarlo este martes 05 de septiembre.    
Lo que me falta es lo siguiente:
el primero que llegue a la linea anunciarlo como ganador en esa posición.
si hay varios ganadores la posicion mas cercana es la ganadora.
y por último que revisen si se puede mejorar mi código.  

[/CODE]

#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#define max 5

typedef struct bicicleta
{
 int x,y,dx;
 int color;
}tbicicleta;
void bicicleta(int c, int x, int y)
{
 textcolor©;
 gotoxy(x,y);
 cprintf(",___V");
 gotoxy(x,y+1);
 cprintf("o   o");
}
void Borra(int x, int y)
{
 gotoxy(x,y);
 printf("      ");
 gotoxy(x,y+1);                        
 printf("      ");
}                                          
                                                                                           
int Pasa(int n)                            
{
 return(n<66?0:1);
}
void linea_final()
{
 int i;
 for (i=1;i<25;i++)
 {
  gotoxy(70,i);
  textcolor(12);
  cprintf("%c\n",176);
 }
}
void main()
{
 int i;
 tbicicleta img[max];
 linea_final();
 randomize();
 for(i=0;i<max;i++)
 {
  img.x=3;
  img.y=3+4*i;
  img.color=10+i;
 }
 for(i=0;i<max;i++)
  bicicleta(img.color,img.x,img.y);
  gotoxy(35,10);
  printf("PULSE ENTER PARA INICIAR");
  getch();
  clrscr();
 int p,g=0,bici[max]={0,0,0,0};
 while(1)
 {
  for(i=0;i<max;i++)
  {
   do
   {
    if(g)
    getch();
    bici=bici+img.x+random(3)+1;
    gotoxy(bici,img.y);
    bicicleta(img.color,bici,img.y);
    p=bici;
   }while((g=Pasa(p)));
  }
  linea_final();
  Sleep(700);
  for(i=0;i<max;i++)
  Borra(bici,img.y);
 }
}

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Ayuda Urgente... Porfa
« Respuesta #1 en: Martes 5 de Septiembre de 2006, 05:34 »
0
Citar
el primero que llegue a la linea anunciarlo como ganador en esa posición.
si hay varios ganadores la posicion mas cercana es la ganadora.
y por último que revisen si se puede mejorar mi código

no entiendo la duda
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Ayuda Urgente... Porfa
« Respuesta #2 en: Martes 5 de Septiembre de 2006, 05:42 »
0
UN ERROR ECONTRE POR AHORA QUE ES QUE TU FUNCION QUE BORRA LA BICICLETA PARA QUE AVANCE NO LA BORRA ENTERA. FIJATE BIEN.
EL RESTO ESTA BIEN.

PODRIAS PONER UNA VERIFICACION DE QUE DONDE SE ENCUENTRA LA BICICLETA Y QUE SI ESTA ESTA EN LA META ESCRIBA EN ESTA POCICION EN OTRO COLOR "GANADOR" Y PODES AGREGARLE UN "cout<<"\a\a"" CUANDO IMPRIME GANADOR.

BYTES
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: Ayuda Urgente... Porfa
« Respuesta #3 en: Martes 5 de Septiembre de 2006, 06:13 »
0
SE NOTA QUE ESTOY AL PEDO. ACA LO CORREGI BASTANTE. FIJATE SI ES LO QUE QUERIAS.

Código: Text
  1. #include &#60;stdio.h&#62;
  2. #include &#60;conio.h&#62;
  3. #include &#60;windows.h&#62;
  4. #include &#60;stdlib.h&#62;
  5. #define max 5
  6.  
  7. typedef struct tbicicleta{
  8.         int x,y,dx;
  9.         int color;
  10.         } tbicicleta;
  11.  
  12. void bicicleta(int c, int x, int y){
  13.         if(x&#60;66){
  14.                 textcolor(c);
  15.                 gotoxy(x,y);
  16.                 cprintf(&#34;,___V&#34;);
  17.                 gotoxy(x,y+1);
  18.                 cprintf(&#34;o  o&#34;);}
  19.         else{
  20.                 textcolor(10);
  21.                 gotoxy(x,y);
  22.                 cprintf(&#34;GANADOR&#34;);};
  23.         }
  24.  
  25. void Borra(int x, int y){
  26.         gotoxy(x,y);
  27.         printf(&#34;     &#34;);
  28.         gotoxy(x,y+1);
  29.         printf(&#34;     &#34;);
  30.         }
  31.  
  32. int Pasa(int n){
  33.         return(n&#60;66?0:1);
  34.         }
  35.  
  36. void linea_final(){
  37.         int i;
  38.         for (i=1;i&#60;25;i++){
  39.                 gotoxy(70,i);
  40.                 textcolor(12);
  41.                 cprintf(&#34;%c&#092;n&#34;,176);
  42.                 }
  43.         }
  44.  
  45. void main(){
  46.         int i;
  47.         tbicicleta img[max];
  48.         linea_final();
  49.         randomize();
  50.         for(i=0;i&#60;max;i++){
  51.                 img[i].x=3;
  52.                 img[i].y=3+4*i;
  53.                 img[i].color=10+i;
  54.                 }
  55.  
  56.         for(i=0;i&#60;max;i++){
  57.                 bicicleta(img[i].color,img[i].x,img[i].y);}
  58.         gotoxy(35,10);
  59.         printf(&#34;PULSE ENTER PARA INICIAR&#34;);
  60.         getch();
  61.         clrscr();
  62.         int p,g=0,bici[max]={0,0,0,0};
  63.         while(1){
  64.                 for(i=0;i&#60;max;i++){
  65.                         do{
  66.                         if(g)
  67.                                 getch();
  68.                         bici[i]=bici[i]+img[i].x+random(3)+1;
  69.                         gotoxy(bici[i],img[i].y);
  70.                         bicicleta(img[i].color,bici[i],img[i].y);
  71.                         p=bici[i];
  72.                         }while((g=Pasa(p)));
  73.                 }
  74. linea_final();
  75. Sleep(300);
  76. for(i=0;i&#60;max;i++)
  77. Borra(bici[i],img[i].y);
  78. }
  79. }
  80.  
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]