Underc0de

Programación General => C / C++ => Mensaje iniciado por: wizardsec en Febrero 06, 2017, 04:32:38 PM

Título: [Source] Juego de Formula 1 en C
Publicado por: wizardsec en Febrero 06, 2017, 04:32:38 PM
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)
Título: Re:[Source] Juego de Formula 1 en C
Publicado por: Mr.Tru en Marzo 22, 2017, 01:50:32 PM
tomare prestado tu codigo
Título: Re:[Source] Juego de Formula 1 en C
Publicado por: wizardsec en Marzo 25, 2017, 09:18:15 PM
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..  ;)
Título: Re:[Source] Juego de Formula 1 en C
Publicado por: Mr.Tru en Marzo 28, 2017, 06:23:04 PM
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