Red de conocimiento informático - Problemas con los teléfonos móviles - Importación de código fuente Vc

Importación de código fuente Vc

/*

C/C++ Juego de serpientes, zjlj, 2015.3.16

*/

#¿Definición? ¿depurar? 0?//¿Cuándo el programa está en la fase de depuración? ¿La depuración es? 1

# incluir & ltiostream & gt

# incluir & ltwindows.h & gt

# incluir & lttime.h & gt

# include & ltconio.h & gt

¿Usar? ¿Espacio de nombres? std

¿No es válido? readini(¿archivo? **fphead, ? int? *puntuación, ? char? *argv[])? //Cree o abra el archivo ini correspondiente al archivo en ejecución y lea el registro más alto.

{

¿Ciel? Nombre de archivo[200], *pnombredearchivo

int? bandera=-1, I;

strcpy(nombre de archivo, argv[0]);

for(I = 0; nombre de archivo[i]!='\0'; i++)

{

¿Y si? ('.'= = nombre de archivo[I])bandera = 1;

}

if(1==bandera)

{

nombre de archivo[I-1]= 'I';

Nombre de archivo[I-2]= 'n';

Nombre de archivo[I-3]= 'I' ;

}

Otro

{

Nombre de archivo[i]= ' ;

nombre de archivo [I+. 1]= ' I ';

Nombre de archivo [I+2]= ' n ';

Nombre de archivo [I+3]= ' I ';

p >

Nombre de archivo[I+4]= ' \ 0 ';

}

for(;Nombre de archivo[i]!= ' \ \ ' & amp& amp i> =0;I-)pfilename = &Filename[I];

¿Si? (?(*fphead=fopen(pfilename, " r b+ ") = = NULL)

{

Si?(?(*fphead=fopen(pfilename, " WB+") = = NULL)

{

Printf("No se puede crear ni abrir \"%s\ "archivo\n ", pfilename);

System(" Pausa");

Salir(0);

}

}

Otros

{

fread(puntuación, tamaño de(int), 1, * fphead);

}

}

¿Writeini(archivo?* *fphead,? int? *score,? *argv[])//Abra el archivo ini correspondiente al archivo en ejecución y escriba el registro más alto.

{

¿Ciel? Nombre de archivo[200], *pnombredearchivo

int? bandera=-1, I;

strcpy(nombre de archivo, argv[0]);

for(I = 0; nombre de archivo[i]!='\0'; i++)

{

¿Y si? ('.'= = nombre de archivo[I])bandera = 1;

}

if(1==bandera)

{

nombre de archivo[I-1]= 'I';

Nombre de archivo[I-2]= 'n';

Nombre de archivo[I-3]= 'I' ;

}

Otro

{

Nombre de archivo[i]= ' ;

nombre de archivo [I+. 1]= ' I ';

Nombre de archivo [I+2]= ' n ';

Nombre de archivo [I+3]= ' I ';

p >

Nombre de archivo[I+4]= ' \ 0 ';

}

for(;Nombre de archivo[i]!= ' \ \ ' & amp& amp i> =0;I-)pfilename = &Filename[I];

¿Si? (?(*fphead=fopen(pfilename," WB+")== NULL)

{

Printf("No se puede escribir en el archivo \"%s\", el disco se escribió Proteger!\n ",pfilename);

Sistema("pausa");

Salir(0);

}

Otros

{

Rebobinar(* fphead);

fwrite(score, sizeof(int), 1, * fphead

);

fclose(* FP head);

}

}

¿No válido? gotoxy(int?x, int?Y)//Posicionamiento del cursor, cursor La función de posicionamiento SetConsoleCursorPosition es la posición de la esquina superior izquierda es 0 y luego se extiende a la esquina inferior izquierda

{

Coordenadas pos

Posición. /p>

Posición. y = x;

SetConsoleCursorPosition(GetStdHandle(STD _ OUTPUT _ HANDLE),

}

¿No es válido? Color (int? A)//Función de color

{

SetConsoleTextAttribute(GetStdHandle(STD _ OUTPUT _ HANDLE),

}

Void?Refresh(int?q[][22],?int?level,?int?gamespeed?int?length,int?score)? //Salida del tablero de serpientes

{

int?I,j;

for(I = 0;i<22;i++)

{

for(j = 0; j <22;j++)

{

If(q[i][j]==0)//El tablero de ajedrez de salida está en blanco.

{

gotoxy(i,j);

Color(11);

cout & lt& lt"■";

}

if(q[I][j]= = 1 | | q[I][j]= = 2)//Salida tablero de ajedrez de pared

{

gotoxy(i,j);

Color(11);

cout & lt& lt"□";

}

If(q[i][j]==3)//Salida pez negro

{

gotoxy(i, j);

Color(14);

cout & lt& lt"★";

}

If(q[i][j]= = 4) // Genera el cuerpo de la serpiente.

{

gotoxy(i,j);

Color(12);

cout & lt& lt"◆";

}

If(q[i][j]==5)//Salida de la fruta.

{

gotoxy(i,j);

Color(12);

cout & lt& lt"●";

}

}

si(i==0)? ¿corto? <<? "\t * * * * * * * * * * * * * * * * * * * * * *";

if(i==1)? ¿corto? <<? "\tNivel:"? <<? Nivel; //Mostrar nivel

if(i==3)? ¿corto? <<? "\tAvanzar el tiempo automáticamente";

if(i==4)? ¿corto? <<? " \tEl intervalo es: "? <<? velocidad del juego? <<? "Sra."; //Mostrar hora

if(i==6)? ¿corto? <<? "\t¿Cuál es la puntuación más alta de la historia"? <<? ¿Puntaje? <<? "Punto";

si(i==7)? ¿corto? <<? \t¿Cuál es tu puntuación actual? <<? (longitud+(nivel-1)*8)*10? <<? "Punto";

si(i==8)? ¿corto? <<? " \ t * * * * * * * * * * * * * * * * * * * * * * * *;

if(i==9)?cout?& lt& lt?" \tDescripción del juego: ";

if(i==10)?cout?& lt& lt?"\t(1) Controlado por teclado";

if(i= = 11)? & lt& lt? "\tLa dirección del movimiento de la cabeza de la serpiente;";

if(i==12)? "\t(2) Una fruta, cuerpo de serpiente";

if(i==13)?cout?& lt& lt?" tAgregar una sección;";

if(i==14) ? & lt& lt? 3) La serpiente te muerde o golpea la pared";

if(i==15)? & lt& lt?

";

if(i==18)?cout?& lt& lt?" * * * * * * * * * * * * * * * * * * * * * * * * ;

si(i==19)? ¿corto? <<? "\tTarea de lenguaje C/C++:";

If (i==20)? ¿corto? <<? \tzjlj, 2015.03.16? ;

}

}

int? main(int?argc,?char?*argv[]){

int? tcsQipan[22][22];? // El tablero de serpientes es una matriz bidimensional (como 22 * ​​22, incluidas las paredes).

int? I, j, puntuación, direccióntemp

ARCHIVO * fpini//*fpini? Archivo de información

readini(&fpini,?&score,?argv); //Lee el registro más alto del archivo ini.

¿Y si? (score<0) //Si el puntaje más alto es menor que cero, configúrelo en cero y el archivo inicial será negativo.

puntuación = 0;

mientras(1)

{

para(I = 1;i<=20;i++ )

for(j = 1;j & lt=20;j++)

tcsQipan[I][j]= 0; //Las coordenadas correspondientes al tablero de ajedrez de la serpiente usan la parte en blanco en el medio está marcado el símbolo 0.

for(I = 0;i<=21;i++)

tcsQipan[0][i]? =?tcsQipan[21][i]? =?1;//Las coordenadas correspondientes del tablero de ajedrez de serpientes están marcadas con signos de 1 en las paredes superior e inferior.

for(I = 1;i<=20;i++)

tcsQipan[i][0]? =?tcsQipan[i][21]? =?2;//Las coordenadas correspondientes del tablero de ajedrez de serpientes están marcadas con los signos 2 en las paredes izquierda y derecha.

int? tcszoo Biao[2][500];? //matriz de coordenadas de serpiente

for(I = 0;?i<4;?i++)

{

tcszoobao[0][I]? =?1;//Coordenadas X del cuerpo y la cabeza de la serpiente

tcszoobao[1][I]? =?Yo? +?1;//Coordenadas Y del cuerpo y cabeza de la serpiente

}

int? ¿cabeza? =?3. =?0;// Indica la cabeza de serpiente y el desplazamiento de matriz de la cabeza de serpiente.

for(I = 1;i<=3;i++)

tcsQipan[1][I]= 4 //Cuerpo de serpiente

tcsQipan [1; ][4]= 3;? //Cabeza de serpiente

int? x1,? y 1;? ///?Fruta aleatoria

srand(time(0)); //Establecer semilla aleatoria

Hacer

{

x 1 = rand()% 21;

y 1 = rand()% 21;

}

mientras(tcsQipan[x 1][ y 1]! =0); // Si no reproduce fruta en el espacio en blanco,

tcsQipan[x 1][y 1]= 5; están marcados con el símbolo de la fruta 5.

Color(12);

cout & lt& lt" \ n \ n \ t \ t \ t \¡¿El juego de la serpiente está por comenzar?!"& lt& ltendl/ / ¿Listo para empezar

Dragón? inicio, iniciotemp

int? ¿calificación? =?1,?Longitud? =?4;//Establece el nivel inicial y la longitud inicial de la serpiente.

int? velocidad del juego? =?500;//Establecer el intervalo de reenvío inicial

for(I = 3;I>=0;I-)

{

start = clock( );

mientras(reloj()-inicio<=1000);

sistema("cls");

if(i & gt0)

cout? <<? \n\n\t\t\t\¿Ingresar cuenta regresiva? <<? ¿I? <<? endl//Pantalla de cuenta atrás

Otros

Actualizar (tcsQipan, nivel, velocidad del juego, duración, puntuación //Pantalla inicial del tablero de ajedrez

}

);

int? timeover=1, other key = 1; //Tiempo de espera de inicialización y parámetros de juicio clave.

¿Ciel? ¿dirección? =?77; ///?En la configuración inicial, muévase hacia la derecha.

int? x = tcszuobao[0][head], y = tcszuobao[1][head] //Guarda las coordenadas del pez negro en las variables x, y.

Mientras(1)//Ejecuta un juego.

{

¿Empezar? =?clock();

while((time over =((start temp = clock())-start & lt;= gamespeed))&&!kb hit());/ /El El bucle termina si se presiona una tecla o el tiempo excede el intervalo de avance automático.

if(dirección==72 | |dirección==80 | |dirección==75? | |dirección==77)

direccióntemp = dirección //conservar la última dirección; llave.

//temperatura de inicio = velocidad del juego+temperatura de inicio-inicio; //tiempo de retención

if (tiempo de espera)

{

# ¿si? (Depuración==1)

¿Dirección? =?getch();//Código de depuración

# De lo contrario

If ((dirección? = getch())==-32)

¿Dirección? =?getch();

#endif

}

#If? (DEBUG==1)//Código de depuración

start =clock();

while(clock()-start & lt;=2000);

gotoxy(24, 4);

cout? <<? "\tEscriba el código ASCII"

#endif

if (!(dirección==72 | |dirección==80 | |dirección==75?| |dirección==77 ) )

{?

other key = 0; //Esta tecla no es una tecla de flecha, la otra tecla está configurada en 0.

}

Otro

{

otra clave = 1; // La clave es la tecla de dirección y la otra clave está configurada en 1.

}

If (direction==72?& amp& amp?Directiontemp==80) // Ignora la clave inversa.

{

Dirección = 32°;

otra clave = 0;

//¿Iniciar? =?clock();

// while(clock()-start & lt;= start temp);

}

¿Y si? if (direction==80?&&?directiontemp==72)

{

direction = 32° // Establece la clave en una clave sin dirección.

Otra clave = 0; //Esta clave es una clave no direccional y la otra clave está configurada en 0.

//?¿Empezar? =?clock();

// while(clock()-start & lt;= start temp);//compensar tiempo de espera

}

¿De lo contrario? if (dirección==75?&&?directiontemp==77)

{

dirección = 32°;

otra clave = 0;

p>

//¿Iniciar? =?clock();

// while(clock()-start & lt;= start temp);

}

¿Y si? if (dirección==77?&&?directiontemp==75)

{

dirección = 32°;

otra clave = 0;

p>

//¿Iniciar? =?clock();

// while(clock()-start & lt;= start temp);

}

Cambiar (dirección)/ /Teclas de flecha OK

{

¿Caso? 72:?x=? tcszuobao[0][cabeza]-1;? y=? tcszuobao[1][cabeza]; romper //Up

¿Caso? 80:?x=? tcszuobao[0][cabeza]+1;? y=? tcszuobao[1][cabeza]; romper; //Abajo

¿Caso? 75:?x=? tcszoobao[0][cabeza];? y=? tcszuobao[1][head]-1; break; // a la izquierda

¿Caso? 77:?x=? tcszoobao[0][cabeza];? y=? tcszuobao[1][head]+1; break; //Ir a la derecha

Predeterminado:? Romper;

}

if(x==0?||?x==21?||y==0?||?y==21)//? La serpiente golpeó su cabeza contra la pared, finalizando el juego.

{

gotoxy(22,12);

cout? <<? "¡\tEl juego ha terminado!"? <<? endl

if(score & gt;=(length+(grade-1)* 8)* 10)//Determine si se batió el récord.

{

gotoxy(10,7);

Color(12);

cout? <<? "¿No puedes comunicarte? ¡Vamos!" <<? endl

fclose(fpini); //Cerrar el archivo ini

}

Otros

{

gotoxy (10,7);

Color (12);

cout? <<? ¿"Felicitaciones por batir el récord"? <<? endl

Puntuación=(length+(grade-1)*8)*10;

escribir ini(& fpini,? & puntuación,? archivo ini El registro más alto escrito); en

}

gotoxy(23,12);

cout? <<? ¿"Presiona Enter para reiniciar y ESC para salir del juego"? <<? endl//Mostrar mensaje

Break; //Salir del juego

}

if(tcsQipan[x][y]!= 0 & amp& amp!( x = = x 1 &&y = = y 1)&&tcsQipan[x][y]! =3)?//?La cabeza de la serpiente toca el cuerpo de la serpiente, finalizando el juego.

{

gotoxy(22,12);

cout? <<? "¡\tEl juego ha terminado!"? <<? endl

if(score & gt;=(length+(grade-1)* 8)* 10)//Determine si se batió el récord.

{

gotoxy(10,7);

Color(12);

cout? <<? "¿No puedes comunicarte? ¡Vamos!" <<? endl

fclose(fpini); //Cerrar el archivo ini

}

Otros

{

gotoxy (10,7);

Color (12);

cout? <<? ¿"Felicitaciones por batir el récord"? <<? endl

Puntuación=(length+(grade-1)*8)*10;

escribir ini(& fpini,? & puntuación,? archivo ini El registro más alto escrito); en

}

gotoxy(23,12);

cout? <<? ¿"Presiona Enter para reiniciar y ESC para salir del juego"? <<? endl//Mostrar mensaje

Break; //Salir del juego

}

/*

El algoritmo central se inicia cuando el juego está corriendo.

*/

if(x==x1?& amp& amp?y==y1)? //Come fruta, suma 1 a la longitud

{?

Longitud? ++;

if(length>=8)//Si la longitud es mayor o igual a 8, vuelva a calcular la longitud y agregue 1 al nivel.

{

¿Longitud? -=?8;//Recalcular la longitud

¿Calificación? ++;//Calificación más 1

if(gamespeed >50)//La velocidad de control más rápida es 50.

¿velocidad de juego? =?550?-?Calificación? *?50;? //Cambiar el intervalo de tiempo de avance automático

}

tcsQipan[x][y]=? 3; //Las coordenadas correspondientes del tablero de serpientes ahora se cambian al símbolo de cabeza de serpiente 3.

tcsQipan[tcszuobao[0][cabeza]][tcszuobao[1][cabeza]]? =?4;//Las coordenadas correspondientes del tablero de serpientes se cambian del símbolo de cabeza de serpiente original al símbolo de cuerpo de serpiente 4.

¿Cabeza? =?(head+1)% 400; //Evitar que la matriz cruce el límite

tcszoobao[0][head]? =?x; //Coordenada X de la cabeza de serpiente

tcszoobao[1][head]? =?y; //coordenada Y de la cabeza de serpiente

Hacer //fruta aleatoria

{

x 1 = rand()% 21;

p>

y 1 = rand()% 21;

}

mientras(tcsQipan[x 1][y 1]!=0) ;//si no reproduces fruta en el espacio en blanco,

tcsQipan[x 1][y 1]= 5; //Las coordenadas correspondientes al tablero de serpientes están marcadas con el símbolo de fruta 5.

gotoxy(22,12);

cout? <<? "\t¡El juego está en progreso!"? <<? endl

Actualizar(tcsQipan, nivel, velocidad del juego, duración, puntuación);

}

De lo contrario//No comas fruta

{

if(otras claves)

{

tcsQipan? [tcszuobao[0][tail]][tcszuobao[1][tail]]= 0;

tail =(tail+1)% 400; //Evita que la matriz cruce el límite

tcsQipan? [tcszuobao[0][head]][tcszuobao[1][head]]= 4;

head =(head+1)% 400 //Evita que la matriz cruce el límite

tcszuobao[0][head]= x; // Coordenada X de la cabeza de serpiente

tcszuobao[1][head]= y //Coordenada Y de la cabeza de serpiente

tcsQipan[tcszuobao[ 0][cabeza]][tcszuobao[1][cabeza]]= 3;

gotoxy(22,12);

cout? <<? "\t¡El juego está en progreso!"? <<? endl

Actualizar(tcsQipan, nivel, velocidad del juego, duración, puntuación);

}

Otros

{

gotoxy(22,12);

cout? <<? "¡\tJuego en pausa!"? <<? endl

}

}

/*

Fin del algoritmo central cuando el juego se está ejecutando.

*/

}

mientras(1)

{

Y (!kb hit() );

If ((dirección?= getch()== 13)//Entra para comenzar la siguiente ronda.

Pausa;

Si (dirección ? ==27) // Pulsa ESC para salir del juego

Exit(0);

}

System("cls"); la pantalla, empezar de nuevo

}

Volver a 0;

}