• Jueves 14 de Noviembre de 2024, 23:04

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - lestatll

Páginas: [1]
1
C/C++ / Re: Colores
« en: Lunes 3 de Julio de 2006, 22:24 »
Cita de: "mbrenes"
color visual c++ por consola
Gracias!

2
C/C++ / Colores
« en: Lunes 3 de Julio de 2006, 03:26 »
Por favor, alguien sabe cómo puedo hacer para cambiar el color del texto y del fondo utilizando VISUAL C++ ???

Gracias!

3
C/C++ / Re: Archivos De Cabecera Help!
« en: Domingo 2 de Julio de 2006, 23:50 »
Cita de: "hernanvid"
la verdad si las quitas te dejaria de funcionar correctamente, lo mejor es que busques funciones que hagan lo mismo que las que esta usando ese codigo.
en dev cpp tiene una implementacion de conio.h
en dónde???

4
C/C++ / Re: Archivos De Cabecera Help!
« en: Domingo 2 de Julio de 2006, 22:46 »
Cita de: "X.Cyclop"
Quitando librerías como conio y funciones no stándards como clrscr(), gotoxy()...

Es cosa de LEER los errores que te pone.
Si quito esas funciones no alteraré el correcto uso del programa? No podría agregar conio.h a la librería en vez de mutilar el programa???

Por favor AYUDA!!!

Cuál es el equivalente en C++ de randomize??

5
C/C++ / Re: Archivos De Cabecera Help!
« en: Domingo 2 de Julio de 2006, 17:34 »
Cita de: "Geo"
Es casi obvio que estás tratando de compilar el código que tienes de batalla naval en Visual C++. El código que tienes fué creado con y para Turbo C++, bien puedes tratar de modificarlo y que compile en VC++, pero (basándome en tu otro post) mejor sería que te consigas Turbo C++ y trabajes con él.

Saludos,
JJ (Geo).
Cómo puedo hacer para que compile en Visual C++??

6
C/C++ / Re: Batalla Naval Help!
« en: Domingo 2 de Julio de 2006, 17:30 »
No entiendo por qué no compila. Mi duda PUNTUAL es por qué me arroja estos errores:

--------------------Configuration: NAVAL - Win32 Debug--------------------
Compiling...
NAVAL.CPP
C:\Documents and Settings\P C\Configuración local\Temp\wz6d5f\NAVAL.CPP(29) : error C2065: 'delay' : undeclared identifier
C:\Documents and Settings\P C\Configuración local\Temp\wz6d5f\NAVAL.CPP(182) : error C2065: 'randomize' : undeclared identifier
C:\Documents and Settings\P C\Configuración local\Temp\wz6d5f\NAVAL.CPP(189) : error C2065: 'random' : undeclared identifier
Error executing cl.exe.

7
C/C++ / Archivos De Cabecera Help!
« en: Domingo 2 de Julio de 2006, 16:44 »
S.O.S. Cuando voy a ejecutar un código que estoy seguro que está bien me saltan los siguientes errores

c:\archivos de programa\microsoft visual studio\vc98\include\conio.h(61) : warning C4229: anachronism used : modifiers on data are ignored
c:\archivos de programa\microsoft visual studio\vc98\include\conio.h(62) : warning C4229: anachronism used : modifiers on data are ignored
c:\documents and settings\p c\configuración local\temp\wzff48\naval\naval.c(180) : warning C4013: 'delay' undefined; assuming extern returning int
c:\documents and settings\p c\configuración local\temp\wzff48\naval\naval.c(625) : warning C4013: 'sound' undefined; assuming extern returning int
c:\documents and settings\p c\configuración local\temp\wzff48\naval\naval.c(627) : warning C4013: 'nosound' undefined; assuming extern returning int
c:\documents and settings\p c\configuración local\temp\wzff48\naval\naval.c(3105) : warning C4013: 'randomize' undefined; assuming extern returning int

Alguien tiene idea si es por que me falta algún archivo de cabecera?? De dónde puedo bajarlos? En qué carpeta se instalan??

8
C/C++ / Batalla Naval Help!
« en: Domingo 2 de Julio de 2006, 16:24 »
Mayday!! Help!! Necesito con suma urgencia hacer una batalla naval en C. Yo ya tengo el código en C++, pero el que tengo es demasiado complicado. Lo único que me pidieron es una batalla naval usuario contra máquina en una matriz de 10 X 10  con 4 barcos de 1, 3 barcos de 2, 2 barcos de 3 y una barco de 4

