Autor Zpráva
orava
Profil
nevite ako by sa dali sprvit straty pri utoku?
Ze zautoci 5 Pesiakov a 10 kavalerie
Proti 3 pesiakom a 3 kavalerie
Tak by zomrelo 2 pesiaci a 3 kavalerie?

Napisal som zatial toto ale nefungujte to dobre pretoze to je rovnomerne

$utok=($pu*35)+($ku*80); // $pu = pocet utociacis pesiakov a $ku = pocet utociacis kavalerii
$obrana=($po*60)+($ko*40); // $po = pocet obranovacich pesiak a $ko ...
if ($utok>$obrana){
$jdn=$pu+$ku;
$s=$utok-$obrana;
$po=$s/$jdn;
$sp=($pu/$jdn)*$pu;
$kp=($ku/$jdn)*$ku;
$sp=floor($sp);
$kp=floor($kp);
echo 'prezilo p : '.$sp;
echo '<br>';
echo 'prezilo K :'.$kp;
suky
Profil
orava
neefektivni, chtelo by zapremyslet nad efektivnim algoritmem...
orava
Profil
suky
sak ten asi neviem
suky
Profil
orava
Nj, ale s tim ti nemuze nikdo pomoci, protoze tenhle algoritmus se odviji z tve aplikace...
orava
Profil
suky
A to uz preco?

Stacilo keby ste mi napisali aspon teoreticky ako by to asi malo fungovat
Joker
Profil
orava
Stacilo keby ste mi napisali aspon teoreticky ako by to asi malo fungovat
No ale jak my to máme vědět?

Přece jestli by měl jediný člověk na světě vědět, jak má program fungovat, měl by to být autor toho programu.
Jestli se ten projekt dostal do stavu, že prostě programujete skripty u kterých nevíte, co přesně mají dělat, to už je docela krize :-). Možná by nebylo od věci se zastavit a popřemýšlet nad nějakou analýzou ;-)
orava
Profil
P = pesiak
K = kavaleria
Malo by to asi fungovat tak ze utocnik bude mat straty v pomere 3/2 ( tzn. Ked ide 5P a 5K tak zomrie 3P a 2K ) a obrancovi zomrie vsetko
suky
Profil
orava
A co kdyz pujde 10K na 20P? Chapej, takova vec se musi dopredu promyslet! Nejde tvorit algoritmus utoceni na koleni...
TSD
Profil
Nevím co je na tom tak složitého.

Každý typ jednotky má svou váhu, když se střetnou dva soupeři, spočítám pro každého sumu (počet jednotek krát jejich váha). Přidám jakýsi faktor náhody, tzn. poměr sil Sila1:Sila2 rozhodím nějakým náhodným koeficientem cca v intervalu 0.95-1.05 a podle tohoto poměru budou jednotky nějak ubývat v čase.

Aby ta hra měla smysl, tak suma sil, spočítaná jako první krok, by měla být ovlivněná ještě nějakými okolnostmi. Příklad: když římský voják potká papuánce v džungli, dopadne souboj asi jinak, než někde ve městě.

EDIT
Další faktory:
- útok je náročnější než obrana - vzpomeň si na 300: Bitva u Thermopyl :)
- kdy naposled vojáci bojovali - potřebují nabrat síly
- jak je to se zásobením? Jednotku, která týden nejedla, nepotřebuješ ani porazit, tu prostě ukecáš.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0