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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Juego de la Oca
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego de la Oca  (Leído 6,685 veces)
cristiansbd95

Desconectado Desconectado

Mensajes: 55



Ver Perfil
Juego de la Oca
« en: 13 Abril 2016, 16:41 pm »

Hola compañeros, voy hacer el juego de la oca en C# como proyecto final y me gustaría saber si alguno de vosotros lo ha hecho y como lo ha hecho si con un vector o una matriz,etc...
El proyecto se ejecuta en una terminal de Windows no tiene gráficos.

Gracias!


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Juego de la Oca
« Respuesta #1 en: 13 Abril 2016, 17:18 pm »

Esto va al foro de .NET pero ya te digo: un juego de la oca es un array de 63 casillas. Que sobre un tablero lo veas en espiral es para ahorrar espacio. En verdad es un juego muy sencillo de realizar.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Juego de la Oca
« Respuesta #2 en: 13 Abril 2016, 17:20 pm »

No lo hice, pero sin duda, yo haría un vector. Al fin y al cabo, es en realidad una línea larga de casillas en espiral.

En fin, N fichas, un turno cada una, y según la casilla en la que caiga, un efecto u otro.

Código
  1. int dado = 4;
  2. jugador[n] += 4;
  3. ...
  4. if(casilla[ jugador[n] ] == Casillas.Muerte)
  5.    jugador[n] = 0;

Así algo que te pueda dar ideas xD

Ya luego, disfruta haciéndolo tú :p
En línea

cristiansbd95

Desconectado Desconectado

Mensajes: 55



Ver Perfil
Re: Juego de la Oca
« Respuesta #3 en: 26 Abril 2016, 14:26 pm »

Hola, estoy haciendo el juego y nose como hacer por ejemplo cuando el jugador caiga en la casilla de la prision contar los turnos y hacer que tire el dado el otro jugador, si me pudierais dar ideas seria la ostia.

Gracias
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Juego de la Oca
« Respuesta #4 en: 26 Abril 2016, 17:59 pm »

Puedes guardar en cada jugador un número de turnos sin jugar. Si es 0, juegas. Sino, le restas 1 y vas a otro jugador.
En línea

cristiansbd95

Desconectado Desconectado

Mensajes: 55



Ver Perfil
Re: Juego de la Oca
« Respuesta #5 en: 6 Mayo 2016, 17:25 pm »

Hola compañeros, llevo ya un tiempo pensando en como hacerlo pero la verdad es que mi cabeza me va a estallar, el problema es que no se como puedo hacer para manejar los turnos cuando jugador 1 por ejemplo cae en "x" casilla y tiene que tirar dos veces el jugador 2. Os pego el codigo, gracias de antemano.
Código:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 63

void mostrarayuda();
void tirardado(int *jugador1,int *jugador2,int *turno);
void jugar(int *ganador);
void oca_jugador1(int *jugador1,int *tablero,int *turno,int *flag);
void oca_jugador2(int *jugador2,int *tablero,int *turno,int *flag);
void puente(int *jugador1,int *jugador2,int *tablero,int *turno);
void muerte(int *jugador1,int *jugador2,int *tablero,int *turno);
//void posada(int *tablero,int *flag);
void dados(int *jugador1,int *jugador2,int *tablero,int *turno);
void laberinto(int *jugador1,int *jugador2,int *tablero,int *turno);

///Turno == 0 ---Jugador 1
///Turno == 1 ---Jugador 2

