Underc0de - La Casa de los Informáticos

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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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