Նարդի – Թափանցիկություն և անվտանգություն
Ի՞նչ է «սերվերն է որոշում» սկզբունքը
Սերվերը ստուգում է խաղի բոլոր գործողությունները։ Սարքդ միայն ցուցադրում է խաղի վիճակը՝ այն չի կարող փոխել կամ ազդել արդյունքի վրա։
Սերվերն է կառավարում՝
- Զառերի գեներացիա
- Քայլերի ստուգում
- Ժամանակի կառավարում
Խաղացողն է կառավարում՝
- Երբ են գեներացվում զառերը
- Քարերի շարժը
Ինչպե՞ս են գեներացվում զառերը
Զառերի բոլոր արժեքները գեներացվում են սերվերում՝ Rust-ի rand գրադարանով՝
- Յուրաքանչյուր զառ տալիս է պատահական թիվ 1-ից 6
- Անկողմնակալ զառեր՝ յուրաքանչյուր արժեք (1-6) ունի հավասար հավանականություն
- Կրիպտոգրաֆիկորեն անվտանգ գեներատոր (ChaCha հիմքով՝ նույն դասի, ինչ TLS-ում)
- Սերմանվում է օպերացիոն համակարգի էնտրոպիայից՝ պատահականության ոսկե ստանդարտը
- Օգտագործում է Rust-ի ստանդարտ պատահական թվերի գեներատորը (rand v0.10)
Դիտել կոդը
// engine/src/manager/dice_manager.rs
let value = rand::rng().random_range(1..=6);rand 0.10՝ Rust-ի ամենավստահելի պատահականության գրադարանը (500 մլն+ ներբեռնում)
Ո՞վ է սկսում առաջինը
Սերվերը պատահականորեն որոշում է, թե ով է սկսում՝
- Սկսողին ընտրում է պատահական բուլյան արժեքով (true/false)
- Յուրաքանչյուր խաղացող ունի սկսելու ուղիղ 50% հնարավորություն
- Ոչ մի խաղացող առավելություն չունի
Ինչո՞ւ է սա կարևոր
- Խաբելն անհնար է՝ խաղի ամբողջ տրամաբանությունը սերվերում է
- Բոլոր որոշումները (զառեր, քայլեր, հաղթանակներ) ստուգվում են սերվերում
- Սարքդ ցուցադրում է միայն այն, ինչ ասում է սերվերը
- Սերվերը ճշմարտության միակ աղբյուրն է՝ ոչ ոք չի կարող կեղծել արդյունքները
Վճարովի բովանդակություն
Թեյը և քարերի տեսքերն անձնական ոճի համար են։
- Վաստակվում են խաղալով կամ գնվում են
- Խաղի արդյունքների վրա չեն ազդում