Hola a todos!
Os voy a dejar aquí posteado un juego que he creado para una práctica del ciclo superior (DAM) que estoy haciendo!
Para poder compilar os hará falta la librería "rlutil.h" https://github.com/tapio/rlutil/blob/master/rlutil.h (https://github.com/tapio/rlutil/blob/master/rlutil.h)
El código está hecho para un mínimo de 1 coche y un máximo de 4, pero es fácilmente ampliable modificando la línea nº28
Espero que os guste, si alguien lo prueba puede dejar un comentario!!
#include <stdio.h>
#include <stdlib.h>
#include "time.h"
#include <math.h>
#include "rlutil.h"
#define INICIO 10
#define FINAL 80
#define SALIDA 1
int pedirnumero(int , int );
void crearmeta(int ,int ,int ,int );
void imprimircoches(int ,int ,int [],int );
void crearcoche(int ,int [],int ,int );
void movercoche(int ,int ,int [],int ,int *);
int color(int );
void iniciar(int [], int );
int main(){
int coches;
int espaciado=4;
int fila=4;
int meta=0;
srand(time(NULL));
system("color f1");
setColor(BLACK);
coches=pedirnumero(1,4);
int columna[coches];
iniciar(columna,coches);
//imprimir(columna,coches);
system("cls");
crearmeta(INICIO,SALIDA,espaciado,coches);
crearmeta(FINAL,SALIDA,espaciado,coches);
imprimircoches(coches,espaciado,columna,fila);
getch();
do{
system("cls");
crearmeta(INICIO,SALIDA,espaciado,coches);
crearmeta(FINAL,SALIDA,espaciado,coches);
movercoche(coches,espaciado,columna,fila,&meta);
Sleep(25);
}while(!meta);
getch();
return 0;
}
int pedirnumero(int min,int max){
int num;
do
{
printf("Selecciona entre %d - %d coches: ",min, max);
scanf("%d",&num);
}
while(num<min || num>max);
return num;
}
void crearmeta(int col,int fila,int espaciado,int coches){
int i;
for(i=0;i<coches*espaciado+5;i++)
{
gotoxy(col,fila);
printf("|");
fila++;
}
}
void imprimircoches(int coches,int espaciado,int columna[],int fila){
int i;
for(i=0;i<coches;i++)
{
crearcoche(i,columna,fila,espaciado);
fila=fila+espaciado;
}
}
void crearcoche(int i,int columna[],int fila,int espaciado){
setColor(color(i));
gotoxy(columna[i],fila);
printf("** *",columna[i]);
gotoxy(columna[i],fila+1);
printf("********");
gotoxy(columna[i],fila+2);
printf("** *");
setColor(BLACK);
}
void movercoche(int coches,int espaciado,int columna[],int fila,int *meta){
int i;
int vel=0;
for(i=0;i<coches;i++)
{
vel=rand()%4;
columna[i]=columna[i]+vel;
crearcoche(i,columna,fila,espaciado);
fila=fila+espaciado;
if(columna[i]>=FINAL-7)
{
*meta=1;
}
}
}
int color(int i){
int color;
if(i>9)
{
i=rand()%9;
}
switch(i){
case 1:
color=BLUE;
break;
case 2:
color=GREEN;
break;
case 3:
color=BLACK;
break;
/*case 1:
color=10;
break;
case 2:
color=3;
break;
case 3:
color=11;
break;*/
case 4:
color=4;
break;
case 5:
color=12;
break;
case 6:
color=5;
break;
case 7:
color=13;
break;
case 8:
color=6;
break;
case 9:
color=14;
break;
default:
color=RED;
break;
}
return color;
}
void iniciar(int columna[], int coches){
int i;
for(i=0;i<coches;i++)
{
columna[i]=2;
}
}
Imágenes para visualizar el juego previamente
(http://image.prntscr.com/image/518c37bbe0f54847952edfc33acbdea8.png)
(http://image.prntscr.com/image/b7e4bce09894468c861bc6b816940de8.png)
(http://image.prntscr.com/image/6bb2b1f32f594a0fa780ade3cb041203.png)
(http://image.prntscr.com/image/265d6c7912c64102a2446e8d38c0ef61.png)
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
tomare prestado tu codigo
Perfecto, no hay problema!
Si vas a añadir algo y quieres postear el código.. ;)
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
tomare prestado tu codigo
Perfecto, no hay problema!
Si vas a añadir algo y quieres postear el código.. ;)
eso intentare pero primero tengo que entender bien toda tu logica y despues ver si dan mis conocimientos para poder editarlo y meter una grafica simple en 2D no esperes mas que autos estaticos en movimiento XD
PD: no tengo tratando con las librerias como la descargo