El código que tengo incluye presentación, menúes, créditos... cosas que no tengo idea cómo sacar. Además de Cpp. lo tengo que llevar a C.

Por favor, de este trabajo depende si recurso o no la materia!! S.O.S!!!

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
void presentacion ();
void marco (int,int,int,int);
void menu ();
menu2 ();
void game ();
void tablaComp ();
void tablaHuman ();
void bomba ();
void bombaVS ();
void gameover ();
void guias (int);
void del (int,int,int);
char barcoComp [10][12], barcoHuman [10][12]; //variables globales de las matrices de los barquitos
int fila=4, columna=5, opc, nivel=1, flotaC, flotaH, ciclo=0;
main () //funcion principal del programa
{clrscr ();
 presentacion ();
 menu ();
 clrscr ();
 marco (28,6,61,12);
 textcolor (GREEN);
 gotoxy (30,8); cprintf ("Has elegido salir del programa");
 gotoxy (30,9); cprintf ("Gracias por usar este Software");
 gotoxy (35,10); cprintf ("(Sodi Dan Herrera)");
 delay (4000);
 return 0;
}


/***** Funci¢n que hace la presentaci¢n del juego: cr‚ditos *****/
void presentacion ()
{marco (9,5,76,14);
 textcolor (CYAN);
 gotoxy (32,7); cprintf ("Juego de Batalla Naval");
 gotoxy (19,8); cprintf ("Creado por                     en mayo del 2004");
 textcolor (LIGHTRED); gotoxy (30,8); cprintf ("\"t|-|œ 9(_)’|\\|6()\"");
 textcolor (CYAN);
 gotoxy (18,9); cprintf ("Estudiante de Ingenier¡a en Desarrollo de Software");
 gotoxy (11,10); cprintf ("Orgullosamente acapulque¤o!! (¨porqu‚ ser  lo de los barquitos?)");
 gotoxy (14,11); cprintf ("Dedicado especialmente a una fan tica de los barquitos...");
 textcolor (MAGENTA);
 gotoxy (30,12); cprintf ("­­para mi querida MARIE!!");
 getch ();
}


/***** Funci¢n que imprime un marco de cualquier dimensi¢n que parpadea *****/
void marco (int x,int y,int xx,int yy)
{int a,b;
 textcolor (BLUE + BLINK);
 gotoxy (x,y); cprintf ("É"); //alt+201
 gotoxy (xx,y); cprintf ("»"); //alt+187
 gotoxy (x,yy); cprintf ("È"); //alt+200
 gotoxy (xx,yy); cprintf ("¼"); //alt+188
 for (a=x+1;a<xx;a++)
  {gotoxy (a,y); cprintf ("Í"); // alt+205 = Í
   gotoxy (a,yy); cprintf ("Í");}
 for (b=y+1;b<yy;b++)
  {gotoxy (x,B); cprintf ("º"); // alt+186 = º
   gotoxy (xx,B); cprintf ("º");}
}


/*****
 Funci¢n que muestra un menu que permite ir directamente a jugar
 con las configuraciones por default, configurar las propiedades del juego
 o en su caso salir del programa.
 *****/
void menu ()
{textcolor (MAGENTA);
 clrscr ();
 gotoxy (30,2); printf ("<<< Batalla Naval >>>");
 textcolor (LIGHTBLUE);
 gotoxy (12,8); cprintf ("Seleccione una opci¢n:");
 gotoxy (15,9); cprintf ("0. Salir...");
 gotoxy (15,10); cprintf ("1. A jugar!!");
 gotoxy (15,11); cprintf ("2. Dimensi¢n de las tablas de los jugadores");
 if (nivel==1) {gotoxy (15,12); cprintf ("3. Nivel del juego: FACIL");}
 if (nivel==2) {gotoxy (15,12); cprintf ("3. Nivel del juego: MEDIO");}
 if (nivel==3) {gotoxy (15,12); cprintf ("3. Nivel del juego: EXPERTO");}
 menu2 ();
}


