예제 #1
0
 /**
  * Yhden kierroksen toteuttava metodi.
  *
  * @param eka Ensimmäinen tekoäly
  * @param toka Toinen tekoäly
  */
 public void pelaaKierros(AI eka, AI toka) {
   Siirto ensimmaisen = eka.teeSiirto();
   Siirto toisen = toka.teeSiirto();
   jaaPisteet(ensimmaisen, toisen, eka, toka);
   eka.vastaanotaSiirto(toisen);
   toka.vastaanotaSiirto(ensimmaisen);
 }
예제 #2
0
 /**
  * Viimeisen kierroksen peluuttaava metodi, joka ei pyydä enää uutta siirtoa tekoälyiltä.
  *
  * <p>Nollaa myös tekoälyt seuraavaa kierrosta varten.
  *
  * @param eka Ensimmäinen tekoäly
  * @param toka Toinen tekoly
  */
 private void pelaaViimeinenKierros(AI eka, AI toka) {
   Siirto ensimmaisen = eka.teeSiirto();
   Siirto toisen = toka.teeSiirto();
   jaaPisteet(ensimmaisen, toisen, eka, toka);
   eka.palautaAlkuperainenTila();
   toka.palautaAlkuperainenTila();
 }
예제 #3
0
 /**
  * Kierroksen pisteet jakava metodi.
  *
  * @param ensimmaisen Ensimmäisen tekoälyn siirto
  * @param toisen Toisen tekoälyn siirto
  * @param eka Ensimmäinen tekoäly
  * @param toka Toinen tekoäly
  */
 private void jaaPisteet(Siirto ensimmaisen, Siirto toisen, AI eka, AI toka) {
   if (ensimmaisen == Siirto.YHTEISTYO && toisen == Siirto.YHTEISTYO) {
     eka.lisaaPisteita(yhteistyonPalkinto);
     toka.lisaaPisteita(yhteistyonPalkinto);
   } else if (ensimmaisen == Siirto.YHTEISTYO && toisen == Siirto.PETOS) {
     eka.lisaaPisteita(tyhmyrinRangaistus);
   } else if (ensimmaisen == Siirto.PETOS && toisen == Siirto.YHTEISTYO) {
     toka.lisaaPisteita(tyhmyrinRangaistus);
   } else {
     eka.lisaaPisteita(pettureidenKompromissi);
     toka.lisaaPisteita(pettureidenKompromissi);
   }
 }