Hola^^
Me gustaría saber si alguien me podría ayudar con un problema que tengo, y es que no me compila un programa, no lo ejecuta y no sé por qué, dejo aquí el código a ver si alguien me podría ayudar. Gracias de antemano^^
#include<iostream>
#include<ctime>
#include<conio.h>
using namespace std;
const int N=7;
const int MinimoSoldados = 5;
const int MaximoSoldados = 20;
struct STerritorio{
float Soldados;
int Propietario;
};
void IniciaTerritorios(STerritorio);
void DibujaTerritorios(STerritorio);
void Atacar(STerritorio);
void ActualizarTabla(STerritorio);
int main(){
int Soldados, Z, X, Numero;
srand(time(0));
STerritorio Territorio[N*2];
IniciaTerritorios(Territorio);
DibujaTerritorios(Territorio);
Atacar(Territorio);
ActualizarTabla(Territorio);
M = (MaximoSoldados - MinimoSoldados)+1;
system("pause");
return 0;
}
void IniciaTerritorios(STerritorio &T){
int c;
srand(time(0));
Propietario=0;
for(c=1;c<=N;c++)//genera los numeros aleatorios para los terrenos
{
num=5+rand()%(M);
cin.getline(T.Soldados);
cin.getline(T.Propietario);
if (Propietario = 0)
Propietario = 1;
else
Propietario = 0;
}
cin.get();
}
void DibujaTerritorio(STerritorio T){
cout << T.Soldados << endl;
cout << T.Propietario << endl;
}
void Atacar(STerritorio &T){
do{
N = N-2;
cout << "Numero parcela a atacar: ";
cin >> Numero;
if(Numero<=N && Numero > 0){
Z = (Numero*2)-1;//doble de la parcela a atacar
X = Territorio[Z-1].Soldados + Territorio[Z+1].Soldados;//soldados totales
if (Territorio[Z].Soldados > 2*X){
ActualizarTabla(STerritorio ,Z,X);
}
}
}
}
void ActualizarTabla(STerritorio &T, int Z, int X){
for(c=0;c<=N;c++){
if (c==Z-1)
Territorio.Soldados = X;
else if (c>Z-1)
Territorio.Soldados = Territorio[c+2].Soldados
else if (c<Z-1)
Territorio.Soldados = Territorio.Soldados
}
}