A InfoWiki wikiből
a (Új oldal, tartalma: „== Kő, Papír, Olló == A kínaiak a betakarítás utám vállukon egy zsák rizzsel elballagnak a Plazaba, hogy ott az Arénában szerencsejátékok segítségével elj...”) |
Aktuális változat (2010. március 4., 08:27) (lapforrás) a |
||
(2 közbeeső változat nincs mutatva) | |||
13. sor: | 13. sor: | ||
* rizs mező - tartalmazza, hogy mennyi rizs van az adott kínai játékosnál, nem lehet negatív, külvilág nem tudja módosítani az értékét | * rizs mező - tartalmazza, hogy mennyi rizs van az adott kínai játékosnál, nem lehet negatív, külvilág nem tudja módosítani az értékét | ||
* konstruktor() fv - ezen keresztül lehet beállítani a rizs induló mennyiségét | * konstruktor() fv - ezen keresztül lehet beállítani a rizs induló mennyiségét | ||
- | * | + | * nyer() fv - a bíró hívja majd meg, ekkor a kínai növelheti a nála lévő rizs mennyiségét 1-el, hiszen nyert |
+ | * veszit() fv - a bíró hívja majd meg, ekkor a kínainak csökkentenie kell a nála lévő rizs mennyiségét 1-el, hiszen vesztett | ||
+ | * van_e_rizsed() fv - a bíró kérdezi, hogy van-e elég rizs nála egy következő játékhoz | ||
+ | |||
+ | === Fix Kínai osztály === | ||
+ | |||
+ | A Kinai Jatekos fejlesztése. Egy ilyen játékos nem random választ felmutatandó értéket, hanem mindíg ugyanazt az értéket (mondjuk mindíg követ) mutat. Ezt születésekor eldöntötték az Istenek, ettől nem tér el. A konstruktorában kell beállítani mit mutat majd fel következetesen. | ||
+ | |||
+ | === Egyszerű Bíró === | ||
+ | Egyetlen függvénye van, a '''lebonyolit()''', amely két kínai játékost (egyszerű vagy fix) kap paraméterként. Miután ellenőrízte hogy mindkettőnek van-e elég rizse egy játék lebonyolításához, majd felkéri a játékosokat a felmutatásra, eldönti ki nyert, elosztja a rizst. Ha döntetlen lett, akkor senki sem nyer és veszít rizst. | ||
+ | |||
+ | === Triád Bíró === | ||
+ | A helyi maffia által kiképzett bíró, annyiban más, hogy amikor a két játékos döntetlent hoz ki, akkor A '''BANK NYERT!''' felkiáltással mindkettőtől elveszi a rizst, és magánál tartja. | ||
+ | |||
+ | === Aréna osztály === | ||
+ | |||
+ | * jatekosok_listaja - egy lista, amelyben az Aréna területén bent lévő játékosok szerepelnek (vannak közöttük egyszerű, és fix játékosok is) | ||
+ | * birok_listaja - egy lista, amelyben a bírók szerepelnek (egyszerű, és triád bírók is) | ||
+ | * jatekos_belep() fv - ha egy játékos belép az arénába, akkor ott ellenőrzik, hogy van-e nála rizs, ha igen, akkor bekerül a listára | ||
+ | * biro_belep() fv - bírók lépnek az arénába | ||
+ | * egy_jatek() fv - az aréna választ random két játékost a listáról, és egy bírót, felkéri a bírót a játék lebonyolítására. | ||
+ | |||
+ | === Főprogram === | ||
+ | |||
+ | Létrehozza az Arénát, és random módon 80% eséllyel hol egy normál, hogy egy fix kínai játékost léptet be. A fix kínai játékosok random egyforma eséllyel választanak maguknak fix jelet (kő,papír,olló). Az induló rizs mennyiség legyen random 3-6 egység. Összesen 50 játékos legyen az Arénában. Aztán legyen 10 darab bíró, 70% eséllyel triád, 30% normál bíró. | ||
+ | |||
+ | A főprogram ezek után játszasson le 10000 menetet. A végén írassuk ki, melyik játékosnak mennyi rizse maradt, és melyik triád bírónál mennyi rizs van. Adjuk meg, a játékosok hány százaléka veszítette el az összes rizsét. | ||
+ | |||
+ | |||
+ | <code lang="csharp"> | ||
+ | using System; | ||
+ | using System.Collections.Generic; | ||
+ | using System.Linq; | ||
+ | using System.Text; | ||
+ | |||
+ | namespace ConsoleApplication3 | ||
+ | { | ||
+ | enum jatek { ko=0, papir=1, ollo=2 } | ||
+ | class alap_jatekos | ||
+ | { | ||
+ | static Random rnd = new Random(); | ||
+ | virtual public jatek felmutat() | ||
+ | { | ||
+ | int x = rnd.Next(0, 3); | ||
+ | return (jatek)x; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class kinai_jatekos : alap_jatekos | ||
+ | { | ||
+ | protected int _rizs; | ||
+ | public kinai_jatekos(int indulo_rizs) | ||
+ | { | ||
+ | if (indulo_rizs < 0) throw new Exception("nem lehet neg"); | ||
+ | _rizs = indulo_rizs; | ||
+ | } | ||
+ | public int rizs | ||
+ | { | ||
+ | get { return _rizs; } | ||
+ | } | ||
+ | public bool van_e_rizs() | ||
+ | { | ||
+ | return (_rizs > 0); | ||
+ | } | ||
+ | public void veszit() | ||
+ | { | ||
+ | if (_rizs == 0) throw new Exception("nem veszthetek!"); | ||
+ | _rizs--; | ||
+ | } | ||
+ | public void nyeres() | ||
+ | { | ||
+ | _rizs++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class fix_kinai : kinai_jatekos | ||
+ | { | ||
+ | protected jatek rogzitett_ertek; | ||
+ | public fix_kinai(int indulo_rizs,jatek fix):base(indulo_rizs) | ||
+ | { | ||
+ | rogzitett_ertek = fix; | ||
+ | } | ||
+ | override public jatek felmutat() | ||
+ | { | ||
+ | return rogzitett_ertek; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | class Program | ||
+ | { | ||
+ | static void Main(string[] args) | ||
+ | { | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> |
Aktuális változat
Tartalomjegyzék |
Kő, Papír, Olló
A kínaiak a betakarítás utám vállukon egy zsák rizzsel elballagnak a Plazaba, hogy ott az Arénában szerencsejátékok segítségével eljátszák vagy megduplázzák a termés mennyiségét. Az Arénában egymással kjő/papír/olló játékot játszanak, egy Bíró felügyelete mellett. A bíró ismeri a játékszabályokat, bonyolítja le a játékot, határozza meg ki nyert és ki veszített.
Alap Játékos Osztály
Az alap osztály a kő/papír/olló játék során szükséges. Alábbiakat tudja:
- felmutat() fv - random megadja a kő/papír/olló értékek valamelyikét
Kínai Játékos osztály
Az ALAP osztályból van továbbfejlesztve. Alábbiak szerint:
- rizs mező - tartalmazza, hogy mennyi rizs van az adott kínai játékosnál, nem lehet negatív, külvilág nem tudja módosítani az értékét
- konstruktor() fv - ezen keresztül lehet beállítani a rizs induló mennyiségét
- nyer() fv - a bíró hívja majd meg, ekkor a kínai növelheti a nála lévő rizs mennyiségét 1-el, hiszen nyert
- veszit() fv - a bíró hívja majd meg, ekkor a kínainak csökkentenie kell a nála lévő rizs mennyiségét 1-el, hiszen vesztett
- van_e_rizsed() fv - a bíró kérdezi, hogy van-e elég rizs nála egy következő játékhoz
Fix Kínai osztály
A Kinai Jatekos fejlesztése. Egy ilyen játékos nem random választ felmutatandó értéket, hanem mindíg ugyanazt az értéket (mondjuk mindíg követ) mutat. Ezt születésekor eldöntötték az Istenek, ettől nem tér el. A konstruktorában kell beállítani mit mutat majd fel következetesen.
Egyszerű Bíró
Egyetlen függvénye van, a lebonyolit(), amely két kínai játékost (egyszerű vagy fix) kap paraméterként. Miután ellenőrízte hogy mindkettőnek van-e elég rizse egy játék lebonyolításához, majd felkéri a játékosokat a felmutatásra, eldönti ki nyert, elosztja a rizst. Ha döntetlen lett, akkor senki sem nyer és veszít rizst.
Triád Bíró
A helyi maffia által kiképzett bíró, annyiban más, hogy amikor a két játékos döntetlent hoz ki, akkor A BANK NYERT! felkiáltással mindkettőtől elveszi a rizst, és magánál tartja.
Aréna osztály
- jatekosok_listaja - egy lista, amelyben az Aréna területén bent lévő játékosok szerepelnek (vannak közöttük egyszerű, és fix játékosok is)
- birok_listaja - egy lista, amelyben a bírók szerepelnek (egyszerű, és triád bírók is)
- jatekos_belep() fv - ha egy játékos belép az arénába, akkor ott ellenőrzik, hogy van-e nála rizs, ha igen, akkor bekerül a listára
- biro_belep() fv - bírók lépnek az arénába
- egy_jatek() fv - az aréna választ random két játékost a listáról, és egy bírót, felkéri a bírót a játék lebonyolítására.
Főprogram
Létrehozza az Arénát, és random módon 80% eséllyel hol egy normál, hogy egy fix kínai játékost léptet be. A fix kínai játékosok random egyforma eséllyel választanak maguknak fix jelet (kő,papír,olló). Az induló rizs mennyiség legyen random 3-6 egység. Összesen 50 játékos legyen az Arénában. Aztán legyen 10 darab bíró, 70% eséllyel triád, 30% normál bíró.
A főprogram ezek után játszasson le 10000 menetet. A végén írassuk ki, melyik játékosnak mennyi rizse maradt, és melyik triád bírónál mennyi rizs van. Adjuk meg, a játékosok hány százaléka veszítette el az összes rizsét.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication3 { enum jatek { ko=0, papir=1, ollo=2 } class alap_jatekos { static Random rnd = new Random(); virtual public jatek felmutat() { int x = rnd.Next(0, 3); return (jatek)x; } } class kinai_jatekos : alap_jatekos { protected int _rizs; public kinai_jatekos(int indulo_rizs) { if (indulo_rizs < 0) throw new Exception("nem lehet neg"); _rizs = indulo_rizs; } public int rizs { get { return _rizs; } } public bool van_e_rizs() { return (_rizs > 0); } public void veszit() { if (_rizs == 0) throw new Exception("nem veszthetek!"); _rizs--; } public void nyeres() { _rizs++; } } class fix_kinai : kinai_jatekos { protected jatek rogzitett_ertek; public fix_kinai(int indulo_rizs,jatek fix):base(indulo_rizs) { rogzitett_ertek = fix; } override public jatek felmutat() { return rogzitett_ertek; } } class Program { static void Main(string[] args) { } } }