本文整理汇总了C++中Lista::ObtenerComienzoLista方法的典型用法代码示例。如果您正苦于以下问题:C++ Lista::ObtenerComienzoLista方法的具体用法?C++ Lista::ObtenerComienzoLista怎么用?C++ Lista::ObtenerComienzoLista使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lista
的用法示例。
在下文中一共展示了Lista::ObtenerComienzoLista方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AsignarAccionesDefault
void AsignarAccionesDefault(Lista<TipoLista> & lstAliados,Lista<TipoLista> & lstEnemigos, int TurnoActual, int MaximoTurno, int EnergiaInicial)
{
int SumaEnergiaAliados=SumaEnergia(lstAliados);
int SumaEnergiaEnemigos=SumaEnergia(lstEnemigos);
double FactorEnergia=(double)SumaEnergiaAliados/SumaEnergiaEnemigos;
Nodo<TipoLista> *NodoAux=lstAliados.ObtenerComienzoLista();
while(NodoAux)
{
int Energia=(NodoAux->ObtenerDato()).ObtenerEnergia();
if(Energia>FACTOR_VIDA_MAX*(EnergiaInicial))
(NodoAux->ObtenerDato()).AsignarAccion(DEFENSA);
else if(Energia<FACTOR_VIDA_MIN*(EnergiaInicial))
(NodoAux->ObtenerDato()).AsignarAccion(ATAQUE);
else
{
double FactorTurno=(double)(TurnoActual)/MaximoTurno;
if((FactorTurno>=FACTOR_TURNO_DEFECTO)&&(FactorEnergia<1))
(NodoAux->ObtenerDato()).AsignarAccion(ATAQUE);
else if((FactorTurno>=FACTOR_TURNO_DEFECTO)&&(FactorEnergia>1))
(NodoAux->ObtenerDato()).AsignarAccion(DEFENSA);
else
{
if(FactorEnergia>FACTOR_ENERGIA_DEFECTO)
(NodoAux->ObtenerDato()).AsignarAccion(DEFENSA);
else if(FactorEnergia<(double)1/FACTOR_ENERGIA_DEFECTO)
(NodoAux->ObtenerDato()).AsignarAccion(ATAQUE);
else
{
srand(time(NULL));
int AuxRandom=rand()%LIMITE_RANDOM;
if(!AuxRandom)
(NodoAux->ObtenerDato()).AsignarAccion(DEFENSA);
else
(NodoAux->ObtenerDato()).AsignarAccion(ATAQUE);
}
}
}
NodoAux=NodoAux->ObtenerSiguiente();
}
NodoAux=lstAliados.ObtenerComienzoLista();
}
示例2: SumaEnergia
int SumaEnergia(Lista<TipoLista> lst)
{
int Suma=0;
Nodo<TipoLista> *aux=lst.ObtenerComienzoLista();
while(aux)
{
Suma+=(aux->ObtenerDato()).ObtenerEnergia();
aux=aux->ObtenerSiguiente();
}
return Suma;
}
示例3: while
void Estrategia<TipoLista>::BuscarCercanos(int InfGranadaX, int InfGranadaY, int PosX, int PosY, int InfX, int InfY,
Lista<TipoLista> lst, Lista<TipoLista> & lstCercanos,
int Precision,bool Aliado)
/*BuscarCercanos(InfGranadaX,InfGranadaY,PosX,PosY,InfX,InfY,
lstEnemigos,lstEnemigosCercanos,PRECISION_DEFENSA,false); */
{
/*[PosX,PosY] es la posicion de nuestro soldado, y se recibe la lista de soldados
enemigos para devolver una lista donde quedan seleccionados nada mas los soldados
enemigos que pueden afectar a este soldado. */
Nodo<TipoLista> *aux=lst.ObtenerComienzoLista();
while(aux)
{
TipoLista Dato= aux->ObtenerDato();
if(EstaCerca(InfGranadaX,InfGranadaY,PosX,PosY,InfX,InfY,Dato,Aliado,Precision))
lstCercanos.Insertar(Dato);
aux=aux->ObtenerSiguiente();
}
}