ARREGLOS EN C++
YUADA POR FAVOOOR!!
1. Se trata de diseñar un juego de carreras de autos. En este juego compiten 10 autos cada uno identificado con un número del 1 al 10. Se requiere diseñar un programa, utilizando arreglos, que calcule al azar el orden de llegada de los 10 autos. Por ejemplo: Primero llego el 7, segundo el 4, tercero el 9, etc…
entretenido juego, voy a intentarlo a ver si me resulta y posteo el codigo aquí en caso que este bien..
program.cpp
#include <iostream>
#include "Carrera.h"
#include <conio.h>
#include <time.h>
using namespace std;
Carrera c;
int main() {
cout << 'a'; //beep
cout << "---------------------------------------" << endl;
cout << "| L A G R A N C A R R E R A |" << endl;
cout << "---------------------------------------" << endl;
cout << "Presione cualquier tecla para preparar...";
cout << endl;
_getch();
system("cls");
c.ConfigurarCoches();
cout << "---------------------------------------" << endl;
cout << "| LISTOS LOS COMPETIDORES |" << endl;
cout << "---------------------------------------" << endl;
cout << "Presione cualquier tecla para disparar..." << endl;
cout << 'a';
cout << endl;
cout << "---------------------------------------" << endl;
cout << "| P A R T I E R O N !!! |" << endl;
cout << "---------------------------------------" << endl;
c.CalcularTurno();
_getch();
return 0;
}
void Carrera::ConfigurarCoches() {
Coches = new int[cantidadDeCoches];
for (int i = 0; i < cantidadDeCoches; i++)
Coches[i] = 0; //0 = punto de partida
}
//Define que coche debe avanzar y cuantos puntos.
void Carrera::CalcularTurno() {
do {
srand(time(NULL));
cocheSeleccionado = rand() % cantidadDeCoches - 1;
srand(time(NULL));
avance = rand() % 4;
Coches[cocheSeleccionado] += avance;
if (Coches[cocheSeleccionado] >= meta) {
ImprimirVictoria();
hayVencedor = true;
}
else {
ImprimirInfo();
}
} while (!hayVencedor);
}
void Carrera::ImprimirInfo() {
system("cls");
cout << "-----------------------------------------" << endl;
if (cocheSeleccionado != -1)
cout << "| Coche " << cocheSeleccionado + 1 << " suma " << avance << " kms! |" << endl;
else
cout << "| Ninguno piso el acelerador a fondo... |" << endl;
cout << "-----------------------------------------" << endl;
cout << endl;
for (int x = 0; x < cantidadDeCoches; x++)
cout << "Coche " << x + 1 << " ha avanzado " << Coches[x] << " kms." << endl;
cout << endl;
cout << "Presione cualquier tecla para actualizar.";
_getch();
}
void Carrera::ImprimirVictoria() {
system("cls");
cout << 'a';
cout << "##################################################" << endl;
cout << " V I C T O R I A ! " << endl;
cout << "##################################################" << endl;
cout << "El coche " << cocheSeleccionado << " ha llegado a la meta.!" << endl;
cout << "FIN DE LA CARRERA...";
}
Carrera.h
#pragma once
class Carrera {
int avance; //define cuantos puntos avanza un coche.
int cocheSeleccionado; //define que coche avanza la cantidad de puntos.
int meta = 10; //El primer coche que llegue a 10 ganara.
int cantidadDeCoches = 10; //cantidad de coches.
bool hayVencedor = false; //Si alguno ha llegado a la meta, hay vencedor
public:
int * Coches;
void ConfigurarCoches();
void CalcularTurno();
void ImprimirInfo();
void ImprimirVictoria();
};
Espero te sirva.. aunque ya por la fecha de tu pregunta, seguro lo has solucionado.