void main(){



printf(" :::            :::           ::::::::   ::::::::      :::  \n");
printf(":+:          :+: :+:        :+:    :+: :+:    :+:   :+: :+:\n");
printf("+:+         +:+   +:+       +:+    +:+ +:+         +:+   +:+\n");
printf("+#+        +#++:++#++:      +#+    +:+ +#+        +#++:++#++:\n");
printf("+#+        +#+     +#+      +#+    +#+ +#+        +#+     +#+ \n");
printf("#+#        #+#     #+#      #+#    #+# #+#    #+# #+#     #+# \n");
printf("########## ###     ###       ########   ########  ###     ###\n\n\n");
int opcion;
int ganador=0;




    do {
        system("color 0""A");

        printf("1.- Mostrar ajuda\n");
        printf("2.- Jugar\n");
        printf("0.- Salir\n");

        printf("\nTria una opcion: ");
        fflush(stdin);
        scanf("%d", &opcion);



        switch (opcio) {
            case 1:mostrarayuda();
                break;
            case 2:jugar(&ganador);
                fflush(stdin);
                break;
            case 0:
            default :;
        }
    } while (opcion != 0);


}
void mostrarayuda()
{
    printf("El juego de la oca es un juego de mesa para dos o más jugadores. Cada jugador avanza su ficha por un tablero\n");
    printf("en forma de espiral con 63 casillas con dibujos. Dependiendo de la casilla en la que se caiga, se puede avanzar o \n");
    printf("por el contrario retroceder, y en algunas de ellas está indicado un castigo. En su turno cada jugador tira un dado \n");
    printf("que le indican el número de casillas que debe avanzar. Gana el \n");
    printf("juego el primer jugador que llega a la casilla 63, el jardin de la oca.\n");
    system("pause");
    system("cls");

}
void tirardado(int *jugador1,int *jugador2,int *turno)
{
    int dado;
    srand(time(NULL));
    dado=rand()%6+1;

    if(*turno==0)
    {
         system("color 0""E");
         printf("Turno jugador 1\n");
         system("pause");
         printf("\nResultado de dado: %d\n",dado);
        *jugador1=*jugador1+dado;
        //*jugador1=5;
        printf("posicion vector 1-[%d]",*jugador1);

    }
   else if(*turno==1)
   {
       system("color 0""B");
        printf("Turno jugador 2\n");
        system("pause");
        printf("\nResultado de dado: %d\n",dado);
       *jugador2=*jugador2+dado;
        //*jugador2=63;
       printf("posicion vector 2-[%d]",*jugador2);


   }
}