/***** Continuaci¢n del men£ principal *****/
menu2 ()
{do
 {del (9,36,39);
  gotoxy (36,8); scanf ("%d", &opc);
  if (opc==1)
   {if (nivel==1) {flotaC=columna*fila/4;}
    else {flotaC=columna*fila/3;}
    game ();}
  else
  if (opc==2)
   {textcolor (RED);
    gotoxy (15,11); cprintf ("2. DIMENSION DE LAS TABLAS DE LOS JUGADORES");
    textcolor (MAGENTA);
    gotoxy (15,12); cprintf ("     Especifica el n£mero de columnas de las tablas");
    gotoxy (23,13); cprintf ("(M¡n. ¯¯5    Max. ¯¯12):");
    do
     {del (13,48,50);
      gotoxy (48,13); scanf ("%d", &columna);
      if (columna<5 || columna>12)
       {textcolor (YELLOW);
   gotoxy (15,14); cprintf ("El numero permitido de columnas est  entre 5 y 12");}
     } while (columna<5 || columna>12);
    del (14,15,65);
    textcolor (MAGENTA);
    gotoxy (20,15); cprintf ("Especifica el n£mero de filas de las tablas");
    gotoxy (23,16); cprintf ("(M¡n. ¯¯4    Max. ¯¯10):");
    do
     {del (16,48,50);
      gotoxy (48,16); scanf ("%d", &fila);
      if (fila<4 || fila>10)
       {textcolor (YELLOW);
   gotoxy (15,17); cprintf ("El numero permitido de filas est  entre 4 y 10");}
     } while (fila<4 || fila>10);
    del (17,15,63);
    menu ();}
  else
  if (opc==3)
   {do
    {textcolor (RED);
     gotoxy (15,12); cprintf ("3. NIVEL DEL JUEGO:");
     textcolor (MAGENTA);
     gotoxy (20,13); cprintf ("Selecciona el nivel de juego:");
     gotoxy (23,14); cprintf ("1. F cil (marinerito)");
     gotoxy (23,15); cprintf ("2. Medio (comandante)");
     gotoxy (23,16); cprintf ("3. Experto (capit n)");
     del (13,50,53);
     gotoxy (50,13); scanf ("%d", &nivel);}  while (nivel!=1 && nivel!=2 && nivel!=3);
    menu ();}
  else
  if (opc==0) {return 0;}
  else
   {gotoxy (20,18); printf ("Esa no es una opci¢n v lida, intente de nuevo...");}
 } while (opc!=1 && opc!=2 && opc!=3 && opc!=0);
 return 0;
}


/***** Funci¢n que ejecuta las dem s funciones del juego *****/
void game ()
{int x,y;
 clrscr ();
 if (nivel==1) {flotaH=flotaC;}
 if (nivel==2) {flotaH=flotaC-flotaC/4;}
 if (nivel==3)
  {flotaH=flotaC;
   flotaC=flotaH-flotaH/4;}
 tablaComp ();
 tablaHuman ();
 do
 {bomba ();
  if (flotaH>0)
  bombaVS ();
  textcolor (CYAN);
  if (flotaH>9) {gotoxy (15,17); cprintf ("Barcos Usuario: %d", flotaH);}
   else {gotoxy (15,17); cprintf ("Barcos Usuario:  %d", flotaH);}
  if (flotaC>9) {gotoxy (15,18); cprintf ("Barcos enemigos restantes: %d", flotaC);}
   else {gotoxy (15,18); cprintf ("Barcos enemigos restantes:  %d", flotaC);}
 } while (flotaC>0 && flotaH>0);
 for (y=0;y<fila;y++) //imprime las casillas en las que estaban los barcos del enemigo
  {for (x=0;x<columna;x++)
    {if (barcoComp [y]
  • =='')

    {textcolor (BLUE);
     gotoxy ((x*2)+4,y+3); cprintf ("%c", barcoComp [y]
  • );}

    }
  }
 getch ();
 gameover ();
}


/***** Funci¢n que captura e imprime la tabla de la computadora *****/
void tablaComp ()
{randomize ();
 int cont, x, y;
 for (y=0;y<fila;y++) //llena la matriz con cualquier valor
  {for (x=0;x<columna;x++) {barcoComp [y]
  • ='0';}

  }
 for (cont=flotaC; cont>0; cont--)
  {do //coloca los barcos de acuerdo al nivel y las dimensiones de la matriz
   {x=random (columna); //el numero de columnas es el rango del eje X
    y=random (fila); //el numero de filas es el rango del eje Y
    if (barcoComp [y]
  • !='')

     {barcoComp [y]
  • ='';}

   } while (barcoComp [y]
  • !='');

  }
 textcolor (CYAN);
 for (x=0;x<columna;x++) //imprime la matriz en pantalla
  {for (y=0;y<fila;y++) {gotoxy ((x*2)+4,y+3); cprintf ("%s", y%2 ? "(" : ")");}
  }
 guias (1); // numeros guias de la tabla de la PC
}


