Re: Random
Posted: 2013 Aug 27 14:24

cia kazka man sakei? ;oInvIs wrote:Tai čia tas pats, kas buvo pradžioje temos, kad su random_num gali būti vienu metu visi vienodi. Šansas mažas, bet temos klausimas ir buvo, kaip suretinti, tad patylėk nesamonių nekalbėjęs
Code: Select all
enum _:classes { A = 0, B = 1, C = 2} stock get_random_class() { new ran = random_num(A, C) return ran }
tai naudok arnoxFrostas wrote:Įdėja yra tokia, kad žaidėjų ir klasių skaičius bus vienodas ir kiekvienas gaus po klasę. Tarkim bus 2 žaidėjai, o yra 3 klasės tai bus 2 skirtingos duotos, o 1 liks
alfre wrote:ar supranti,kad random_num(A, C) tai taspats kaip random_num(0, 2) ? tai nieko nekeiciaCode: Select all
enum _:classes { A = 0, B = 1, C = 2} stock get_random_class() { new ran = random_num(A, C) return ran }
vistiek random gali du kartus parinkti ta pacia klase.
Code: Select all
enum _:classes { A = 1, B = 2, C = 3}
Buvo teiginys, kad gali ir pasikartoti, tuo paciu, kad naudotu arno - priklausomai ko jam reikia, as tik pateikiau dar 1 varianta, o gedos - kokios dar gedosbeast wrote:sss, gal tu įsiskaityk į OP ir nebeklaidink žmonių bei nebesidaryk sau gėdos... Practice what you preach.
Code: Select all
stock random_class(id){ if(klase[0] == num && klase[1] == num && klase[2] == num) { num++ // Kadangi visos vietos užimtos, padarom laisvų random_class(id) // Stocką iškvies per naują, bet galima vietoje padaryti papildomą klasės traukimą, kuris yra žemiau "else'e" } else { new rand while(klase[rand = random(3)] == num) ; player[id] = rand // Kai rado laisvą vietą, priskiriam žaidėjui klase[rand] = num // Užimam vietą }}
ta pati arnas anksciau paraseInvIs wrote:Nesamonę rašai, net neįsiskaitai, ko jis nori. Tavo kodą jis jau turbūt senai turi ir žino kaip daryti, bet čia ne tai, ko jam reikia.
Šiaip, su daugiau žaidėjų, kažkada ir aš norėjau tokio prikolo, bet taip ir mečiau tas nesamones.
Galima bandyti kažką panašaus. Klausk, jei kokios mano nesamonės bus neaiškios, čia bandžiau kažką greitai sumąstyt.
Na čia aišku gali būti visiškai ne į tą pusę, nežinau, reiktų labiau pasibandyt.Code: Select all
stock random_class(id){ if(klase[0] == num && klase[1] == num && klase[2] == num) { num++ // Kadangi visos vietos užimtos, padarom laisvų random_class(id) // Stocką iškvies per naują, bet galima vietoje padaryti papildomą klasės traukimą, kuris yra žemiau "else'e" } else { new rand while(klase[rand = random(3)] == num) ; player[id] = rand // Kai rado laisvą vietą, priskiriam žaidėjui klase[rand] = num // Užimam vietą }}