elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  ayuda tres en linea en dev-c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda tres en linea en dev-c++  (Leído 4,752 veces)
maxfireg

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda tres en linea en dev-c++
« en: 2 Mayo 2012, 01:09 am »

tengo la sgte duda el sgt trabajo si me compila pero no me imprime si gane empate o perdi ayuda porfavorrr:



#include <stdio.h>
#include <stdlib.h>
#include <TIME.H>
int c[9]={0,0,0,0,0,0,0,0,0}, turno, jugador;
char denuevo=' ';

char tirada(int i);
int ganador();
void print_gato();
void turno_jugador();
void turno_computadora();


int main()
{
do
{
    int h, menu;
    printf(" Bienvenido a el juego del gato,\n elija una opcion :\n 1) Jugar.\n 2)salir\n");
    scanf("%d", &menu);
    printf("\n-1-|-2-|-3-\n");
    printf("-4-|-5-|-6-\n");
     printf("-7-|-8-|-9-\n");
   
    switch(menu)
    {
         case 1:
                 
                     
                        jugador = 1;
                        turno = 0;
                        do
                        {
                              turno++;
                              if (jugador) turno_jugador(); else turno_computadora();
                              print_gato();
                         }
                         while ((!ganador())&&(turno<=8));
                         switch (ganador())
                         {
                                case 0:
                                     printf("Ha Empatado");
                                     break;
                                     
                                case 1:
                                     printf("Ha Ganado");
                                     break;
                               
                                case -1:
                                     printf("Ha Ganado La Maquina, Lo Siento");
                                     break;
                                     system("pause");
                         }
          case 2:
               printf("Fue un placer jugar contigo");
               getchar();
               exit(1);
              break;   
         }
         printf("Volver al menu? (si o no) ");
         scanf("%s", &denuevo);
         if (denuevo>=97) denuevo-=32;
         if ((denuevo!='s')&&(denuevo!='n'))
         for (h=0;h<=8;h++) c[h]=0;     
         system("pause");   
}
while (denuevo=='S');             
getchar();

}
void print_gato()
{
     printf("\n %c |%c |%c \n---|---|---\n %c |%c |%c \n---|---|---\n \n%c |%c |%c\n", tirada(c[0]), tirada(c[1]), tirada(c[2]), tirada(c[3]), tirada(c[4]), tirada(c[5]), tirada(c[6]), tirada(c[7]), tirada(c[8]));
}

char tirada(int i)
{
     switch (i)
     {
            case (-1):
                 return 'X';
                 break;
                 
            case (1):
                 return 'O';
                 break;
                 
            default:
                    return ' ';
     }
}

int ganador()
{
    if ((c[0]+c[1]+c[2]==3)|| (c[3]+c[4]+c[5]==3)|| (c[6]+c[7]+c[8]==3)|| (c[6]+c[3]+c[0]==3)|| (c[7]+c[4]+c[1]==3)|| (c[8]+c[5]+c[2]==3)|| (c[6]+c[4]+c[2]==3)|| (c[8]+c[4]+c[0]==3)) return 1;
    else if ((c[0]+c[1]+c[2]==-3)|| (c[3]+c[4]+c[5]==-3)|| (c[6]+c[7]+c[8]==-3)|| (c[6]+c[3]+c[0]==-3)|| (c[7]+c[4]+c[1]==-3)|| (c[8]+c[5]+c[2]==-3)|| (c[6]+c[4]+c[2]==-3)|| (c[8]+c[4]+c[0]==-3)) return -1;
    else return 0;
   
    system("pause");
}

void turno_jugador()
{
     int quieres;
     printf("Le toca, En que casilla Desea jugar? [1-9] ");
     scanf("%d",&quieres);
     
     if ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0))
     {
                       do
                       {
                                     printf("Ha Ingresado Un Movimiento Invalido, Ingrese una de las opciones requeridas");
                                     fflush(stdin);
                                     
                                     scanf("%d",&quieres);
                       }
                       while ((quieres>9)|| (quieres<1)|| (c[quieres-1]!=0));
     }
     
     c[quieres-1]=1;
     jugador = 0;
}

void turno_computadora()
{
     int quiero;
     time_t t;
     printf("le toca a la maquina, juega en la casilla: ");
     do
     {
                  srand(time(&t));
                  quiero=rand()%9;
     }
     while (c[quiero]!=0);
     printf("%dn", quiero + 1);
     
     c[quiero]=-1;
     jugador = 1;
}



   


En línea

TomaSs

Desconectado Desconectado

Mensajes: 101



Ver Perfil
Re: ayuda tres en linea en dev-c++
« Respuesta #1 en: 30 Mayo 2012, 13:27 pm »

Pues en el primer switch(menu) te falta el break en el case 1, creo que puede ser por eso ;)


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines