
Zamysł jest taki. Jeśli członek biorący udział ma największą ilość sumy (tj. statystyk odpowiedzialnych za trafienie) to losuje czy wykona atak(80% szans), jeśli się nie uda mu losowanie jego atak spada na koniec kolejki gdzie znowu będzie losował. I teraz kod:
Kod
while($Runda != 11 && ($Mob->HP > 0 && $HP > 0))
{
$text .= "Runda: $Runda<br />";
$i = 0;
while(($row = current($Kolejka)) !== false)
{
if($row->Pozostalo == 0)
{
next($Kolejka);
continue;
}
$text .= "$row->Nazwa Pozostalo atakow: $row->Pozostalo<br />";
if(rand(0, 100) > 80)
{
$Kolejka[] =& $row;
next($Kolejka);
continue;
}
else // Udało mu się wylosować atak
{
if($row->Mob == true)
{
$text .= "Atakuje $row->Nazwa.<br />";
$row->Pozostalo--;
$Kolejka[] =& $row;
}
else
{
$text .= "Atakuje $row->Nazwa. <br />";
$row->Pozostalo--;
$Kolejka[] =& $row;
}
}
}
$Runda++;
$text .= "$Mob->Nazwa pozostało $Mob->HP punktów życia.<br />";
}
{
$text .= "Runda: $Runda<br />";
$i = 0;
while(($row = current($Kolejka)) !== false)
{
if($row->Pozostalo == 0)
{
next($Kolejka);
continue;
}
$text .= "$row->Nazwa Pozostalo atakow: $row->Pozostalo<br />";
if(rand(0, 100) > 80)
{
$Kolejka[] =& $row;
next($Kolejka);
continue;
}
else // Udało mu się wylosować atak
{
if($row->Mob == true)
{
$text .= "Atakuje $row->Nazwa.<br />";
$row->Pozostalo--;
$Kolejka[] =& $row;
}
else
{
$text .= "Atakuje $row->Nazwa. <br />";
$row->Pozostalo--;
$Kolejka[] =& $row;
}
}
}
$Runda++;
$text .= "$Mob->Nazwa pozostało $Mob->HP punktów życia.<br />";
}
i efekt wykonania:
Kod
Runda: 1
( MECH ) Naster Pozostalo atakow: 20
Atakuje ( MECH ) Naster.
( MECH ) Naster Pozostalo atakow: 19
UFO Pozostalo atakow: 10
Seki40 Pozostalo atakow: 11
Atakuje Seki40.
Seki40 Pozostalo atakow: 10
Atakuje Seki40.
Seki40 Pozostalo atakow: 9
Atakuje Seki40.
Seki40 Pozostalo atakow: 8
Atakuje Seki40.
Seki40 Pozostalo atakow: 7
Atakuje Seki40.
Seki40 Pozostalo atakow: 6
Atakuje Seki40.
Seki40 Pozostalo atakow: 5
Atakuje Seki40.
Seki40 Pozostalo atakow: 4
Seki40 Pozostalo atakow: 4
Atakuje Seki40.
Seki40 Pozostalo atakow: 3
Atakuje Seki40.
Seki40 Pozostalo atakow: 2
Atakuje Seki40.
Seki40 Pozostalo atakow: 1
Seki40 Pozostalo atakow: 1
Atakuje Seki40.
UFO pozostało 4540 punktów życia.
( MECH ) Naster Pozostalo atakow: 20
Atakuje ( MECH ) Naster.
( MECH ) Naster Pozostalo atakow: 19
UFO Pozostalo atakow: 10
Seki40 Pozostalo atakow: 11
Atakuje Seki40.
Seki40 Pozostalo atakow: 10
Atakuje Seki40.
Seki40 Pozostalo atakow: 9
Atakuje Seki40.
Seki40 Pozostalo atakow: 8
Atakuje Seki40.
Seki40 Pozostalo atakow: 7
Atakuje Seki40.
Seki40 Pozostalo atakow: 6
Atakuje Seki40.
Seki40 Pozostalo atakow: 5
Atakuje Seki40.
Seki40 Pozostalo atakow: 4
Seki40 Pozostalo atakow: 4
Atakuje Seki40.
Seki40 Pozostalo atakow: 3
Atakuje Seki40.
Seki40 Pozostalo atakow: 2
Atakuje Seki40.
Seki40 Pozostalo atakow: 1
Seki40 Pozostalo atakow: 1
Atakuje Seki40.
UFO pozostało 4540 punktów życia.
Męczę się już jakiś czas... miałem nadzieję że sam napiszę to ale chyba już to przerasta mnie. Ma ktoś jakiś pomysł co jest źle?
Dodam że $Kolejka to tablica która przechowuje referencje do classy opisującej każdego członka.
Cały kod pliku załaczam w tym linku
http://www.wklej.org/id/349873/
Z góry dziękuje za pomoc.