ARREGLOS EN C++

Freddy
27 de Abril del 2017

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…



08 de Julio del 2017

entretenido juego, voy a intentarlo a ver si me resulta y posteo el codigo aquí en caso que este bien..



09 de Julio del 2017

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.