¿Cómo escribir un juego de adivinanzas en C?
*/
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
#include lt; tiempo.hgt;
//#define NULL 0
/** ************************* ** ************************************************* *** ************************************************* / p>
estructura de la computadora //definir la estructura del reproductor del sistema
{
char player[30];
int score;
int tiempos;
int tiempo;
}cpt[1000]={"jugador1", 100, 1, 1, "jugador2", 100, 1, 1 , "jugador3", 100, 1, 1, "jugador4", 100, 1, 1, "jugador5", 100, 1, 1, };
FILE *in; el archivo que registra la información del jugador
int número,rool; //rool: la esquina de la posición del jugador en la matriz. número: el número de elementos de la matriz.
/****************************************** ************************************************** * **************************** **/
int h() //genera un número aleatorio ( 1, 2 o 3);
{
int k, n
n=rand()3
retorno n; 1;
}
/************************ ******* * ************************************************** *******************************************/
int str_to_num(char a[]) // Presentamos la función str_to_num: ¡Convierte cadena (cadena) a formato entero (int)!
{
int i=strlen(a)-1, num=0, tiempo=1
for(;igt;=0;i- -)
{
num=num (a[i]-'0')*tiempo;
tiempo=tiempo*10;
}
return(núm);
}
/****************** ************************************************** * ********************** **************************** * *******/
void b(int n)
{
cambiar((int)(n/20)) p >
{
case(0): printf("Rango: escoria de la jungla");
case(1):
case; ( 2): printf("Rango: Principiante"); break
caso(3):
caso(4):
caso(5) : printf("Rango: Hijo pródigo del lago"); break;<
caso(6):
caso(7):
caso( 8 ):
case(9): printf("Rango: Oficial");
case(10):
case(11):
caso(12):
caso(13):
caso(14):
caso(15): p >
caso(16):
caso(17):
caso(18):
caso(19): printf("Rango :
cambiar((int)(n/1000))
{
caso(
0): printf("Rango: Maestro de una escuela de artes marciales");
default:
{
switch((int)(n). /1000))
{
case(0): printf("Rango: Maestro de una escuela de artes marciales");
case(1); ):
caso(2):
caso(3):
caso(4): printf("Rango: Jianghu Qiwen");
caso(5):
caso(6):
caso(7):
caso(8): p> p>
case(9): printf("Nivel: Buscador solitario");
Predeterminado: printf("Nivel:
}
}
}
/************************ ******** ***** ********************************************** ****** *******************************************/
int readfile(void) //leer archivo
{
int i, número=5;
if((in= fopen("sunyi.txt ", "rb"))!=NULL)
{
fread(amp; número, tamaño de(int), 1, in ); p>
for (i=0; ilt; number; i )
{
fread(amp; cpt[i], sizeof( struct computer), 1, en
}
fclose(en);
}
retorno(número);
/************************************ ****** ****** ********************************************** ******* *******************************/
void writefile() / /escribir archivo
{
int i
in=fopen("sunyi.txt", "wb"); fwrite(amp; número, tamaño de(int ), 1, in
for(i=0; ilt; número; i )
{
fwrite(amp; cpt[i], tamaño de(estructura computadora), 1, en
}
fclose(en
}
/******* ******************************************* ******* *********
************************************************** * ************/
void rule() //función de regla
{
printf(" Juego de adivinanzas \n" );
printf("Regla:\n");
printf(" Ingrese "N" o "n" para ver los puntos. Por primera vez jugando , los jugadores pueden obtener 100 monedas de oro gratis en cada juego");
printf("Le solicita que ingrese el depósito, ¡el depósito debe ser mayor que 1 moneda de oro! (Incluyendo 1), solicita ingresar 1~3 cuando comienza el juego");
printf("1 representa piedra, 2 representa tijeras y 3 representa papel. Al mismo tiempo, el sistema también se registrará para determinar el ganador de acuerdo con reglas comunes");
printf("Recibirá un depósito; de lo contrario, se deducirá. Cuando los puntos sean inferiores a 5 puntos, tendrá cinco oportunidades de obtener 30 puntos sin cargo del system");
printf("Cuando las monedas de oro del jugador sean cero (y después de usarlas cinco veces, obtendrás 30 puntos gratis); 30 monedas de oro), el sistema le indicará al jugador que el juego ha terminado y se elimina ");
printf("Excepto usuario.\n");
printf(" # Este sistema generará automáticamente 5 jugadores del sistema para que se turnen para jugar contigo Antes de que comience el juego, los jugadores deben iniciar sesión y activar su propio ");
printf(" Registro del juego, si es la primera vez que juegas, ingresa "registrarse" y. luego ingrese el nuevo nombre de usuario para registrarse, si es el anterior");
printf("Si ya jugó, ingrese "entrada" y luego ingrese "nombre de usuario" para iniciar sesión.\ Nota: Este sistema permite el almacenamiento de información para múltiples usuarios de este registro \n\n");
}
/******** ********************************************** ****** ******************************************* * **** *******************/
int Registere() //Inicia sesión y regístrate antes de comenzar el juego.
{
char ch[30];
int i;
bucle4:
printf(" \n ¿Es la primera vez que juegas? Ingresa "registrarse" para registrarte. \n"Ingresa "entrada" para iniciar sesión \n");
loop3:
scanf( "s", ch);
if(strcmp("register", ch)==0)
{
loop2:
printf("Ingrese un nuevo nombre de usuario: (menos de 30 caracteres)");
scanf("s", ch
for(i=5; ilt; número; i )
{
if(strcmp(cpt[i].player, ch)==0)
{
printf("¡Este usuario ha sido registrado! ¡Error en el registro! ¡Regístrese nuevamente!\n"
Saltar a loop2; }
}
strcpy(cpt[número].jugador, ch
cpt[número].score=100; > cpt[número].time= cpt[número].times=1;
número =1;
writefile()
printf(" Registro ¡Exitoso! ¡Inicie sesión y juegue con su usuario!: ");
goto loop4;
}
else if(strcmp("entry", ch )==0)
{
printf("Ingrese el nombre de usuario para iniciar sesión: "); /p>
for(i=5;ilt;number;i)
{
if(strcmp(cpt[i].player, ch)==0 )
{
printf("¡Inicie sesión correctamente! (Inicie sesión correctamente)");
printf("Jugará con su usuario.}
}
if(i==número)
{
printf("Error de ingreso o no se registró o este usuario ha sido eliminado por el sistema por perder todo el oro! \¡Vuelva a ingresar su nombre de usuario para iniciar sesión! ")
ir a loop4;
}
}
más
{
printf("No ingresaste ni "registro" ni "ent
ry"."El sistema no puede ejecutar su comando, vuelva a ingresar:\n");
goto loop3;
}
return(i)
}
/********************************* * ************************************************* * ********************************************/
void game() // La función principal del juego y la consulta
{
int o, p
char a[10] , wether[ 1];
if(cpt[rool].time==1)printf("El sistema de juego en este juego te dará 100 monedas gratis.\n");
if(cpt[rool].scorelt;5amp;amp;cpt[rool].timeslt;=5)
{
if(cpt[rool] .timeslt; 5)
{
printf("Tus puntos han sido menos de 5 puntos, el sistema te regaló por última vez 30 monedas de oro\n", cpt[rool]. veces) ;
}
}
else
{
printf("Tus puntos han sido menos de 5 puntos, el sistema te regala por última vez 30 monedas de oro \n");
}
cpt[rool].score =30;
cpt[ rool ].times =1;
juego();
}
if(cpt[rool].score==0)
{
int q;
printf("¡No puedes jugar sin puntos! Tu usuario será eliminado, si aún quieres continuar jugando, vuelve a solicitar un usuario\nJUEGO ENCIMA ! \n");
for(q=rool; qlt; número-1; q )
{
strcpy(cpt[q].player, cpt[q 1].jugador);
cpt[q].time=cpt[q 1].time;
cpt[q].times=cpt[q 1] .times;
cpt[q].score=cpt[q 1].score;
}
número-=1;
escribir archivo();
regresar
}
más
{
printf("Afilar
ella para continuar el juego, ingresa 'y' o 'Y ' para continuar el juego\n");
scanf("s",wether);
if(strcmp( "y", ya sea)! =0 amp; strcmp("y", ya sea)! ;
}
else
{
loop1:
printf(" Ingrese su depósito para esto juego o escribe 'N' o 'n' para comprobar la clasificación de los puntos\n");
loop5:
scanf("s",a);
/****************************************** ****** ******************************************** ****** ******************************************** ***** */
if(a[0]=='n'||a[0]=='N') //busca el ranking
{
int i[5]={-1,-1,-1,-1,-1,-1}, j, k, d=0, e=0, línea=-1;
for(k=1;klt;=5;k)
{
for(d=0;dlt;5;d)
p>{
if(d!=i[0]amp;amp;d!=i[1]amp;amp;d!=i[2]amp;amp;d! =i[ 3]amp;amp;d!=i[4])romper;
}
for(j=0;jlt.number;j)
{
if(cpt[j].scoregt;=cpt[d].scoreamp;amp;j!=i[0]amp;amp;j!=i[1]amp; amp;j !=i[2]amp;amp;j!=i[3]amp;amp;j!=i[4])d=j;
}
i[ k-1]=d;
if(d==rool)
{
línea=k;
} p>
printf("\nJugador: 10s, número de monedas: 4d,", cpt[d].jugador, cpt[d].score
b(cpt[ d]. puntuación);
}
if(line!=-1)
{
printf("/n\ nSu puntuación actual : d,\nRango: d,\n", cpt[rol].score, línea);
b(cpt[rol].score);
printf ("\ n\n");
}
else
{
printf("/n\nTu cu
La puntuación actual es: d,\nNo está entre los 5 primeros\n", cpt[rool].score);
b(cpt[rool].score);
printf( "\n\n");
}
juego();
}
/******* ************************************************** ** ************************************************* *** *******************************************/
else //juega el juego
{
int g=0, le=strlen(a);
for(; glt;le ;g )
{
if(!(a[g]gt;='0' amp;amp;a[g]lt;='9') ) p>
{
printf("Has ingresado un carácter que no es reconocido por el sistema de juego, vuelve a escribir: "
break
; p>}
}
if(glt.le)
{
ir a bucle5
<; p> }int dinero=str_too_num(a);
if(dinero==0)
{
printf(" El depósito no puede ser '0 ', vuelva a ingresar: ");
goto loop5;
}
if(moneylt; 0)
{
printf("El depósito no puede ser negativo, vuelva a ingresar: "
goto loop5
}
printf ("Jugar esta ronda contigo es el jugador del sistema playerd.\n", (cpt[rool].time-1)5 1);
if(cpt[(cpt[rool]. tiempo-1 )5].puntuaciónlt; 5)
{
cpt[(cpt[rool].tiempo-1)5].puntuación =50;
printf( "Tu oponente tiene menos de 5 monedas de oro, el sistema le regala 50 monedas de oro\n");
}
printf("El depósito que estableciste es d\n" , dinero) ;
if(moneygt;cpt[rool].score)
{
printf("¡Lo siento, no tienes suficiente oro! ¡Por favor vuelva a ingresar!\n");<
/p>
ir a loop1;
}
if(moneygt;cpt[(cpt[rool].time-1)5].score)
{
printf("¡Lo siento, tu oponente tiene poco oro! ¡Vuelve a ingresar! \n");
goto loop1
} p>
if(1gt; 0)
{
printf("¡El juego está comenzando, por favor golpea! (1 representa piedra, 2 representa tijeras, 3 representa papel) ");
scanf("d",amp;o);
p=h();
cambiar(o)
{
caso 1:
{
printf("Los jugadores lanzan golpes: roca\n"
break;
}
caso 2:
{
printf("El jugador lanza puñetazo: tijeras\n");
descanso
}
caso 3:
{
printf("Jugador Punch out: Boo\n") ;
romper;
}
}
cambiar(p)
{
caso 1:
{
printf("Perforación del sistema: Piedra\n");
ruptura
}
caso 2:
{
printf("Sistema de punzonado: cortapelos\n");
descanso
}
caso 3:
{
printf("Sistema de perforación: tela\n");
romper;
}
interruptor(o-p)
{
caso 0:
{
printf("¡Empate! El sistema no cambiará la cantidad de monedas de oro que tienes. Tu saldo es: d\n", cpt[rool].score);
break;
}
caso 1:
caso -2:
{
printf("Perdiste, el sistema te descontará d monedas, tu saldo es : d \n",dinero,cpt[rol].score-money);
cpt[rol].score-=dinero;
cpt[(cpt[rol]. tiempo- 1)5].score=cpt[(cpt[rool].time-1 )5].score dinero
descanso
}
caso -1:
caso 2:
{
printf("Ganaste, el sistema te dará d monedas, tu saldo es: d\n", dinero, cpt[rool].score money);
cpt [rool].score =dinero;
cpt[(cpt[rool].time-1)5].score=cpt[(cpt[rool].time-1)5].score-money ;
pausa;
}
}
cpt[rool].time =1;
escribirarchivo ();
}
juego();
}
}
}
}
}
main() //función principal
{
srand( (sin firmar)tiempo(0)
número=readfile();
regla();
rool=registe();
}