InicioInfoProgramación CCrear un juego sencillo

Programación CCrear un juego sencillo

Info12/20/2012
Principios Basicos para programar un juego sencillo en C,el juego Clásico SNAKE Antes que nada, necesitamos saber C/C++ Basico. Tener creatividad, imaginación y sobre todo tener mucha paciencia. El principio básico de un juego es por medio de imágenes con cambios rápidos. Ahora bien comencemos con un código sencillo y la introducción. Introducción Primero debemos poner las librerías. Y hacer la estructura principal del juego. #include #include #include #include char usuario; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); usuario=getch(); }while(usuario!=27); return 0; } Definir campos de movimiento y personajes Ahora tenemos que definir que objeto se moverá, hacia donde, como se moverá. En esta parte es cuando empezamos a crear a nuestro personaje, es decir, la figura que se moverá. #include #include #include #include char usuario; int nx,ny; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); if(usuario==72){ ny--;} if(usuario==75){ nx--;} if(usuario==80){ ny++;} if(usuario==77){ nx++;} gotoxy(nx,ny); printf("O" ); usuario=getch(); }while(usuario!=27); return 0; } De esta forma ya establecimos el movimiento de la letra O, recuerden que al hacer la instruccion "usuario=getche();" quiere decir que la variable usuario, de tipo char, toma los valores que hacemos con el teclado, y lo interpretamos en ASCII, por eso ponemos los valores: 72,75,80,77 y 27; los cuales son las flechas del teclado(para movimiento) y la tecla ESC para salir. Establecer limites de movimiento Ahora pondremos los limites, es decir, establecer de donde a donde queremos que se mueva, en mi caso pondré limites, pero podrás aparecer por el otro lado. #include #include #include #include char usuario; int nx,ny; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); gotoxy(77,9);printf("|" );gotoxy(77,10);printf("|" );gotoxy(77,11);printf("|" );gotoxy(77,12);printf("|" );gotoxy(77,13);printf("|" );gotoxy(77,14);printf("|" );gotoxy(77,15);printf("|" );gotoxy(77,16);printf("|" ); gotoxy(77,17);printf("|" );gotoxy(77,18);printf("|" );gotoxy(77,19);printf("|" );gotoxy(77,20);printf("|" );gotoxy(77,21);printf("|" );gotoxy(77,22);printf("|" );gotoxy(77,23);printf("|" );gotoxy(3,23); printf("===========================================================================" ); gotoxy(3,9);printf("|" );gotoxy(3,10);printf("|" );gotoxy(3,11);printf("|" );gotoxy(3,12);printf("|" );gotoxy(3,13);printf("|" );gotoxy(3,14);printf("|" );gotoxy(3,15);printf("|" );gotoxy(3,16);printf("|" );gotoxy(3,17);printf("|" );gotoxy(3,18);printf("|" );gotoxy(3,19);printf("|" );gotoxy(3,20);printf("|" );gotoxy(3,21);printf("|" );gotoxy(3,22);printf("|" );gotoxy(3,23);printf("|" ); gotoxy(3,8); printf("===========================================================================" ); if(nx==3) {nx=76;} else {if(nx==77) {nx=4;} else {if(ny==8) {ny=22;} else {if(ny==23) {ny=9;}}}} if(usuario==72){ ny--;} if(usuario==75){ nx--;} if(usuario==80){ ny++;} if(usuario==77){ nx++;} gotoxy(nx,ny); printf("O" ); usuario=getch(); }while(usuario!=27); return 0; } Con el código que establecí para los limites, podemos salir por el otro lado, como en el juego snake. Solo falta poner la comida y la puntuacion Puntuación Para esto vamos a usar el comando random, para que una vez que nuestro personaje se coma la comida, esta aparesca en otra parte diferente. También debemos de dar puntos por cada que comamos. #include #include #include #include char usuario; int nx,ny,m,X,Y,score; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); gotoxy(5,2);printf("Score: %d",score ); gotoxy(77,9);printf("|" );gotoxy(77,10);printf("|" );gotoxy(77,11);printf("|" );gotoxy(77,12);printf("|" );gotoxy(77,13);printf("|" );gotoxy(77,14);printf("|" );gotoxy(77,15);printf("|" );gotoxy(77,16);printf("|" ); gotoxy(77,17);printf("|" );gotoxy(77,18);printf("|" );gotoxy(77,19);printf("|" );gotoxy(77,20);printf("|" );gotoxy(77,21);printf("|" );gotoxy(77,22);printf("|" );gotoxy(77,23);printf("|" );gotoxy(3,23); printf("===========================================================================" ); gotoxy(3,9);printf("|" );gotoxy(3,10);printf("|" );gotoxy(3,11);printf("|" );gotoxy(3,12);printf("|" );gotoxy(3,13);printf("|" );gotoxy(3,14);printf("|" );gotoxy(3,15);printf("|" );gotoxy(3,16);printf("|" );gotoxy(3,17);printf("|" );gotoxy(3,18);printf("|" );gotoxy(3,19);printf("|" );gotoxy(3,20);printf("|" );gotoxy(3,21);printf("|" );gotoxy(3,22);printf("|" );gotoxy(3,23);printf("|" ); gotoxy(3,8); printf("===========================================================================" ); if(nx==3) {nx=76;} else {if(nx==77) {nx=4;} else {if(ny==8) {ny=22;} else {if(ny==23) {ny=9;}}}} gotoxy(X,Y); printf("@" ); if(X==nx) {if(Y==ny) {m=m+2;score=score+10; Y=rand() %13+9; X=rand() %72+4;}} if(usuario==72){ ny--;} if(usuario==75){ nx--;} if(usuario==80){ ny++;} if(usuario==77){ nx++;} gotoxy(nx,ny); printf("O" ); usuario=getch(); }while(usuario!=27); return 0; } Perfecto ya tenemos la puntuación, el movimiento y la comida aleatoria. Ahora pondremos el crecimiento de nuestro personaje(snake). Crecimiento de Snake Para hacer esto requerimos de un arreglo, de tal forma que guarde las posiciones que ya hicimos. #include #include #include #include char usuario; int nx,ny,m,X,Y,score,x[100],y[100],i,l; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); gotoxy(5,2);printf("Score: %d",score ); gotoxy(77,9);printf("|" );gotoxy(77,10);printf("|" );gotoxy(77,11);printf("|" );gotoxy(77,12);printf("|" );gotoxy(77,13);printf("|" );gotoxy(77,14);printf("|" );gotoxy(77,15);printf("|" );gotoxy(77,16);printf("|" ); gotoxy(77,17);printf("|" );gotoxy(77,18);printf("|" );gotoxy(77,19);printf("|" );gotoxy(77,20);printf("|" );gotoxy(77,21);printf("|" );gotoxy(77,22);printf("|" );gotoxy(77,23);printf("|" );gotoxy(3,23); printf("===========================================================================" ); gotoxy(3,9);printf("|" );gotoxy(3,10);printf("|" );gotoxy(3,11);printf("|" );gotoxy(3,12);printf("|" );gotoxy(3,13);printf("|" );gotoxy(3,14);printf("|" );gotoxy(3,15);printf("|" );gotoxy(3,16);printf("|" );gotoxy(3,17);printf("|" );gotoxy(3,18);printf("|" );gotoxy(3,19);printf("|" );gotoxy(3,20);printf("|" );gotoxy(3,21);printf("|" );gotoxy(3,22);printf("|" );gotoxy(3,23);printf("|" ); gotoxy(3,8); printf("===========================================================================" ); if(nx==3) {nx=76;} else {if(nx==77) {nx=4;} else {if(ny==8) {ny=22;} else {if(ny==23) {ny=9;}}}} gotoxy(X,Y); printf("@" ); if(X==nx) {if(Y==ny) {m=m+2;score=score+10; Y=rand() %13+9; X=rand() %72+4;}} x[0]=nx; y[0]=ny; for(i=m-1;i>=0;i--){ gotoxy(x,y); printf("X" ); x=x[i-1]; y=y[i-1]; } if(usuario==72){ ny--;} if(usuario==75){ nx--;} if(usuario==80){ ny++;} if(usuario==77){ nx++;} gotoxy(nx,ny); printf("O" ); usuario=getch(); }while(usuario!=27); return 0; } Bien, ya tenemos todo, ahora solo falta ajustar detalles, como las coordenadas de inicio y los valores de cada variable. Ajuste de detalles Solo se realizarán ajustes #include #include #include #include char usuario; int nx=15,ny=15,m=0,X=17,Y=17,score=0,x[100],y[100],i,l; main() {clrscr(); printf("HOLA, ESTE ES MI JUEGO HECHO EN C++" ); getch(); do{ clrscr(); //AREA// gotoxy(5,2);printf("Score: %d",score ); gotoxy(77,9);printf("|" );gotoxy(77,10);printf("|" );gotoxy(77,11);printf("|" );gotoxy(77,12);printf("|" );gotoxy(77,13);printf("|" );gotoxy(77,14);printf("|" );gotoxy(77,15);printf("|" );gotoxy(77,16);printf("|" ); gotoxy(77,17);printf("|" );gotoxy(77,18);printf("|" );gotoxy(77,19);printf("|" );gotoxy(77,20);printf("|" );gotoxy(77,21);printf("|" );gotoxy(77,22);printf("|" );gotoxy(77,23);printf("|" );gotoxy(3,23); printf("===========================================================================" ); gotoxy(3,9);printf("|" );gotoxy(3,10);printf("|" );gotoxy(3,11);printf("|" );gotoxy(3,12);printf("|" );gotoxy(3,13);printf("|" );gotoxy(3,14);printf("|" );gotoxy(3,15);printf("|" );gotoxy(3,16);printf("|" );gotoxy(3,17);printf("|" );gotoxy(3,18);printf("|" );gotoxy(3,19);printf("|" );gotoxy(3,20);printf("|" );gotoxy(3,21);printf("|" );gotoxy(3,22);printf("|" );gotoxy(3,23);printf("|" ); gotoxy(3,8); printf("===========================================================================" ); if(nx==3) {nx=76;} else {if(nx==77) {nx=4;} else {if(ny==8) {ny=22;} else {if(ny==23) {ny=9;}}}} //COMIDA y PUNTUACION// gotoxy(X,Y); printf("@" ); if(X==nx) {if(Y==ny) {m=m+2;score=score+10; Y=rand() %13+9; X=rand() %72+4;}} //CRECIMIENTO// x[0]=nx; y[0]=ny; for(i=m-1;i>=0;i--){ gotoxy(x,y); printf("X" ); x=x[i-1]; y=y[i-1]; } //CONTROL// if(usuario==72){ ny--;} if(usuario==75){ nx--;} if(usuario==80){ ny++;} if(usuario==77){ nx++;} //PERSONAJE// gotoxy(nx,ny); printf("O" ); usuario=getch(); }while(usuario!=27); return 0; } Con esto concluimos, ya tenemos creado el principio básico de un juego(snake) hecho en C, si quieren agregar detalles pueden hacerlo, mas adelante mostraré a poner sonidos en formato WAV para tener mejor estilo. Ahora solo compilen y disfruten su juego Yo ya lo probé y funcionó, si no les funciona dejenme el comentario.
Datos archivados del Taringa! original
15puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

x
Usuario
Puntos0
Posts24
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.