Matuk.com

Foros

Staff el Domingo 4 de noviembre de 2007 With 0 Comentarios
  • Sharebar
 
Debe estar conectado para participar


Registrarse? | Perdió su Contraseña?

Buscar en los foros:


 






Para búsquedas, el mínimo de caracteres es de 4 y el máximo de 84
Uso de Comodín:
*  coincide cualquier número de caracteres    %  coincide exactamente un caracter

Ayuda a inexperto en C++

UsuarioEntrada

8:35 pm
octubre 1, 2008


gustavoflores

Miembro Premium

entradas: 107

1

Esto lo hago desesperado, y esperanzado en q alguno de ustedes me pueda ayudar, se lo cuento a quien mayor confianza les tengo… el codigo lo pego abajo

Soy nuevo en la programacion, el lenguaje q mas uso es el C++, actualmete, lo ultimo q estudie fueron funciones, y arreglos…

Para reafirmar esos conocimientos trate de hacer con codigo de C++ el juego del gato (por lo menos algo q se le pareciera mucho), según yo estoy bien en el codigo, y el programa deberia funcionar a la perfeccion (se q estoy mal, jeje por q el programa no lo hace)… explico donde creo esta el error (de nuevo, segun yo, solo hay dos opciones en donde puedo estar mal)…

El error es q no saca quien gana, cuando deberia hacerlo…

El codigo lo pego abajo

1.-  Hice 8 sumas(hay ocho opciones de ganar en el gato), utilize 1 para jugador uno, y 7 para el jugador dos, asi q si la suma es 3, deberia ganar el uno.. y si es 21 deberia ganar el 2 (esto lo hice en una funcion)… y estas sumas determinaba el Status estadoDelJuego, osea q para mi, el error puede estar en las sumas, o en el cambio de Status (ambas cosas vienen en la funcion)…

de antemano, gracias por su ayuda, se q es muy engorroso checar errores q no se muestran a la hora de compilar…

#include <cstdlib>
#include <iostream>
#include <iomanip> // Nota, recordar q es necesario para utilizar setw…

