Random
Random
Sveiki, reikia truputį pagalbos su random, kaip paprasčiausią pavizdį paimsiu 3 klases. Tarkim komandoje yra trys žaidėjai, ir jiem parenka random klasę, o kaip padaryti, kad ji nesikartotų? Turiu omenyje tai, kad visi 3 žaidėjai gautų po skirtingą klasę, nes paprastu būdu gali būti 2 tokios pačios ar net 3.
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Random
Papildomam masyve pažymėk, kad ta klasė jau panaudota ir pastoviai tikrini ar klasė nepanaudota.
Na vienas iš būtų. Bet turi prieš tai įsitikinti, kad bent viena klasė nėra užimta, nes kitaip amžinas ciklas susidarys ten.
Jei po to norėsi visą masyvą išvalyti, tai:
Code: Select all
new player_class[33]new classes[3]new bool:used_classes[3]get_random_class(id) { new rand while (used_classes[(rand=random(3))]) ; player_class[id] = rand used_classes[rand] = true}
Jei po to norėsi visą masyvą išvalyti, tai:
Code: Select all
arrayset(used_classes, false, sizeof(used_classes))
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Random
Ačiū už pagalbą
Re: Random
paprasciau galima.... true false uzmeti ir viskas..
Re: Random
Gerai padaryta,bet kodo daugiau
Re: Random
Jau sakiau.
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Random
Tai jau pasigirk kodu, kad taip geriau žinai. Keli variantai geriau nei vienas.alfre wrote:Jau sakiau.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Random
galima ir taip, bet kartais pasikartos ;p, pagal logika jei yra tik 3 klases, o zmoniu daugiau nei 3, bet kuriuo atveju kartosis, su arno kodu kiek maziau, nes yra atmintine padaryta, kad nesikartotu, bet jei nori optimalesnio varianto naudok sita
Code: Select all
enum _:classes { A = 0, B = 1, C = 2} stock get_random_class() { new ran = random_num(A, C) return ran }
"Give me control of a nation's money and I care not who makes it's laws" — Mayer Amschel Bauer Rothschild

Who is online
Users browsing this forum: No registered users and 0 guests