/***** Funci¢n que captura e imprime la tabla del usuario *****/
void tablaHuman ()
{int x, y, cont;
 for (y=0;y<fila;y++) //llena la matriz con cualquier valor
  {for (x=0;x<columna;x++) {barcoHuman [y]
  • ='0';}

  }
 textcolor (CYAN);
 for (x=0;x<columna;x++) //imprime la matriz en pantalla
  {for (y=0;y<fila;y++) {gotoxy ((x*2)+34,y+3); cprintf ("%s", y%2 ? "(" : ")");}
  }
 guias (31); // numeros guias de la tabla del usuario
 for (cont=0; cont<flotaH; cont++)
  {do
    {textcolor (MAGENTA);
     if (flotaH-cont>9) {gotoxy (15,17); cprintf ("Barcos restantes: %d", flotaH-cont);}
     else {gotoxy (15,17); cprintf ("Barcos restantes:  %d", flotaH-cont);}
     gotoxy (20,18); cprintf ("Introduzca las coordenadas de su %d§ barco:", cont+1);
     gotoxy (25,19); cprintf ("Eje Y (horizontal):");
     do
      {del (19,45,48);
       gotoxy (45,19); scanf ("%d", &y);
       del (20,20,54);
       if (y<=0 || y>fila)
   {textcolor (YELLOW);
    gotoxy (20,20); cprintf ("El valor debe estar entre 1 y %d", fila);}
      } while (y<=0 || y>fila);
     textcolor (MAGENTA);
     gotoxy (25,21); cprintf ("Eje X (vertical):");
     do
      {del (21,43,46);
       gotoxy (43,21); scanf ("%d", &x);
       del (22,20,54);
       if (x<=0 || x>columna)
   {textcolor (YELLOW);
    gotoxy (20,22); cprintf ("El valor debe estar entre 1 y %d", columna);}
      } while (x<=0 || x>columna);
     if (barcoHuman [y-1][x-1]=='')
      {textcolor (GREEN);
       gotoxy (20,23); cprintf ("Intentas poner un barco sobre otro barco!!");
       delay (1500);
       del (23,20,70);}
     textcolor (LIGHTBLUE + BLINK);
     } while (barcoHuman [y-1][x-1]=='');
   gotoxy ((x*2)+32,y+2); cprintf (""); //imprime en pantalla la ubicacion del barco
   barcoHuman[y-1][x-1]='';} //coloca el barco en matriz
 del (19,45,48); del (17,15,34); del (18,20,63);
 del (19,25,45); del (21,25,47);
}


/***** Funci¢n de la jugada del computador,
 tira una bomba en una (x,y) posici¢n al azar
*****/
void bomba ()
{int x, y, cont=1;
 ciclo=0;
 if (nivel==3)
  {cont=0;} //aumenta la dificultad en el 3§ nivel (la PC intenta 2 veces si falla)
 delay (1000); //Una breve pausa para ver el tiro de la computadora
 for (cont; cont<2; cont++)
  {do
   {textcolor (CYAN);
    x=random (columna); //columna es el rango del eje X
    y=random (fila); //fila es el rango del eje Y
    if (barcoHuman [y]
  • =='')

     {flotaH--;
      textcolor (YELLOW + BLINK);
      gotoxy (25,23); cprintf ("Acaban de hundir un barco tuyo!!");
      delay (3000);
      textcolor (RED);
      del (23,25,57);
      cont=2;} //ya hundido un barco del usuario, se hace falsa la condicion FOR
    if (barcoHuman [y]
  • !='X')

     {barcoHuman [y]
  • ='X';

      ciclo=1;} //ya hecha la jugada, se hace falsa la condicion WHILE
   } while (ciclo!=1); //no se permite una repetici¢n de jugada (si ya se hizo en tal posici¢n)
  }
 gotoxy ((x*2)+34,y+3); cprintf ("X");
 textcolor (CYAN);
  if (flotaH>9) {gotoxy (15,17); cprintf ("Barcos Usuario: %d", flotaH);}
   else {gotoxy (15,17); cprintf ("Barcos Usuario:  %d", flotaH);}
  if (flotaC>9) {gotoxy (15,18); cprintf ("Barcos enemigos restantes: %d", flotaC);}
   else {gotoxy (15,18); cprintf ("Barcos enemigos restantes:  %d", flotaC);}
}