void jugar(int *ganador)
{
 int i;
 int flag=0;
 int flag2=0;
 int tablero[N];
 int jugador1=0,jugador2=0,turno=0;




while(*ganador !=1 && *ganador !=2)
{
    tirardado(&jugador1,&jugador2,&turno);
    int i;

     for(i=0;i<N;i++)
    {
        tablero[i]=0;
    }

    printf("\n");



        tablero[jugador1]=1;
        tablero[jugador2]=2;


    for(i=0;i<N;i++)
    {
        printf("[%d]",tablero[i]);
    }
    printf("\n");

    system("pause");
    system("cls");

    if(jugador1>=63)
    {
        *ganador=1;
        printf("Jugador 1 Ha ganado!!!Enhorabuena!!!\n");
    }
    else if(jugador2>=63)
    {
        *ganador=2;
        printf("Jugador 2 Ha ganado!!!Enhorabuena!!!\n");

    }

    flag=0;
    flag2=0;


    if(turno==0)
    {

        oca_jugador1(&jugador1,tablero,&turno,&flag);
        puente(&jugador1,&jugador2,tablero,&turno);
        printf("turno %d\n",turno);
        //posada(tablero,&flag2);
        dados(&jugador1,&jugador2,tablero,&turno);
        printf("turno %d\n",turno);
        laberinto(&jugador1,&jugador2,tablero,&turno);
        printf("turno %d\n",turno);
        muerte(&jugador1,&jugador2,tablero,&turno);
        printf("turno %d\n",turno);
        printf("valor de flag: %d\n",flag);
        if(flag==1)
        {
            turno=0;
        }
        else
        {
            turno=1;
        }
    }
    else if(turno==1)
    {

        oca_jugador2(&jugador2,tablero,&turno,&flag);
        puente(&jugador1,&jugador2,tablero,&turno);
        //posada(tablero,&flag2);
        dados(&jugador1,&jugador2,tablero,&turno);
        laberinto(&jugador1,&jugador2,tablero,&turno);
        muerte(&jugador1,&jugador2,tablero,&turno);
        if (flag==1)
        {
            turno=1;
        }
        else
        {
            turno=0;
        }

    }

   /*  if(flag2==1)///flag2 == 1 jugador 1 ha caido en la posada
        {
            //printf("%d",turno);
            printf("Entra flag2 jug1\n");
            for(i=0;i<1;i++)
            {
                turno=0;
                tirardado(&jugador1,&jugador2,&turno);
                tablero[jugador2]=2;

            }
            turno=0;
            //printf("flag %d turno pasa %d",flag,turno);
        }
    if(flag2==2)
    {
            printf("Entra flag2 jug2\n");
            for(i=0;i<1;i++)
            {
                turno=0;
                tirardado(&jugador1,&jugador2,&turno);
                tablero[jugador1]=1;

            }
            flag2=0;
            turno=0;
             //printf("flag %d turno pasa %d",flag,turno);
    }

*/
}


}

 void oca_jugador1(int *jugador1,int *tablero,int *turno,int *flag)
{

    if(tablero[5]==1 || tablero[14]==1 || tablero[23]==1 || tablero[32]==1 || tablero[41]==1 || tablero[50]==1)
    {
        printf("******Jugador 1 -- De oca a oca y tiro por que me toca\n******");
        *jugador1=*jugador1+4;
        *flag=1;
    }
    else if(tablero[9]==1 || tablero[18]==1 || tablero[27]==1 || tablero[36]==1|| tablero[45]==1 || tablero[54]==1)
    {
        printf("*****Jugador 1 -- De oca a oca y tiro por que me toca********\n");
        *jugador1=*jugador1+5;
        *flag=1;


    }
}
void oca_jugador2(int *jugador2,int *tablero,int *turno,int *flag)
{
    if(tablero[5]==2 || tablero[14]==2 || tablero[23]==2 || tablero[32]==2 || tablero[41]==2 || tablero[50]==2)
    {
        printf("******Jugador 2 -- De oca a oca y tiro por que me toca*******\n");
        *jugador2=*jugador2+4;
        *flag=1;


    }
    else if(tablero[9]==2 || tablero[18]==2 || tablero[27]==2 || tablero[36]==2|| tablero[45]==2 || tablero[54]==2)
    {
        printf("*******Jugador 2 -- De oca a oca y tiro por que me toca*******\n");
        *jugador2=*jugador2+5;
        *flag=1;
    }
}

 void muerte(int *jugador1,int *jugador2,int *tablero,int *turno)
{
    if(*turno==0)
    {
        if(tablero[58]==1)
        {
            system("color 0""4");
            printf("****Has caido en la casilla de la muerte,vuelves a la primera casilla!!!!****");
            *jugador1=0;
            tablero[*jugador1]=1;
            *turno=1;
            printf("jugador 1: %d",*jugador1);
        }
    }
    else if(*turno==1)
    {
        if(tablero[58]==2)
        {
            system("color 0""4");
            printf("****Has caido en la casilla de la muerte,vuelves a la primera casilla!!!!****");
            *jugador2=0;
            tablero[*jugador2]=1;
            *turno=0;
        }
    }

}
void dados(int *jugador1,int *jugador2,int *tablero,int *turno)
{
    if(*turno==0)
    {
        if(tablero[26]==1)
        {
            printf("****Jugador 1:De dado a dado y tiro y tiro porque me ha tocado****\n");
            *jugador1=53;
            *turno=1;
        }
        else if(tablero[53]==1)
        {
            printf("****Jugador 1:De dado a dado****\n");
            *jugador1=26;
            *turno=1;
        }

    }


    else if(*turno==1)
    {
        if(tablero[26]==2)
        {
            printf("****Jugador 2:De dado a dado****\n");
            *jugador2=53;
            *turno=0;
        }
        else if(tablero[53]==2)
        {
            printf("****Jugador 2:De dado a dado****\n");
            *jugador2=26;
            *turno=0;
        }

    }
}
void laberinto(int *jugador1,int *jugador2,int *tablero,int *turno)
{
     if(*turno==0)
    {
        if(tablero[42]==1)
        {
            printf("****Jugador 1:Has caido en el laberinto,retrocedes hasta la casilla 30****\n");
            *jugador1=30;
             *turno=1;
        }

    }

    else if(*turno==1)
    {
        if(tablero[42]==2)
        {
            printf("****Jugador 2:Has caido en el laberinto,retrocedes hasta la casilla 30****\n");
            *jugador2=30;
            *turno=0;
        }

    }
}
/*void posada(int *tablero,int *flag2)
{

    if(tablero[19]==1)
        {
            *flag2=1;

        }
    else if(tablero[19]==2)
    {
        {
            *flag2=2;

        }
    }

}
*/
void puente(int *jugador1,int *jugador2,int *tablero,int *turno)
{
    if(*turno==0)
    {
        if(tablero[6]==1)
        {
            printf("*****Jugador 1***De puente a puente me lleva la corriente******\n\n");
            *jugador1=*jugador1+6;

        }
        else if(tablero[12]==1)
        {
            printf("*****Jugador 1***De puente a puente me lleva la corriente******\n\n");
            *jugador1=*jugador1-6;

        }
    }
    else if(*turno==1)
    {
        if(tablero[6]==2)
        {
            printf("*****Jugador 2***De puente a puente me lleva la corriente******\n\n");
            *jugador2=*jugador2+6;

        }
        else if(tablero[12]==2)
        {
            printf("*****Jugador 2***De puente a puente me lleva la corriente******\n\n");
            *jugador2=*jugador2-6;

        }
    }
}

« Última modificación: 6 Mayo 2016, 17:27 pm por cristiansbd95 » 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