Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
a
Aktuális változat (2010. március 4., 08:27) (lapforrás)
a
 
54. sor: 54. sor:
     {
     {
         static Random rnd = new Random();
         static Random rnd = new Random();
-
         public jatek felmutat()
+
         virtual public jatek felmutat()
         {
         {
             int x = rnd.Next(0, 3);
             int x = rnd.Next(0, 3);
-
             return (jatek)x;0
+
             return (jatek)x;
         }
         }
     }
     }
85. sor: 85. sor:
         {
         {
             _rizs++;
             _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;
         }
         }
     }
     }
95. sor: 108. sor:
     }
     }
}
}
 +
</code>
</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)
        {
        }
    }
}
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp4/gyak005
Nézetek
nincs sb_3.238.64.201 cikk