コード例 #1
0
 def hyokkays_toiminto(self):
     # katsotaan ensin, mahdolliset hyökkäyksen kohteet ja kyvyt ja tallennetaan ne sanakirjaan
     paras_kohde = Tekoaly.hyokkays_toiminto(self)
     if paras_kohde is None:
         pass
     elif paras_kohde == "KYKY1":
         self.kyky1()
     elif paras_kohde == "KYKY2":
         self.kyky2()
         self.liiku_ruutuun(self.__kyky2_ruutu)
         QtTest.QTest.qWait(self.kayttoliittyma.pelinohjain.viive)
         kohde = Tekoaly.hyokkays_toiminto(self, True)
         if kohde is not None:
             kohde.hyokkayksen_kohde(self)
     else:
         paras_kohde.hyokkayksen_kohde(self)
コード例 #2
0
ファイル: kps_tekoaly.py プロジェクト: mjjs/ohtu-kevat-2021
class KPSTekoaly(KiviPaperiSakset):
    def __init__(self):
        self._tekoaly = Tekoaly()

    def _toisen_pelaajan_siirto(self, ensimmainen_siirto):
        siirto = self._tekoaly.anna_siirto()
        print(f"Tietokone valitsi: {siirto}")
        return siirto
コード例 #3
0
ファイル: kps_tekoaly.py プロジェクト: ptuomola/ohtu-tehtavat
class KPSTekoaly(KPS):
    def __init__(self):
        self._tekoaly = Tekoaly()

    def _toisen_siirto(self, ensimmaisen_siirto):
        tokan_siirto = self._tekoaly.anna_siirto()
        print(f"Tietokone valitsi: {tokan_siirto}")
        return tokan_siirto
コード例 #4
0
class KPSTekoaly(KPS):

    def __init__(self):
        super().__init__()
        self.tekoaly = Tekoaly()

    def _toisen_siirto(self, siirto):
        return self.tekoaly.anna_siirto()
コード例 #5
0
    def pisteyta_ruutu(self, ruutu, kohderuutu):
        # pisteytys vihollisten perusteella
        pisteet = Tekoaly.pisteyta_kantamalla_olevat_viholliset(ruutu, self)

        # maaston puolustus ja hyökkäys
        maastokerroin_oma = Tekoaly.pisteyta_liikuttava_maasto(self, ruutu)
        pisteet *= maastokerroin_oma

        # kohteen lähestyminen
        kerroin = Tekoaly.pisteyta_kohteen_lahestyminen(self, ruutu, kohderuutu)
        pisteet *= kerroin

        # läheinen oma yksikkö
        etaisyyskerroin = Tekoaly.pisteyta_oman_yksikon_laheisyys(self, ruutu)
        pisteet *= etaisyyskerroin

        return pisteet
コード例 #6
0
class KPSTekoaly(KPS):
    def __init__(self):
        self._tekoaly = Tekoaly()

    # toteutetaan metodi pelityypin mukaisesti
    def _toisen_siirto(self, ensimmaisen_siirto):
        tokan_siirto = self._tekoaly.anna_siirto()

        print("Tietokoneen siirto: " + tokan_siirto)

        return tokan_siirto
コード例 #7
0
 def hyokkays_toiminto(self):
     # katsotaan ensin, mahdolliset hyökkäyksen kohteet ja tallennetaan ne sanakirjaan
     paras_kohde = Tekoaly.hyokkays_toiminto(self)
     if paras_kohde is None:
         pass
     elif paras_kohde == "KYKY1":
         self.kyky1_lisaa_kohde(self.__kyky1_kohde, True)
     elif paras_kohde == "KYKY2":
         self.kayta_kyky2(self.__kyky2_kohde)
     else:
         paras_kohde.hyokkayksen_kohde(self)
コード例 #8
0
    def pelaa(self):
        tuomari = Tuomari()
        tekoaly = Tekoaly()

        ekan_siirto = input("Ensimmäisen pelaajan siirto: ")
        tokan_siirto = tekoaly.anna_siirto()

        print(f"Tietokone valitsi: {tokan_siirto}")

        while self._onko_ok_siirto(ekan_siirto) and self._onko_ok_siirto(
                tokan_siirto):
            tuomari.kirjaa_siirto(ekan_siirto, tokan_siirto)
            print(tuomari)

            ekan_siirto = input("Ensimmäisen pelaajan siirto: ")
            tokan_siirto = tekoaly.anna_siirto()

            print(f"Tietokone valitsi: {tokan_siirto}")

        print("Kiitos!")
        print(tuomari)
コード例 #9
0
    def __pisteyta_ruutu_kyky1(self, ruutu):
        pisteet = 0
        if ruutu.yksikko is not None and ruutu.yksikko.omistaja == "PLR":
            pisteet += Tekoaly.pisteyta_pelkka_kohde(self, ruutu.yksikko)
        naapurit = {}
        for naapuri in ruutu.naapurit:
            if naapuri.yksikko is not None and naapuri.yksikko.omistaja == "PLR" and naapuri in self.ruudut_kantamalla:
                naapurit[naapuri] = Tekoaly.pisteyta_pelkka_kohde(
                    self, naapuri.yksikko)
            else:
                naapurit[naapuri] = 0
        # lajitellaan naapurit
        lajiteltu = sorted(naapurit.items(), key=lambda x: x[1], reverse=True)
        kohteet = [ruutu]

        # lisätään parhaat naapurit kohteisiin ja lisätään niiden pisteet kokonaispisteisiin
        for kohde in lajiteltu:
            if len(kohteet) < self.kyky1_kohteiden_maara:
                kohteet.append(kohde[0])
                pisteet += kohde[1]

        return kohteet, pisteet
コード例 #10
0
 def __init__(self):
     self._tekoaly = Tekoaly()
コード例 #11
0
 def liike(self, kohderuutu):
     Tekoaly.liike(self, kohderuutu)
コード例 #12
0
ファイル: pelitehdas.py プロジェクト: saijasyd/ohtu-2021
 def luo_pelaaja_vs_tekoaly_peli():
     return kps.KPSTekoaly(Tekoaly())
コード例 #13
0
 def __init__(self):
     super().__init__()
     self.tekoaly = Tekoaly()
コード例 #14
0
 def liike(self, kohderuutu):
     # arvioidaan paras kohde liikkumiselle
     self.__kohderuutu = kohderuutu
     Tekoaly.liike(self, kohderuutu)