La Red de Conocimientos Pedagógicos - Currículum vitae - Diseño de curso de lenguaje C

Diseño de curso de lenguaje C

//Mis deberes anteriores

Instrucciones del juego

1. Inicia el juego

1) El sistema genera aleatoriamente un número no repetido de N dígitos. El tamaño de N está relacionado con el nivel.

Nivel principiante: N=3 Nivel intermedio: N=4 Nivel avanzado: N=5

2) El jugador ingresa el número adivinado que no se repite y presiona Enter para enviar. La cantidad de datos enviados

debe ser consistente con el tamaño de N. Cuando la cantidad de bits de datos es mayor que N, solo se tomarán los primeros N bits.

3) El sistema compara el número enviado con el número que genera automáticamente y genera el resultado en forma de "*A*B". Entre ellos, A significa que el número es correcto y la posición correspondiente es correcta, y B significa que el número es correcto pero la posición es incorrecta. Por ejemplo: 1A3B significa que el jugador tiene 1 número en la posición correcta y el valor es correcto. Además, el jugador también ha acertado 3 números, pero en la posición incorrecta. Es decir, el jugador ha acertado 4 dígitos, pero. hay 3 ¡La ubicación de los datos es incorrecta!

4) El jugador tiene un número limitado de oportunidades de adivinar. Si la adivinanza se completa dentro del número de veces especificado, el juego tiene éxito. De lo contrario, el juego falla. Entre ellos, el número de acertijos está relacionado con el nivel:

Principiante: 10 veces Intermedio: 9 veces Avanzado: 8 veces.

5) La puntuación del jugador se calcula en función del tiempo y la cantidad de veces que se tarda en completar el juego. ¡Cuanto mayor sea el nivel del juego, menor será el número de conjeturas y mayor será la puntuación! Si la puntuación del jugador es mayor que la puntuación ya guardada por el sistema, le pedirá que ingrese la información del jugador y la guarde en la mejor clasificación.

2. Configuración de nivel

6) Los jugadores pueden configurar el nivel del juego por sí mismos: principiante, intermedio y avanzado.

3. Mejor clasificación

En Mejor clasificación, los jugadores pueden ver la mejor clasificación del juego actual.

4. Descripción del juego

En la descripción del juego, los jugadores pueden ver las reglas del juego.

3. Diseño general

Los requisitos para el diseño del módulo de este curso son los siguientes:

(1) Se requiere utilizar varios archivos para realizar el design;

(2) Se requiere implementar un diseño estructurado en cada archivo;

(3) Cada módulo se utiliza como un archivo C separado y las funciones en cada archivo son como se muestra en la tabla. Se proporciona la descripción de cada función.

(4) Las macros y estructuras de datos se colocan en el archivo de encabezado y se utiliza compilación condicional.

(1) Composición de archivos y funciones

Nombre de la función del archivo fuente u otras funciones componentes

record.h

Definición de macro ASK

Declaración de estructura Declaración de estructura

Función de biblioteca y declaración de prototipo de función

game_ control.c Game_rank Establece el nivel del juego

Game_explain Genera el juego descripción

game_register.c Tiptop_record Registra la puntuación más alta

Tiptop_output Genera la mejor clasificación

game.c Game_main Inicia el centro de juegos

Build_number Obtener el sistema Números aleatorios

Game_in_out Obtener datos del jugador y generar resultados

Time_command Control de tiempo

Game_result Salida de procesamiento de resultados del juego

record.c main Función principal

Menú de selección Menu_select

menú de procesamiento Manage_menu

(2) Diseño de funciones

1. Archivo de encabezado

Nombre de archivo: record.h

Función: declarar prototipo de función, incluidos archivos, macros personalizadas y estructuras de datos.

Requisito: Informar si el archivo se puede abrir normalmente y realizar la operación.

2. Establecer la función de nivel del juego

Prototipo de función: void Game_rank(void)

Función: el nivel del juego puede ser establecido por el jugador

Parámetro: void

Valor de retorno: void

Requisito: si el jugador no establece el nivel, el juego se jugará en el nivel junior de forma predeterminada.

3. Función de descripción del juego de salida

Prototipo de función: void Game_explique()

Función: descripción de la regla del juego de salida

Parámetros: void

Valor de retorno: void