/***** Funci¢n de la jugada del usuario *****/
void bombaVS ()
{int x,y;
 textcolor (CYAN);
 gotoxy (20,20); cprintf ("Introduce las coordenadas de tu lanzamiento");
 gotoxy (20,21); cprintf ("Eje Y:    Eje X:");
 ciclo=0;
 do
  {do
    {gotoxy (27,21); scanf ("%d", &y);
     del (22,20,62);
     if (y<=0 || y>fila)
      {textcolor (GREEN);
       gotoxy (20,22); cprintf ("El valor debe estar entre 1 y %d", fila);}
    } while (y<=0 || y>fila);
   textcolor (CYAN);
   gotoxy (20,21); cprintf ("Eje Y: %d  Eje X:", y);
   do
    {gotoxy (37,21); scanf ("%d", &x);
     del (22,20,52);
     if (x<=0 || x>columna)
      {textcolor (GREEN);
       gotoxy (20,22); cprintf ("El valor debe estar entre 1 y %d", columna);}
    } while (x<=0 || x>columna);
   textcolor (CYAN);
   gotoxy (20,21); cprintf ("Eje Y:    Eje X:   ");
   if (barcoComp [y-1][x-1]=='')
    {flotaC--;
     gotoxy (20,23); cprintf ("Eres genial!! Uno menos");
     delay (1500);
     del (23,20,43);
     textcolor (RED);}
   if (barcoComp [y-1][x-1]=='0' || barcoComp [y-1][x-1]=='')
    {barcoComp [y-1][x-1]='X';
     ciclo=1;} //ya hecha la jugada se hace falsa la condici¢n
   else
    {gotoxy (20,22); cprintf ("Ahi ya bombardeaste. Intenta en otro lado");}
  } while (ciclo!=1);
   gotoxy ((x*2)+2,y+2); cprintf ("X");
}


/**** Funci¢n que imprime el nivel, ganador, y las estad¡sticas finales ****/
void gameover ()
{clrscr ();
 marco (15,6,62,11);
 textcolor (LIGHTRED+BLINK);
 if (nivel==1) {gotoxy (25,8); cprintf ("Nivel de Dificultad: FACIL");}
 else
 if (nivel==2) {gotoxy (25,8); cprintf ("Nivel de Dificultad: MEDIO");}
 else {gotoxy (25,8); cprintf ("Nivel de Dificultad: EXPERTO");}
 if (flotaC==0 && flotaH==0)
  {textcolor (RED);
   gotoxy (17,9); cprintf ("No est s tan fregado, mi amigo. Empataste!!");
  }
 else
 if (flotaC==0)
  {if (nivel!=3)
   {gotoxy (20,12); cprintf ("Has derrotado a la flota enemiga...");}
   else
    {textcolor (WHITE+BLINK);
     gotoxy (20,12); cprintf ("Lo lograste. Eres todo un Popeye!!");}
   textcolor (LIGHTRED+BLINK);
   gotoxy (25,9); cprintf ("Tus barcos restantes: %d", flotaH);}
 if (flotaH==0)
  {textcolor (LIGHTRED+BLINK);
   gotoxy (25,9); cprintf ("Barcos enemigos restantes: %d", flotaC);
   textcolor (LIGHTGRAY);
   gotoxy (10,12); cprintf ("Changos!! sabes?? creo que deber¡as dormir m s seguido...");
  }
 getch ();
 getch ();
 menu ();
}


/***** Funci¢n que imprime gu¡as (coordenadas) para localizar los barcos *****/
void guias (int x)
{int a,y;
 textcolor (WHITE);
 for (a=1;a<=columna;a++) //impresi¢n eje X
  {gotoxy (a*2+x+1,1); cprintf ("%d", a);}
 for (a=1;a<=columna;a++) //impresi¢n eje X
  {gotoxy (a*2+x+1,2); cprintf ("");} //alt + 31
 for (y=1;y<=fila;y++) //impresi¢n eje y
  {gotoxy (x,y+2); cprintf ("%d", y);}
}


/***** La estrictamente necesaria funci¢n que elimina l¡neas *****/
void del (int y,int x,int xx)
{int a;
 for (a=x;a<=xx;a++) {gotoxy (a,y); printf (" ");}
}


Muchas gracias!!!

Páginas: [1]