using namespace std;
using std::cout;
using std::cin;
using std::setw;
int suma1 = 0, suma2 = 0, suma3 = 0, suma4 = 0, suma5 = 0, suma6 = 0, suma7 = 0, suma8 = 0, k, m;
#include <cstdlib> // Es necesario, para utlizar srand
#include <ctime> // Para el argumento time, la semilla del sram
int apocoGanaste (); // Prototipo de la funcion
int gato [3] [3];//declaracion del arreglo…
enum Status { CONTINUA, GANAJUGADOR1, GANAJUGADOR2, EMPATARON };
Status estadoDelJuego;
int main()
{
    int bandera, i, j, contadordemuestra = 0;

    // Reglas del juego…
    cout << "   Hola, bienvenido a una version un tanto bizarra del popular juego, El gato.\\n";
    cout << "   Este programa fue elabora por Gustavo Flores Becerril, iniciado el lunes 29 de septiembre de 2008 a las 7 con 19\\n   Realize un esfuerzo por apegarme lo mas posible al juego original, pero debido a que aun tengo pequeñas habilidades programando, no sera identico…\\n";
    cout << "A continuacion te mostrare las diferencias entre el juego original y este, q estas por probar, habiso que las reglas del juego son identicas, solo explicare las cosas que cambian…";
    cout << "\\n\\n 1.-  A diferencia del juego original, aqui utlizaremos el numero 1 (en lugar de O) y el numero 7 (en lugar de X)";
    cout << "\\n\\n 2.-  Debido al poco conocimiente de programacion del creador de este proyecto, no se pudo colocar las dos lineas verticales (paralelas) y las dos lineas horizontales (paralelas entre si, y perpendiculares a las vertiales), asi q espero por favor hagas tu maximo esfuerzo en imaginarlas\\n";
    cout << "\\n\\n\\n   Explicado lo anterio, procederemos al juego, ¿que les parece si desidimos quien sera el proximo jugador con un numero aleatorio?, habra dos posibilidades 1 o 2, uno de ustedes elija un numero, si adibina, sera el primer jugador… Si estan listos para sacar el numero aleatorio presiona -1, o cualquier otro valor para salir\\n";
    cin >> bandera;
    if ( bandera != -1)
         {
         system ("PAUSE");
         return EXIT_SUCCESS;
         }
    srand( time( 0 ) );         
    cout << "\\n ¿Quien comienza?, el numero generado fue:" << setw (5) << (1 + rand() % 2) << "\\n\\n\\n";
    cout << "\\n Una regla extra, acontinuacion se muestra como ingresar las coordenadas, con numeros del 1 al 9… el orden es el siguiente\\n\\n\\n" << setw (15);
   
    for (i = 1; i <= 3; i++){
        for (j = 1; j <=3; j++){
            ++contadordemuestra;
            gato [i] [j] = contadordemuestra;
            cout << gato [i] [j] << setw (2);
            if (j == 3){
                  cout << "\\n" << setw (15);
                       }// fin del if
            }// fin del ciclo anidado for
            }// fin del primer for
   
    cout << "\\n Este es un ejemplo de lo que sucederia, si el jugador uno, seleccionara la casilla 9 en su primer turno…\\n\\n\\n" << setw (15);
    for (i = 1; i <= 3; i++){
        for (j = 1; j <=3; j++){
            gato [i] [j] = 0;
            if ( i == 3 && j == 3){
                 gato [i] [j] = 1;}//fin del ciclo if
            cout << gato [i] [j] << setw (2);
            if ( i == 3 && j == 3){
                 gato [i] [j] = 0;}
            if (j == 3){
                  cout << "\\n" << setw (15);
                       }// fin del if
            }// fin del ciclo anidado for
            }// fin del primer for
            int contadordejugadas = 0;
            int ubicacion;// determina donde el jugador va a colocar su movimiento
    do{    
            contadordejugadas++;
            if ((contadordejugadas % 2) != 0)
            {
               cout << "\\n Jugador 1 has tu movimiento…\\n\\n\\n";
            }
            else {
                 cout << "\\n Jugador 2 has tu movimiento…\\n\\n\\n";
                 }
            cin >> ubicacion;// determina donde el jugador va a colocar su movimiento
            switch ( ubicacion ) {
                  
                   case 1:
                        if (contadordejugadas % 2 != 0){
                                              gato [1] [1] = 1;}
                                              else{
                                                   gato [1] [1] = 7;}
                        break;
                       
                   case 2:
                        if (contadordejugadas % 2 != 0){
                                              gato [1] [2] = 1;}
                                              else{
                                                   gato [1] [2] = 7;}
                        break;
                       
                   case 3:
                        if (contadordejugadas % 2 != 0){
                                              gato [1] [3] = 1;}
                                              else{
                                                   gato [1] [3] = 7;}
                        break;
                  
                   case 4:
                        if (contadordejugadas % 2 != 0){
                                              gato [2] [1] = 1;}
                                              else{
                                                   gato [2] [1] = 7;}
                        break;
                  
                   case 5:
                        if (contadordejugadas % 2 != 0){
                                              gato [2] [2] = 1;}
                                              else{
                                                   gato [2] [2] = 7;}
                        break;
                  
                   case 6:
                        if (contadordejugadas % 2 != 0){
                                              gato [2] [3] = 1;}
                                              else{
                                                   gato [2] [3] = 7;}
                        break;
                  
                   case 7:
                        if (contadordejugadas % 2 != 0){
                                              gato [3] [1] = 1;}
                                              else{
                                                   gato [3] [1] = 7;}
                        break;
                  
                   case 8:
                        if (contadordejugadas % 2 != 0){
                                              gato [3] [2] = 1;}
                                              else{
                                                   gato [3] [2] = 7;}
                        break;
                  
                   case 9:
                        if (contadordejugadas % 2 != 0){
                                              gato [3] [3] = 1;}
                                              else{
                                                   gato [3] [3] = 7;}
                        break;
                  
                   default:
                           cout << "Introdujeron una casilla inexistente\\n";
                  
                   }// Fin del switch
            cout << "\\n" << setw (15);              
            for (i = 1; i <= 3; i++){
                for (j = 1; j <=3; j++){    
                    cout << gato [i] [j] << setw (2);
                    if ( j == 3){ // inicio
                         cout << "\\n" << setw (15);
                                } // if final
                                } // final de for anidado
                                }// final del primer for
    if ( contadordejugadas >= 5 && contadordejugadas <= 9){ // if inicio, primer if
          int apocoGanaste (void);
          if (estadoDelJuego == GANAJUGADOR1 ){ // if inicio
                             cout << "Felicidades jugador 1, has vencido en este juego\\n";
                                 system("PAUSE");
                                 return EXIT_SUCCESS;}// if final
          if (estadoDelJuego == GANAJUGADOR2 ){ // if inicio
                             cout << "Felicidades jugador 2, has vencido en este juego\\n";
                                 system("PAUSE");
                                 return EXIT_SUCCESS;}// if final
          if (estadoDelJuego == CONTINUA ){// if inicio
                             cout << "\\n\\nJuego competido\\n";} // if final
    if ( contadordejugadas == 9){// if inicio
         estadoDelJuego == EMPATARON;
         cout << "\\nBuen esfuerzo de los dos, han empatado\\n";}//if final
         }// primer if, final
   
} while ( contadordejugadas < 9);
        
          
    system("PAUSE");
    return EXIT_SUCCESS;
}
// Funcion apocoGanaste
int apocoGanaste(Status)
{  
    for ( k = 1; k <= 3; k++){
        suma1 += (gato [k] [1]);}
    if (suma1 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma1 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( k = 1; k <= 3; k++){
        suma2 += (gato [k] [2]);}
    if (suma2 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma2 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if 
                    
    for ( k = 1; k <= 3; k++){
        suma3 += (gato [k] [3]);}
    if (suma3 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma3 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( m = 1; m <= 3; m++){
        suma4 += (gato [1] [m]);}
    if (suma4 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma4 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( m = 1; m <= 3; m++){
        suma5 += (gato [2] [m]);}
    if (suma5 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma5 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( m = 1; m <= 3; m++){
        suma6 += (gato [3] [m]);}
    if (suma6 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma6 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( k = 1; k <= 3; k++){
        m = 1;
        suma7 += (gato [k] [m]);
        m++;                    }
    if (suma7 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma7 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if
                  
    for ( k = 3; k >= 1; k–){
        m = 1;
        suma8 += (gato [k] [m]);
        m++;                    }
    if (suma8 == 3){
              estadoDelJuego = GANAJUGADOR1;}//fin del primer if
    if (suma8 == 21){
              estadoDelJuego = GANAJUGADOR2;}
              else{
                   estadoDelJuego = CONTINUA;}//fin del segundo if 
   
    return estadoDelJuego; 
       
}