Requisito: Explicar los botones correspondientes del juego para garantizar que el jugador siga las instrucciones.

4. Registra la función de puntuación más alta:

Prototipo de función: void Tiptop_register(int)

Función: combina la información del jugador obtenida de la función Get_player y la La información de puntuación del juego se guarda en el archivo Tiptop_register.dat en la ruta especificada

Parámetro: int S; es la puntuación del juego

Valor de retorno: void

Requisito: Requisito Reemplazar la información original de Tiptop1.txt (puntuación más alta para principiantes) Tiptop2.txt (puntuación más alta para nivel intermedio) Tiptop3.txt (puntuación más alta para nivel avanzado) con la información actual, y solo los puntos son mayores que la información original Sólo se registrará la décima

de forma sustitutiva y se ordenarán en orden descendente;

5. Genera la mejor función de clasificación:

Prototipo de función: void Tiptop_out()

Función: genera la mejor información de clasificación

Parámetros: void

Valor de retorno: void

Requisito: generar un mensaje cuando no hay información y generar toda la información en orden descendente cuando hay información.

6. Inicie la función del centro de juego

Prototipo de función: void Game_main()

Función: llame a Time_ control, Build_number y otras funciones para controlar el juego en general.

Parámetro: void

Valor de retorno: void

Requisitos: preste atención a la integridad de la función para garantizar el buen progreso del juego. Tenga en cuenta que cuando. el nivel no está configurado, el valor predeterminado C=1!

7. Obtener la función de número aleatorio del sistema.

Prototipo de función: int *Build_number()

Función: llamada al sistema lt.hgt; srand ((unsigned) time(amp;) genera un número aleatorio de N dígitos para que los jugadores lo adivinen

Parámetro: void

Valor de retorno: int 8=*i: apunta al Puntero generado a una matriz de números aleatorios

Requisitos: Los números generados son aleatorios y no se repiten. Se genera un total de N (dependiendo del nivel del juego) para formar una matriz [el nivel elemental es 3. números].

8. Función para obtener datos del juego del jugador y generar resultados del proceso del juego

Prototipo de función: void Course_in_out()

Función: enciende el juego. Los datos adivinados se leen en la memoria, se analizan y se genera el resultado.

Parámetro: void

Valor de retorno: void

Requisito: use A o El código de B representa el resultado de este tiempo, donde A significa que el valor numérico es correcto, pero la posición es incorrecta. Cada vez que se obtienen los datos de conjetura del jugador, el resultado debe analizarse y generarse, para que el jugador pueda continuar. adivinar

9. Función de control de tiempo

Prototipo de función: int Time_ control()

Función: utilizar lt; hgt; archivo, obtiene el tiempo total de juego y calcula los puntos del juego

Parámetro: void

Valor de retorno: int Tiempo: la diferencia de tiempo antes y después del juego<. /p>

Requisitos: el tiempo obtenido es en segundos y los datos son datos enteros.

10. Función de salida de procesamiento de resultados del juego

Prototipo de función: void Game_result(int). m)

Función: Calcular, obtener los puntos finales del juego

Parámetro: int m: el tiempo de todo el juego

Valor de retorno: nulo

Requisitos: Establecer diferentes métodos de puntos de juego según el nivel del juego

11 Función principal:

Prototipo de función: void main()

Función: llame a cada subfunción para realizar la operación de todo el programa

Parámetro: void

Valor de retorno: void

Requisito: controlar el suave. progreso de todo el juego

12. Seleccionar función de menú:

Prototipo de función: void Menu_select()

Función: obtener el valor de retorno de Handle_menu, seleccionar. el inicio, el nivel, la mejor clasificación, el juego mediante una declaración de cambio, la descripción, el final y otras operaciones del menú.

Parámetro: void

Valor de retorno: void

Requisito: Los datos obtenidos de Handle_menu se pueden obtener en un bucle Cuando se obtenga el número 5, elija. para salir del menú. Sal del juego; de lo contrario, el programa continuará en bucle.

13. Manejar la función del menú:

Prototipo de función: int Handle_menu()

Función: generar el mensaje de selección del menú y realizar la entrada del jugador a través de la instrucción cin, ingresar. el número de menú correspondiente al menú seleccionado y pasar el valor correspondiente a la función Menu_select

