29/11/2015, 12:04
|
| | Fecha de Ingreso: noviembre-2015
Mensajes: 4
Antigüedad: 9 años, 1 mes Puntos: 0 | |
Respuesta: Juego de la suerte dejo el código con sus traducciones importantes. Gracias y por favor no se asusten por tantas líneas. La práctica hace al maestro y yo estoy es este camino.
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
printf("\t\tGluecksspiel\n"); /*juego de la suerte*/
int n =3;
char *spi1, *spi2, *spi3;
int i;
int j;
char g;
spi1 = (char*) malloc(N*sizeof(char));
spi2 = (char*) malloc(N*sizeof(char));
spi3 = (char*) malloc(N*sizeof(char));
if(spi1 != NULL)
{
printf("\nSpieler 1 gibt 3 Zahlen zwischen 1 und 9 ein :\n" );/*jugador 1 escoge 3 numeros entre l y 9*/
for (i = 0; i < n; i++)
scanf("%s", &spi1[i]);
//gets(spi1);
}
else {
printf("\nNicht genuegend Speicherplatz fuer spi1.\n");/*no hay suficiente espacio*//*este solo es para comprobar el malloc*/
}
if(spi2 != NULL)
{
printf("\nSpieler 2 gibt 3 Zahlen von der 6 Reste Zahlen ein :\n" );/*jugador 2 escoge 3 numeros de los 6 que quedan*/
for (i = 0; i < n; i++)
scanf("%s", &spi2[i]);
//gets(spi2);
}
else {
printf("\nNicht genuegend Speicherplatz fuer spi2.\n");/*no hay suficiente espacio*//*este solo es para comprobar el malloc*/
}
if(spi3 != NULL)
{
printf("\nSpieler 3 gibt die letze 3 Zahlen ein :\n" );/*jugador 3 escoge los ultimos 3 numeros */
for (i = 0; i < n; i++)
scanf("%s", &spi3[i]);
//gets(spi3);
}
else {
printf("\nNicht genuegend Speicherplatz fuer spi3.\n");/*no hay suficiente espacio*//*este solo es para comprobar el malloc*/
}
printf("\nGeben Sie bitte die Gewinnerzahl ein : ");/*por favor ingrese el numero ganador*/
scanf("%s", &g);
do{/*aqui hay que buscar el jugador que tiene el numero ganador, ya lo corrri y lo encuentra! con el detalle que me imprime tres veces el mensaje*/
for(i = 0; i < n; i++)
if(spi1[i] == g)
printf("Der Gewinner ist der Spieler 1");/*el ganador es el jugador 1*/
else if(spi2[i] == g)
printf("Der Gewinner ist der Spieler 2");/*el ganador es el jugador 2*/
else
printf("Der Gewinner ist der Spieler 3");/*el ganador es el jugador 3*/
}while(0);
//do{/*aqui esta el código para encontrar los repetidos, funciona bien ya lo probe aun asi miralo seguro se puede depurar */
/*y claro si no hay repetidos que pida el ingreso del numero ganador y a buscar al jugador que tiene el número. */
/*pero no encuentro la forma para que el programa pare cuando haya repetidos!!*/
/*LO HE INTENTADO TODO y AUN CUANDO HAY REPETIDOS EL PROGRAMA CONTINUA; PIDE AL GANADOR Y LO BUSCA :(:( */
/*por el momento he dejado el bucle do while y en las indicaciones he puesto que numeros se deben ingresar pero no es lo que necesito*/
/*como ultima cosa: no se como reducir estos miles de bucles!!! no me da mi materia gris para hacerlo mas optimo el código :D*/
for(i = 0; i < n; i++){
for(j = i + 1; j < n; j++){
if(spi1[j] == spi1[i])
printf("Eine Zahl wurde von dem Spieler 1 zwei Mal gewaehlt\n");
/*un numero fue escogido dos veces por el jugador 1*/
}
}
for(i = 0; i < n; i++){
for(j = i + 1; j < n; j++){
if(spi2[j] == spi2[i])
printf("Eine Zahl wurde von dem Spieler 2 zwei Mal gewaehlt\n");
/*un numero fue escogido dos veces por el jugador 2*/
}
}
for(i = 0; i < n; i++){
for(j = i + 1; j < n; j++){
if(spi3[j] == spi3[i])
printf("Eine Zahl wurde von Spieler 3 zwei Mal gewaehlt\n");
/*un numero fue escogido dos veces por el jugador 2*/
}
}
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(spi1[i] == spi2[j])
printf("Eine gleiche Zahl wurde von dem Spieler 1 und Spieler 2 gewaelht\n");/*un numero fue escogido por el jugador 1 y el jugador 2*/
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(spi2[i] == spi3[j])
printf("Eine gleiche Zahl wurde von dem Spieler 2 und Spieler 3 gewaelht\n");/*un numero fue escogido por el jugador 2y el jugador 3*/
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(spi1[i] == spi3[j])
printf("Eine gleiche Zahl wurde von dem Spieler 1 und Spieler 3 gewaelht\n");/*un numero fue escogido por el jugador 1 y el jugador 3*/
//}while(0);
//printf("Geben Sie bitte die Gewinnerzahl ein: ");/*introducir el numero ganador*/
//scanf("%s", &g);
free(spi1);
free(spi2);
free(spi3);
return 0;
} |