Red de conocimiento informático - Aprendizaje de programación - Código fuente Lxl

Código fuente Lxl

# incluir & ltiostream & gt

# incluir & ltfstream & gt

# incluir & ltctime & gt

# incluir & ltcmath & gt

# incluir & ltstdlib.h & gt

# incluir & ltstdio.h & gt//time//file

# incluir & ltstring& gt

#Definir random(x)(rand()%x)

Usar espacio de nombres std

void thunder(int Dif, int Row, int Column, char *USer)

{

int r, c, todos[22][22], detrás del escenario[22][22]= { 0 };

srand( (int)tiempo; (0));

for(r = 1; r & lt=line; R++) //Generar todo(0 ~ 1)1 es un trueno.

{

for(c = 1; c & lt=columna; c++)

{

if(aleatorio(6) <1){ todos[r][c]= 1;} más { todos[r][c]= 0;};

}

};

p>

for(r = 0; r & lt= Fila+1; R++) //Generación de fondo (respuesta correcta)

{

for(int c = 0 ;c & lt=columna+1;c++)

{

if(alls[r][c]==1)

{

(int)back stage[r][c]= ' * '; //Trueno cambia 1 a *.

}

Otro

{

for(int I = r-1;I<= r+1;I++) // Convierte 0 en un número (que representa el número de truenos que te rodean)

for(int j = c-1; j & lt= c+1; j++)

{< / p>

if(todos[I][j]!= todos s[r][c]& & ampall[I][j]= = 1){ detrás del escenario[r][c]+ +;} ;

}

};//en caso contrario, finalizar

};//final de

};// Finalizar

cout & lt& lt" = = = = = = = = = = = = = = = = = = = = = * * * * * * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = " & lt; )

for(r = 0; r & lt22;R++) //Todos ceros

for (c = 0;c & lt22;c++)