Parámetro: void

Valor de retorno: int n: seleccione el número de menú del menú correspondiente

p>

Requisito: Devuelve 0 cuando el valor de entrada no es el número de serie del menú correspondiente; de ​​lo contrario, devuelve el valor de entrada del jugador para seleccionar el menú correspondiente.

IV.código del programa

1. record.h

#include "time.h"

#includelt; ;

#includelt;stdio.hgt;

#includelt;stdlib.hgt;

#includelt;string.hgt;

//Estructura

#define MAXSIZE 20

typedef long int ElemType; //Define la estructura tiptop para almacenar la puntuación más alta del jugador y otra información

typedef struct tiptop

{

datos ElemType;

nombre de carácter[MAXSIZE];

grado de carácter[MAXSIZE];

int año;

int mes;

int día;

char semana[MAXSIZE];

int hora;

p>

int minuto;

int segundo;

}tiptop;

//variable global

int C; /C establece variables para el nivel

//Declaración de función

void Menu_select(); //Selecciona función de menú

int Manage_menu(); Función de menú

void Tiptop_record(int); // Función de registro de puntuación más alta

void Tiptop_output() // Genera la función de mejor clasificación

void Game_rank ( ); //Establece la función de nivel del juego

void Game_explain(); //Salida de la función de explicación del juego

void Game_main() //Inicia la función del centro de juego

p>

int *Build_number(); //Obtiene la función de número aleatorio del sistema

void Game_in_out() //Obtiene datos del juego y genera la función de resultado del proceso del juego

int Time_command (); / /Función de control de tiempo

void Game_result(int); //Función de salida de procesamiento de resultados del juego

2. game_ control.c

#include "record.h "

//************************

//Establecer la función de nivel de juego

//************************

void Game_rank()

