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.