{

superficie[r][c]= ' 0 ';

for(r = 1; r & lt=line; R++) //El # del medio forma el corchete 0 # (a través de la forma del número #-->; deja de repetirse cuando (* || número) gana)

for(c = 1; c & lt=columna; c++ )

{

superficie[r][c]= ' # ';

}

for(r = 1; r & lt=line; R++) //Interfaz de superficie de salida para una fácil inspección.

{

for(c = 1; c & lt=columna; c++){ cout & lt; & lt" " " & lt& ltsuperficie[r][c];} ;

cout & lt& ltendl

};

cout & lt& lt"Ingrese según el formato"

& lt& lt "antes Los dos números son las coordenadas. El último número '1' significa que esta ubicación es un trueno y '0' significa que no hay ninguno. ”& lt& ltEndel

& lt& lt“Por ejemplo: 1 3 1 significa una fila y tres columnas son truenos 2 4 0 significa dos filas y cuatro columnas no son truenos”

& lt& lt "Consejo: Cuando todas las minas alrededor de los números hayan sido eliminadas, puede ingresar a esta posición nuevamente según sea necesario para obtener los números circundantes. ”& lt& ltendl

Long I = 1000000 l; //Inicio del tiempo de cálculo

clock_t comienza, termina;

Doble duración;

start = clock();

while(I-); //Calcular el inicio del tiempo

int num = Fila * Columna//Calcular el número de # números

p>

And (num!=0) //Controla si se hace clic en todas las posiciones

{

int x, y, Judge

CIN & gt;& gtx & gt& gty & gt& gtJudge;

if(all[x][y]!=Judge)

{

cout & lt& lt"¡Tú pierdes! ! !"& lt& ltendl

cout & lt& ltLa respuesta es: "& lt& ltendl

for(r = 1; r & lt=line; R++) //Fondo de entrada y salida Mostrar respuesta correcta.

{

for(int c = 1; c & lt=columna; c++)

{

cout & lt& lt" " " & lt& lt(char)(backstage[r][c]==42?backstage[r][c]:backstage[r][c]+' 0 '); //Salida de backstage

}

cout & lt& ltendl

}

Descanso;

}

Otro

{

if(all[x][y]= = 1){ if(superficie[x][y]= = ' # '){ num-;} superficie[x] [y]= ' @ ';}//Ray juzga que "@" se muestra correctamente; cuenta "#"

Otros

{

If ( background[ x][y]! =0) //El juicio numérico muestra el número correctamente

if(surface[x][y]= = ' # '){ num- ;surface[x] [y]= detrás del escenario[x][y]+' 0 ';}//Número "#"

Otros

{

int lei _ num = 0;

for(int I = x-1; I & lt= x+1; I++) //Cuenta el número de minas

for (int j = y-1; j & lt= y+1; j++)

{

if(superficie[i][j]=='@ ')

lei _ num++;

}

If(background[x][y]==lei_num) //Ver si todas las minas alrededor del número han sido barridas Mostrar números.

{

for(int I = x-1;i<= x+1;i++)

for(int j = y -1; j. & lt= y+1; j++)

if(superficie[I][j]= ' # ')//número " # "

{

superficie[I][j]= detrás del escenario[I][j]+' 0 ';

num-;

}

}

}

}

Else //Cuando el número es cero, muestra cero cerca de cero

{

if (superficie[x][y]= = ' # '){ num-;};//Número "#"

superficie[x][y]= detrás del escenario[ x][y]+ ' 0 ';

for(int I = x-1;i<= x+1;I++) //Muestra números cercanos a cero.

for(int j = y-1; j & lt= y+1; j++)

if(surface[I][j]= ' # ')//Evitar Bucle infinito.

{

superficie[I][j]= detrás del escenario[I][j]+' 0 ';

num-;//número" #”

}

for(int k = 0; k & lt20;K++) //Hasta 20 niveles de cero (señale el cero más externo)

{

for(int R = 1; R & lt=row; R++) //comprobar todos los ceros

for(int C = 1; C & lt=column; C++) //Mostrar números alrededor de cero nuevamente.

{

if(superficie[R][C]=='0 ')

{

for(int I = R-1;i<= R+1;i++)

for(int j = C-1;j & lt= C+1;j++)

{

if(surface[I][j]= ' # ')//Evitar el número de bucle infinito " # "

{

surface[I][j] = back etapa[I][j]+' 0 ';

num-;

}

}

}

}//Coincidir en

}//Coincidir con externo

}//Coincidir con otra persona

}//Coincidir con otra persona

}//Match els

cout & lt& ltendl

cout & lt& lt" = = = = = = = = = = = = = = = = = = = = = = = = * * * * * * * = = = = = = = = = = = = = = = = = = = = = = = = = "<<endl

for(r = 1; r & lt=line; R++) //Interfaz de salida (modificada)

{

for(c = 1; c & lt =columna;c++){ cout & lt ;& lt" " " & lt& ltsurface[r][c];};

cout & lt& ltendl

};

}//Partido en el mismo tiempo

finish = clock(); //Fin del tiempo de cálculo

duración = (double)(finish-start)/CLOCKS _ PER _ SEC ;

If(num==0) // all

{

cout & lt& lt"¡Tú ganas! ¡Felicidades! ! "& lt& ltendl

cout & lt& lt"Tu tiempo es:" & lt& ltDuration& lt& ltendl

If(Dif==1) // Archivo de almacenamiento de Buscaminas fácil de leer.

{

Nombre de cadena;

Nombre de cadena[6];

Timbre doble;

Doble[6];

int I = 0;

Ifstream inf("Simple Buscaminas.txt ");

for(I = 0;i<5 ;I++) //La información del archivo se importa a la matriz.

{

inf & gt& gtName; inf & gt& gtrang & gt& gtTime;

Nombre[I]= Nombre;

veces [I]=time;

}

INF . close();

name[5]=user; //Información del concursante para esta ronda< / p>

veces[5]=duración;

doble t 1 = 0;

Cadena T2;

for(int j = 0;j<5 ;J++) //Método de clasificación de burbujas

{

for(I = 0;i<5-j;i++)

{

if(veces[I]& gt; veces[i+1])

{

t 1 = veces[I];

veces[I] = veces[I+1];

veces[I+1]= t 1;

T2 = nombre[I];

nombre[I] = nombre[I+1];

nombre[I+1]= T2;

}

}

}

Ofstream outf("Simple Minesweeper.txt ");

for(I = 0;I<5;I++) //Serán los cinco mejores jugadores La información se almacena en un archivo.

{

cout & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

outf & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

}

outf . close();

}

If(Dif==2) //Leer archivos generales del buscaminas .

{

Nombre de cadena;

Nombre de cadena[6];

Tiempo doble, timbre;

Double[6];

int I = 0;

Ifstream inf("Desminado general.txt ");

for(I = 0;i<5; I++) //La información del archivo se importa a la matriz.

{

inf & gt& gtName; inf & gt& gtrang & gt& gtTime;

Nombre[I]= Nombre;

veces [I]=time;

}

INF . close();

name[5]=user; //Información del concursante para esta ronda< / p>

veces[5]=duración;

doble t 1 = 0;

Cadena T2;

for(int j = 0;j<5 ;J++) //Método de clasificación de burbujas

{

for(I = 0;i<5-j;i++)

{

if(veces[I]& gt; veces[i+1])

{

t 1 = veces[I];

veces[I] = veces[I+1];

veces[I+1]= t 1;

T2 = nombre[I];

nombre[I] = nombre[I+1];

nombre[I+1]= T2;

}

}

}

Ofstream outf("Remoción general de minas. txt ");

for(I = 0;I<5;I++) // ¿Los cinco mejores jugadores? La información se almacena en un archivo y se genera. .

{

cout & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

outf & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

}

outf . close();

}

If(Dif==3) //Leer difícil para extraer la tienda archivos.

{

Nombre de cadena;

Nombre de cadena[6];

Tiempo doble, timbre;

Double[6];

int I = 0;

Ifstream inf("Dificultad del Buscaminas.txt ");

for(I = 0;i<5; I++) //La información del archivo se importa a la matriz.

{

inf & gt& gtName; inf & gt& gtrang & gt& gtTime;

Nombre[I]= Nombre;

veces [I]=time;

}

INF . close();

name[5]=user; //Información del concursante para esta ronda< / p>

veces[5]=duración;

doble t 1 = 0;

Cadena T2;

for(int j = 0;j<5 ;J++) //Método de clasificación de burbujas

{

for(I = 0;i<5-j;i++)

{

if(veces[I]& gt; veces[i+1])

{

t 1 = veces[I];

veces[I] = veces[I+1];

veces[I+1]= t 1;

T2 = nombre[I];

nombre[I] = nombre[I+1];

nombre[I+1]= T2;

}

}

}

Ofstream outf("Mine Sweeper Difficulty. txt ");

for(I = 0;I<5;I++) //Serán los cinco mejores jugadores La información se almacena en un archivo.

{

cout & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

outf & lt& ltname[I]& lt;& lt" " " & lt& ltI+1 & lt;& lt" " " & lt& ltveces[I]& lt;& ltendl

}

outf .cerrar();

}

}

}

Void scale(int dif, char *Usuario) //Selecciona dificultad.

{

int fila, columna

if(dif == 1){ fila = 3 columna = 3;}

if(dif == 2){ fila = 7; columna = 7;}

if(dif == 3){ fila = 10; columna = 10;}

cout & lt& lt"La escala es: "& lt& ltrow & lt& lt" * " & lt& ltcolumn& lt& ltendl

Trueno (dif, fila, columna, usuario);

}; /p>

int main()

{

int Continuar = 1;

int dificultad

char usuario [ 10];

cout & lt& lt"¡Bienvenido al juego!"& lt& ltEndl

& lt& lt"¡Ingresa tu nombre de usuario!"& lt& ltendl

CIN>>user;

mientras(Continuar==1)

{

cout & lt& lt" = = = = = = = = = = = = = = = = = = = = = = = * * * * * * * * * * * * * * * = = = = = = = = = = = = = = = = = = = = = "<<Endel

& lt& lt"¡Por favor selecciona la dificultad! "<<Endel

& lt& lt"Fácil-1"

& lt& lt"Normal-2"

& lt& lt"Difícil-3"

CIN>& gtDificultad;

Escala(dificultad, usuario);

cout<<"Continuar juego -1 Fin del juego-0"<<endl

CIN>>Continue;

}

Devuelve 0;

}

Juego buscaminas, código propio.