/* A Bank objektum reprezentalja a bankot. A Banknak van - penze kepes - fogadasokat fogadni es kiertekelni, nyert-e vagy vesztett a fogado - kiirni, mennyi penze van kommunikal - a jatekosokkal, akik fogadnak nala */ class Bank { int penz; // Konstruktor, megkapja a Bank kezdeti penzet Bank( int penz_p ) { penz = penz_p; } // Fogadas kiertekeles, megkapja a fogadast (0 vagy 1), o is fogad // es visszaadja, mennyit nyert a jatekos (-1 vagy 1). Sajat penzet // a jatekos nyeremenyevel ellenkezoleg modositja int FogadasErtekeles( int fogadas ) { // Dob fejet vagy irast int penzerme,jatekos_nyeremeny; if( Math.random() < 0.5 ) { System.out.println( "Fej nyer" ); penzerme = 0; } else { System.out.println( "Iras nyer" ); penzerme = 1; } if( fogadas == penzerme ) jatekos_nyeremeny = 1; else jatekos_nyeremeny = -1; penz = penz - jatekos_nyeremeny; System.out.println( "Jatekos nyeremenye: "+jatekos_nyeremeny ); return jatekos_nyeremeny; } void PenzKiir() { System.out.println( "A banknak "+penz+" penze van" ); } } /* A Jatekos objektum reprezentalja a fogadot. A Jatekosnak van - azonositosszama - penze kepes - fogadni - kiirni, mennyi penze van kommunikal - a bankkal, amikor bekuldi a fogadasat es visszakapja, nyert-e. */ class Jatekos { Bank bank; int penz; int jatekos_szam; // Konstruktor. Megkapja a jatekos azonositojat, a penzenek a mennyiseget // es egy referenciat a bankra, hogy fogadhasson Jatekos( int jatekos_szam_p, int penz_p, Bank bank_p ) { jatekos_szam = jatekos_szam_p; penz = penz_p; bank = bank_p; } // Egy fogadas a banknal. void Fogad() { int fogadas,jatekos_nyeremeny; if( Math.random() < 0.5 ) { System.out.println( "Fogadas fejre" ); fogadas = 0; } else { System.out.println( "Fogadas irasra" ); fogadas = 1; } penz = penz + bank.FogadasErtekeles( fogadas ); } void PenzKiir() { System.out.println( "A "+jatekos_szam+". jatekosnak "+penz+" penze van" ); } } /* Fogado objektum reprezentalja vezerlot, ami a Jatekost (Jatekosokat) fogadtatja a Banknal A Fogadonak van - Bank objektuma - Egy vagy tobb Jatekos objektuma kepes - Vegrehajtatni a fogadasi sorozatot kommunikal - A Jatekossal, amikor fogadast ker tole */ public class Fogado { Bank bank; Jatekos j1; /* Harom jatekosos modhoz torold a megjegyzest Jatekos j2; Jatekos j3; */ void Jatszma() { // 1000 egyseg kezdeti penz a banknal Bank bank = new Bank( 1000 ); // 1. jatekos 20 egyseg penzzel j1 = new Jatekos( 1,20,bank ); /* Harom jatekosos modhoz torold ki a kommentart // 2. jatekos 20 egyseg penzzel j2 = new Jatekos( 2,20,bank ); // 3. jatekos 20 egyseg penzzel j3 = new Jatekos( 3,20,bank ); */ // Kezdodik 10 kornyi fogadas for( int i = 1 ; i <= 10 ; ++i ) { System.out.println( i+". kor" ); // A jatekosok sorban fogadnak j1.Fogad(); /* 3 jatekosos modhoz torold ki a kommentart j2.Fogad(); j3.Fogad(); */ // Kiirjuk a jatekosok es a bank penzet j1.PenzKiir(); /* 3 jatekosos modhoz torold ki a kommentart j2.PenzKiir(); j3.PenzKiir(); */ bank.PenzKiir(); } } public static void main( String args[] ) { Fogado f = new Fogado(); f.Jatszma(); } }