{

ARCHIVO *fp;

printf("\t*************************** *****\n ");

printf("\t************1: Junior************\ n");

printf("\t************2: Intermedio *************\n");

printf( "\t************3: Avanzado************

*\n");

printf("\t******************************\n ");

printf("\tSeleccione el nivel del juego:\t");

bucle:

scanf("d",amp;C );

if(Clt;1||Cgt;3)

{

printf("\tError de entrada! Vuelva a ingresar:\t " );

ir al bucle

}

if((fp=fopen("C.txt", "w"))==NULL)

{

printf("¡Error al abrir el archivo C.txt!");

exit(1); p>

fwrite(amp;C,sizeof(int),1,fp);

fclose(fp);

if(C==1)

printf("\t¡El nivel está establecido en elemental!\n");

if(C==2)

printf("\tEl nivel está establecido en intermedio! \n");

if(C==3)

printf("\t¡El nivel está configurado en avanzado!\n");

printf( "\n");

}

//******************

/ /Función de explicación del juego de salida

//******************

void Game_explain()

{

printf("Descripción del juego:\n");

printf("\t********************* ***** **********************************\n");

printf("\ t********************************************* ********** *********\n");

printf("\t①: Cuando comienza el juego, el sistema genera aleatoriamente un mensaje no repetitivo Número de N dígitos. El tamaño y nivel de N\n" );

printf("\tRelated:\n");

printf("\tBasic: N=3. \tIntermedio: N=4\tAvanzado: N =5\t\n");

printf("\t②: El jugador ingresa el número adivinado que no se repite y presiona Enter para enviar. \n");

printf("\tEl número de bits de datos enviados debe ser coherente con el tamaño de N. Cuando el número de bits de datos es mayor que N, solo se toman los primeros N bits; \n");

printf("\t③: El sistema compara el número enviado con el número que genera automáticamente y genera el resultado\n");

printf(" \t"*A*B" Forma. A significa que el número es correcto y la posición es correcta, B significa\n");

printf("\t significa que el número es correcto pero la posición es incorrecto.

Por ejemplo: 1A3B significa que el jugador tiene una posición con 1 número\n");

printf("\tEs correcto y el valor también es correcto. Además, el jugador también acertó 3 números , pero la posición es incorrecta\n");

printf("\tSí, es decir, el jugador ha adivinado los datos de 4 dígitos, ¡pero 3 posiciones de datos son incorrectas!\n");

printf("\t④: El jugador tiene un número limitado de oportunidades de adivinar, que deben completarse dentro del número especificado de veces,\n");

printf("\tThe el juego tiene éxito. De lo contrario, el juego falla. Entre ellos, Adivina los tiempos\n");

printf("\tEl número está relacionado con el nivel:\n");

printf("\tNivel principiante: 10 veces\tNivel intermedio: 9 veces\tAvanzado: 8 veces.\t\n");

printf("\t⑤: Calcula la puntuación del jugador en función del tiempo y número de veces para completar el juego,\n");

printf("\t¡Cuanto más alto sea el nivel del juego, menos conjeturas se utilizarán y mayor será la puntuación!\n");

printf("\tSi la puntuación del jugador es mayor que la que el sistema ha guardado. Si la puntuación es alta, se le preguntará\n");

printf("\tIngrese la información del jugador y guárdalo en el mejor ranking.

\n");

printf("\t⑥: ¡Los jugadores pueden establecer sus propios niveles!\n");

printf("\t******** ************************************************** * \n");

printf("\t********************************* **** *************************\n");

printf("\n");

}

3. juego_registro.c

#include "record.h"

//******* **** ***

//Función de registrar la puntuación más alta

//***************

void Tiptop_record(int S)

{

ARCHIVO *fp

tiptop n

char *week[]={ "Domingo", struct tm *t;

printf("\t¡Felicidades!\n");

printf("\t¡Obtuviste la puntuación más alta en este juego!\n ");

//Obtener el nombre

printf("\tPor favor ingrese su nombre:");

printf("\t");

scanf("s", n.name);

//Obtener hora

time(amp; timep);

t =gmtime( amp; timep);

t-gt;tm_year=1900 t-gt;tm_year;

t-gt;tm_mon=1 t-gt;tm_mon;

t-gt;tm_hour=8 t-gt;tm_hour;

n.year=t-gt;tm_year;

n.month=t-gt; tm_mon;

n.day=t-gt;tm_mday;

strcpy(n.semana, semana[t-gt;tm_wday]);

n .hora= t-gt;tm_hora;

n.minuto=t-gt;tm_min;

n.segundo=t-gt;tm_sec;

//Obtener calificación

if(C==1)

strcpy(n.grade,"junior");

if(C==2)

strcpy(n.grade, "Intermedio");

if(C==3)

strcpy(n.grade, "Avanzado");

//Obtén la puntuación

n.data=S;

if(C==1)

{

if((fp=fopen("tiptop1.txt", "w"))==NULL)

{

printf("\tError al abrir tiptop1. archivo txt!" );

salir(1);

}

fwrite(amp; n, sizeof(struct tiptop), 1, fp

fclose(fp); p> if(C==2)

{

if((fp=fopen("tiptop2.txt", "w"))==NULL)

{

printf("\t¡No se pudo abrir el archivo tiptop2.txt!"

exit(1);

fwrite(amp; n, sizeof(struct tiptop), 1, fp

fclose(fp);

}

if(C); ==3)

{

if((fp=fopen("tiptop3.txt", "w"))==NULL)

{

printf("\t¡No se pudo abrir el archivo tiptop3.txt!");

exit(1); amp; n, tamaño de (estructura tiptop), 1, fp

fclose(fp> }

}

//******************

//Generar la mejor función de clasificación

//******* ** *******

void Tiptop_output()

{

int i;

ARCHIVO *fp;

tiptop p, q, r;

if((fp=fopen("tiptop1.txt", "r"))==NULL)

{

printf("¡Aún no hay mejor clasificación!");

exit(1

}

fread(amp; p); , tamaño de (estructura tiptop), 1, fp);

fclose(fp

if((fp=fopen("tiptop2.txt", "r"))= = NULL)

{

printf("¡Aún no hay mejor clasificación!");

exit(1); /p>

fread(amp; q, sizeof(struct tiptop), 1, fp

fclose(fp);

if((fp=fopen(" tiptop3.txt", "r"))==NULL)

{

printf("¡Aún no hay mejor ranking!");

exit( 1

}

fread(amp; r, sizeof(struct tiptop), 1, fp

fclose(fp >);

if(p.data==0amp;amp;q.data==0amp;amp;r.data==0)

{

printf("\ tNo información de puntuación más alta hasta ahora!");

printf("\n");

printf("\t¿Quieres ingresar al juego directamente? ¿Actualizar la información de mejor clasificación?\ n ");

<

p> printf("\t1: Sí\t2: No\n");

printf("\t");

i=0; > scanf("d",&i);

if(i==1)

{

printf("\tPor favor, establece el nivel del juego: \ n");

Game_rank();

Game_main();

}

else

Menu_select ();

}

else

{

printf("\tMejor clasificación:\n");

printf("\tNivel\tNombre\tPuntuación\tTiempo de juego\n");

if(p.data!=0)

{

printf("\ts\ts\td\t", p.grado, p.nombre, p.datos

printf("d—d—d \t", p.año, p.mes, p.día);

printf("s\td:d:d\n", p.semana, p.hora, p.minuto, p.segundo);

}

if(q.data!=0)

{

printf("\ts\ ts\td\t", q .grado, q.nombre, q.datos);

printf("d—d—d\t", q.año, q.mes, q.día

printf("s\td:d:d\n", q.semana, q.hora, q.minuto, q.segundo

}

if(r); .data!=0)

{

printf("\ts\ts\td\t", r.grade, r.name, r.data);

printf("d—d—d\t", r.año, r.mes, r.día);

printf("s\td :d:d\n", r.semana, r.hora, r.minuto, r.segundo);

}

if(p.data==0)

printf( "\tNo hay información de puntuación máxima para el nivel elemental!\n");

if(q.data==0)

printf("\ tNo hay información de puntuación máxima para el nivel elemental nivel intermedio!\n");

if(r.data==0)

printf("\t¡No hay información de puntuación máxima para el nivel avanzado!\n ") ;

//Restablecer las mejores clasificaciones

if(p.data!=0amp;amp;q.data!=0amp;amp;r.data!= 0)

{

printf("\t¿Restablecer la mejor clasificación?\n");

printf("\t1: Sí\t2: No\t");

i=0;

scanf("d",amp; i

if(i==1)

{

p.data=0;

q.data=0;

r.data=0;

if((fp=fopen("tiptop1.txt", "w"))==NULL)

{

printf("¡Error al abrir el archivo tiptop1.txt!");

exit(1);

}

fwrite(amp; p, sizeof(struct). tiptop ), 1, fp);

fclose(fp);

if((fp=fopen("tiptop2.txt", "w"))==NULL)< / p>

{

printf("¡Error al abrir el archivo tiptop2.txt!"); p>

fwrite(amp; q, sizeof(struct tiptop), 1,

fclose(fp);

if((fp=fopen("tiptop3); .txt ", "w"))==NULL)

{

printf("¡Error al abrir el archivo tiptop3.txt!");

salir (1) ;

}

fwrite(amp; r, sizeof(struct tiptop), 1, fp;

fclose(fp); p>

}

}

}

}

4.game.c

# include"record .h"

//Variables globales

int *c1; //El número generado se almacena en el puntero c

int A, B ; // AB Todos son parámetros importantes del juego

int N; //NUM es el número de datos a adivinar

int TIME // TIEMPO es el número de veces; adivinar el número

long int S //S son los puntos del juego

//******************

//Iniciar el juego Función central

//******************

void Game_main( )

{

ARCHIVO *fp;

int tiempo;

if((fp=fopen("C.txt", "r"))==NULL)

{

printf("¡Error al abrir el archivo C.txt!"); ");

exit(1) ;

}

fread(amp;C,sizeof(int),1,fp);

N=C 2;

TIEMPO=11-C;

si(C==1)

{

printf("\tEl nivel del juego es: ¡Principiante!\n" );

}

if(C==2)

{

printf("\tEl nivel del juego es: Intermedio! \n");

}

if(C==3)

{

impresión

tf("\tEl nivel del juego es: Avanzado!\n");

}

printf("\tEl número de dígitos a adivinar es: d, *** Hay d ¡adivina oportunidades!", N, TIME);

printf("\n");

time=Time_command();

Game_result( time) ;

}

//*********************

//Obtener sistema aleatorio función numérica

//*********************

int *Build_number()

{

int i, j, m;

tiempo_t

c1=(int *)malloc(N*sizeof(int)); p>

if(c1==NULL)

{

printf("¡Error al asignar memoria!\n");

printf( " \n");

exit(1);

}

srand((unsigned) time(amp;t));

for(i=0;ilt;N;i)

{

m=rand()10; //Generar un número

if ( i==0)

*c1=m;

else

{

for(j=0;jlt;i ; j )

{

if(m==*(c1 j)//Si los datos originales ya tienen el mismo número que m, regenera el número

{

i--;

romper

}

*(c1 i)=m;

}

}

}

printf("\tLos datos generados por el sistema son: "); i=0;ilt;N;i)

printf("*");

printf("\n");

printf ("\ t¡Puedes iniciar el juego! El cronómetro comienza...\n");

printf("\t¡No hay números duplicados!\n");

printf ("\tNúmeros separados! con espacios\n");

return c1;

}

//******** ******** **************************

//Obtener datos del juego del jugador y generar la función de resultado del proceso del juego

//****************************************** *

void Game_in_out()

{

int i, j, m

int n //adivinado por el jugador Número

int a[5]; //Una matriz compuesta por los datos adivinados por el jugador

int c[5];

int *p;

int *p;

p>

p=Build_number();

for(i=0;ilt;N;i)

{

c[i]= *(p

i);

}

for(m=0;mlt;TIME;m)

{

si(m== (TIEMPO-1))

{

printf("\t**Tenga en cuenta:**\n");

printf("\t **¡Solo queda una oportunidad!**\n");

printf("\t**¡Trabaja duro! ¡Vamos!**\n");

}

printf("\tIngrese el número para la estimación d-ésima:\t", m 1);

for(j=0;jlt;N;j)

{

scanf("d", amp; n);

a[j]=n

}

< p; > A=0;

B=0;

para(i=0; ilt; N; i )

{

if(a[i]==c[i])

A ;

}

for(i=0;ilt;N;i)

{

for(j=0;jlt;N;j)

{

si(a[i]== c [j]amp;amp;i!=j)

B ;

}

}

printf("\t El el resultado de su suposición es: \t");

printf("d A d B", A, B);

printf("\n");

//El juego controla con éxito la salida del programa de adivinanzas

if(A==N)

{

m=TIME;

}

}

//cambios de TIEMPO, registra los datos del número total de juegos

TIEMPO=i

gratis (c1);

}

//************

//Función de control de tiempo

//************

int Time_command()

{

int a; // Hora del juego

time_t first, second

first=time(NULL); //Obtener la hora del sistema

Game_in_out(); >

second= time(NULL); //Obtener la hora del sistema nuevamente

a=(int)difftime(segundo, primero

return a; >

}

//*********************

//Función de salida de procesamiento de resultados del juego

// **********************

void Game_result(int m)

{

ARCHIVO * fp;

tiptop p;

tiempo_t;

int S

int

int i=0;

int minuto, segundo;

if(A!=N)<

/p>

{

S=0;

printf("\t¡Se acabó el juego!\n");

printf("\tTú el Los puntos para este juego son:\td", S);

printf("\t¡Sigue trabajando duro!\n");

printf("\t¿Quieres continuar el juego? juego?\n");

printf("\t1: Sí\t\t\t2: No");

printf("\n");

scanf("d",&i);

if(i==1)

Game_main();

else

Menu_select();

}

else

{

printf("\t¡Felicitaciones por el éxito del juego! ") ;

printf("\n");

minuto=m/60;

segundo=m60;

printf (" \tEl tiempo que pasaste en este juego es: ");

printf("d minutos d segundos\n", minuto, segundo

printf("\n); ") ;

//Puntos

if(C==1)

{

n=11-TIME;

S=n*n*n*10-m

}

si(C==2)

{

n=10-TIEMPO

S=n*n*n*n*10-m

}

si(C= =3 )

{

n=9-TIEMPO

S=n*n*n*n*n*10-m; >

}

if(Slt;10)

{

srand((unsigned) time(amp;t));

S=rand()100;

}

printf("\tTus puntos para este juego son:\td", S);

printf("\n");

}

//Determinar si se cumple la condición de puntuación más alta

if(C==1)

{

if((fp=fopen("tiptop1.txt", "r"))==NULL)

{

printf (" ¡Error al abrir el archivo tiptop1.txt!");

printf("\n");

exit(1); p>

fread(amp; p, sizeof(struct tiptop), 1, fp

fclose(fp); (C= =2)

{

if((fp=fopen("tiptop2.txt", "r"))==NULL)

{

printf("¡Error al abrir el archivo tiptop2.txt!");

printf("\n"); /p>

}

<

p> fread(amp; p, sizeof(struct tiptop), 1, fp

fclose(fp);

}

if(C=); =3)

{

if((fp=fopen("tiptop3.txt", "r"))==NULL)

{

printf("¡Error al abrir el archivo tiptop3.txt!");

printf("\n");

exit(1);

}

fread(amp; p, sizeof(struct tiptop), 1, fp

fclose(fp); p >

if(Sgt;=(p.data))

Tiptop_record(S);

//Salto rápido

if(C= =1)

{

printf("\tTu nivel de juego es principiante, ¿quieres ingresar al nivel intermedio?\n");

printf( "\t1: Sí\t\t\t2: No");

printf("\n\t");

i=0; > scanf("d",&i);

if(i==1)

{

C=2;

if((fp=fopen("C.txt", "w"))==NULL)

{

printf("¡Error al abrir el archivo C.txt!" ) ;

exit(1);

}

fwrite(amp; C, sizeof(int), 1, fp); > fclose(fp);

Game_main();

}

else

Menu_select(); > }

if(C==2)

{

printf("\tEste es un juego intermedio. ¿Quieres ingresar a un juego avanzado? ?\n");

printf("\t1: Sí\t\t\t2: No");

printf("\n\t"); p>

i=0;

scanf("d",amp; i

if(i==1)

{

C=3;

if((fp=fopen("C.txt", "w"))==NULL)

{

printf("¡Error al abrir el archivo C.txt!");

exit(1); ; C, tamaño de (int), 1, fp);

fclose(fp>

Game_main(); > else

Menu_select();

}

}

5.record.c

#include "record. h"

//******

//Función principal

//******

void main()

{

printf("\n");

printf("********************************************* ***\ n");

printf("********************************* **** ********\n");

printf("Bienvenido al juego de adivinar números\n");

printf("\n ");

p>

printf("\tDiseñador: \n");

printf("***************** ***** *************************\n");

printf("****** ************ *******************************\n");

printf("\n") ;

Menu_select();

}

//********* ***

// Seleccionar función de menú

//************

void Menu_select()

{

mientras(1)

{

cambiar(manage_menu())

{

caso 0:

printf("¡Entrada incorrecta, vuelva a ingresar!\n");

break

caso 1:

Game_main();

descanso

caso 2:

Game_rank()

descanso

caso 3:

Tiptop_output();

descanso

caso 4:

Game_explain(); p>

ruptura

caso 5:

printf("\n");

printf("\n"); >

printf("***** ********** ** ** **** ** ** ** ** *** \n");

printf("****** ********* ** ** ** ** **** ** ** ** ***** \n");

printf(" ** * * ** ** ** ** ** ** ** ** ******* \n");

printf( " ** ** ** ** ** * * ** ** ** ** ******* \n");

printf("

** *********** ************* ** ** ** **** ***** \n");

printf(" ** *********** ************* ** ** ** **** ***** \n" );

printf(" ** ** ** ** ** ** ** ** ** ***** \n");

printf (" ** ** ** ** ** ** ** ** ** ** *** \n");

printf(" ** ** ** ** ** ** **** ** ** *** \n");

printf(" ** ** ** ** ** ** ** ** ** *** \ n" );

printf("\n");

printf("¡Adiós!\n");

exit(1);

p>

}

}

}

//************

//Función del menú de proceso

//************

int Manage_menu()

{

int n;

printf("\t****************************** \n");

p>

printf("\t**\t1: Inicia el juego\t**\n");

printf("\t** \t2: Configuración de nivel\t**\ n");

printf("\t**\t3: Mejor clasificación\t**\n");

printf ("\t**\t4: Descripción del juego\t**\n");

printf("\t**\t5: Salir del juego\t**\n");

printf("\ t******************************\n");

printf("\tIngrese el número de serie correspondiente y seleccione el menú apropiado: ");

printf("\t"); ;

printf("\n ");

if(nlt; 1||ngt; 5)

n=0; p> devolver n;

}