Exemple #1
0
 def __init__(self, title="Blank Window"):
     self.root = tkinter.Tk() 
     self.root.title(title) 
     # Spieler figuren 
     self.spielergruen = tkinter.PhotoImage (file="Spieler_Gruen.gif") 
     self.spielergelb = tkinter.PhotoImage (file="Spieler_Gelb.gif") 
     self.Spielerweiß = tkinter.PhotoImage (file="Spieler_Weiß.gif") 
     self.Oberfläche_erzeugen() 
     self.__viergewinnt = viergewinntklasse() 
     self.__Array = [["w" for x in range(7)] for y in range(6)] 
 def __init__(self,
              eigenefarbe,
              fremdefarbe,
              restzuege,
              spielfeld=[["w" for x in range(7)] for y in range(6)]):
     self.__eigeneSpielsteinfarbe = eigenefarbe
     self.__fremdeSpielsteinfarbe = fremdefarbe
     self.__Ausgang = ""
     self.__VierGewinntKlasse = viergewinntklasse(spielfeld, restzuege)
     self.KI_1 = KI(eigenefarbe, fremdefarbe)
     self.KI_2 = KI(fremdefarbe, eigenefarbe)
Exemple #3
0
    def test_B(self):
        viergewinnt = viergewinntklasse()
        Array = [["w" for x in range(7)] for y in range(6)]
        Array[0][0] = 'ge'
        Array[1][0] = 'gr'
        Array[2][0] = 'ge'
        Array[3][0] = 'ge'
        Array[4][0] = 'gr'
        Array[5][0] = 'ge'
        Array[0][1] = 'gr'
        Array[1][1] = 'gr'
        Array[2][1] = 'ge'
        Array[3][1] = 'gr'
        Array[4][1] = 'ge'
        Array[5][1] = 'gr'
        Array[0][2] = 'ge'
        Array[1][2] = 'gr'
        Array[2][2] = 'ge'
        Array[3][2] = 'gr'
        Array[4][2] = 'ge'
        Array[5][2] = 'gr'
        Array[1][3] = 'ge'
        Array[2][3] = 'gr'
        Array[3][3] = 'ge'
        Array[4][3] = 'gr'
        Array[5][3] = 'ge'
        Array[0][4] = 'ge'
        Array[1][4] = 'ge'
        Array[2][4] = 'gr'
        Array[3][4] = 'ge'
        Array[4][4] = 'gr'
        Array[5][4] = 'ge'
        Array[0][5] = 'gr'
        Array[1][5] = 'gr'
        Array[2][5] = 'gr'
        Array[3][5] = 'ge'
        Array[4][5] = 'gr'
        Array[5][5] = 'ge'
        Array[0][6] = 'ge'
        Array[1][6] = 'gr'
        Array[2][6] = 'ge'
        Array[3][6] = 'gr'
        Array[4][6] = 'ge'
        Array[5][6] = 'gr'

        viergewinnt._viergewinntklasse__Array = Array
        viergewinnt._viergewinntklasse__Spielergebnis()
        Output = viergewinnt._viergewinntklasse__Ergebnis
        self.assertEqual("", Output, "Überprüfung ist nicht korrekt")
 def SinnvollerZug(self, Zug,zugüberprüfung, Ebene,egal):
     # überprüfung ob der Stein auch auf der richtigen Ebene landet
     if Zug == None:
         return False
     if Ebene == None or Ebene == 10000:
         Ebene = 10000
         if self.__Spielfeld[int(0)][Zug] != "w":
             return False
     if Ebene != 10000 and Ebene < 5:
         if self.__Spielfeld[int(Ebene)+1][Zug] == "w":
             return False
         elif zugüberprüfung == False:
             return True
     if zugüberprüfung == True:
         # um sicherzugehen das man sich mit dem eigenen zug kein Grab schaufelt
         if self.__eigeneSpielsteinfarbe == "gr":
             reststeine = 20
         else:
             reststeine = 19
         spielfeld = copy.deepcopy(self.__Spielfeld)
         self.__VierGewinntKlasse = viergewinntklasse(spielfeld,reststeine)
         self.__VierGewinntKlasse.setSpielzug(Zug)
         self.__VierGewinntKlasse.ausführen()
         # Überprüfung ob man mit dem übernächsten zug gewinnen kann
         testKI = KI(self.__eigeneSpielsteinfarbe,self.__fremdeSpielsteinfarbe)
         testKI.setSpielfeld(self.__VierGewinntKlasse.getArray())
         testKI.ÜberprüfungobdreiSteineineinerReiheliegen(self.__eigeneSpielsteinfarbe,self.__fremdeSpielsteinfarbe,False)
         testKIZug = testKI.__Spielzug
         testgegnerZug = Zug
         if testgegnerZug != None:
             self.__VierGewinntKlasse.setSpielzug(testgegnerZug)
             self.__VierGewinntKlasse.ausführen()
         else:
             return False
         #  "    Kontrolle ob der Gegner mit dem nächsten Zug gewinnen kann       
         if self.__VierGewinntKlasse.getErgebnis() == self.__fremdeSpielsteinfarbe:
             return False
         else: 
             # Überprüfung ob man sich selber verbauen kann
             if testKIZug == "" or egal == True:
                 return True
             else:
                 return False
     else:
         return True
    def Spielzuggenerieren(self):
        steine = 0
        for element in self.__Spielfeld:
            if element == "w":
                steine += 1
        spalte = [0, 0, 0, 0, 0, 0, 0, 0]
        xy = 0
        while xy < 8:
            self.__VierGewinntKlasse = viergewinntklasse(
                self.__Spielfeld, steine)
            self.__VierGewinntKlasse.setSpielzug(0)
            self.__VierGewinntKlasse.ausführen()
            Game0 = Game(self.__eigeneSpielsteinfarbe,
                         self.__fremdeSpielsteinfarbe, steine - 1,
                         self.__VierGewinntKlasse.getArray())
            if Game0.start() == True:
                spalte[xy] = Game0.getAusgang()
            xy += 1

        b = max(spalte)
        return spalte.index(b)
Exemple #6
0
def on_mouse_down(pos):
    global Vier_Gewinnt
    global Spielbeginnt
    global Spieler_Gelb_1_0
    global Spieler_Gruen_1_0
    global Spieler_Gelb_2_0
    global Spieler_Gruen_2_0
    # Spalte des Zuges ermitteln
    xmouse = pos[0]
    ymouse = pos[1]
    spalte = 100
    if xmouse >= 2.5 and xmouse <= 67.4:
        spalte = 0
    elif xmouse >= 67.5 and xmouse <= 132.4:
        spalte = 1
    elif xmouse >= 132.5 and xmouse <= 197.4:
        spalte = 2
    elif xmouse >= 197.5 and xmouse <= 262.4:
        spalte = 3
    elif xmouse >= 152.5 and xmouse <= 327.4:
        spalte = 4
    elif xmouse >= 217.5 and xmouse <= 392.4:
        spalte = 5
    elif xmouse >= 272.5 and xmouse <= 457.4:
        spalte = 6
    if ymouse <= 4 or ymouse >= 395:
        spalte = 100
    if spalte != 100 and Vier_Gewinnt.getSpielbeendet() == False and Spielbeginnt == True:

        if Spieler_Gelb_1_0 == True and Vier_Gewinnt.getRestSpielzüge() %2 == 0 and Spieler_Gruen_1_0 == False:
            Vier_Gewinnt.setSpielzug(spalte)
            Vier_Gewinnt.ausführen()
        elif Spieler_Gruen_1_0 == True and Vier_Gewinnt.getRestSpielzüge() %2 == 1 and Spieler_Gelb_1_0 == False:
            Vier_Gewinnt.setSpielzug(spalte)
            Vier_Gewinnt.ausführen()


        # ===============================================================================================================================================================================================================================
        if Vier_Gewinnt.getRestSpielzüge() %2 == 0 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gruen_1_0 == True and Spieler_Gelb_1_0 == False :
            KI_Gruen_1_0.setSpielfeld(Array)
            Vier_Gewinnt.setSpielzug(KI_Gruen_1_0.Spielzuggenerieren())
            time.sleep(1)
            Vier_Gewinnt.ausführen()
        # ================================================================================================================================================================================================================================

        # ===============================================================================================================================================================================================================================
        if Vier_Gewinnt.getRestSpielzüge() %2 == 1 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gelb_1_0 == True and Spieler_Gruen_1_0 == False:
            KI_Gelb_1_0.setSpielfeld(Array)
            Vier_Gewinnt.setSpielzug(KI_Gelb_1_0.Spielzuggenerieren())
            time.sleep(1)
            Vier_Gewinnt.ausführen()
        # ================================================================================================================================================================================================================================
        # Spielfeld erstellen


        # ===============================================================================================================================================================================================================================
        if Vier_Gewinnt.getRestSpielzüge() %2 == 0 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gruen_2_0 == True and Spieler_Gelb_1_0 == False and Spieler_Gelb_2_0 == False :
            KI_Gruen_2_0.setSpielfeld(Array)
            Vier_Gewinnt.setSpielzug(KI_Gruen_2_0.Spielzuggenerieren())
            #time.sleep(1)
            Vier_Gewinnt.ausführen()
        # ================================================================================================================================================================================================================================

        # ===============================================================================================================================================================================================================================
        if Vier_Gewinnt.getRestSpielzüge() %2 == 1 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gelb_2_0 == True and Spieler_Gruen_1_0 == False and Spieler_Gruen_2_0 == False:
            KI_Gelb_2_0.setSpielfeld(Array)
            Vier_Gewinnt.setSpielzug(KI_Gelb_2_0.Spielzuggenerieren())
           #time.sleep(1)
            Vier_Gewinnt.ausführen()
        # ================================================================================================================================================================================================================================
        __Spielfeldgenerieren()
     


    elif Spielbeginnt == False:
        # Spieler 1
        if xmouse >= 500 and xmouse <= 565 and ymouse >=100 and ymouse <=115:
            Spieler_Gelb_1_0 = False
            Spieler_Gelb_2_0 = False
        elif xmouse >= 600 and xmouse <= 615 and ymouse >=100 and ymouse <=115:
            Spieler_Gelb_1_0 = True
            Spieler_Gelb_2_0 = False
        elif xmouse >= 650 and xmouse <= 680 and ymouse >= 100 and ymouse <= 115:
            Spieler_Gelb_2_0 = True
            Spieler_Gelb_1_0 = False
        # Spieler 2
        if xmouse >= 500 and xmouse <= 565 and ymouse >=250 and ymouse <=265:
            Spieler_Gruen_1_0 = False
            Spieler_Gruen_2_0 = False
        elif xmouse >= 600 and xmouse <= 615 and ymouse >=250 and ymouse <=265:
            Spieler_Gruen_1_0 = True
            Spieler_Gruen_2_0 = False
        elif xmouse >= 650 and xmouse <= 680 and ymouse >=250 and ymouse <=265:
            Spieler_Gruen_2_0 = True
            Spieler_Gruen_1_0 = False

        if Spieler_Gelb_1_0 == True:
            labelloeschen("Mensch  ")
            labelloeschen("KI 2 ")
        elif Spieler_Gelb_2_0 == True:
            labelloeschen("Mensch  ")
            labelloeschen("KI  ")
        elif Spieler_Gelb_1_0 == False and Spieler_Gelb_2_0 == False: 
            labelloeschen("KI  ")
            labelloeschen("KI 2 ")
        if Spieler_Gruen_1_0 == True:
            labelloeschen("Mensch")
            labelloeschen("KI 2")
        elif Spieler_Gruen_2_0 == True:
            labelloeschen("Mensch")
            labelloeschen("KI")
        elif Spieler_Gruen_1_0 == False and Spieler_Gruen_2_0 == False:
            labelloeschen("KI")
            labelloeschen("KI 2")
        if Spieler_Gelb_1_0 != None and Spieler_Gruen_1_0 != None :
            Spielbeginnt = True
            #================================
            if Vier_Gewinnt.getRestSpielzüge() %2 == 1 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gelb_1_0 == True and Spieler_Gruen_1_0 == False and Spieler_Gruen_2_0 == False:
                KI_Gelb_1_0.setSpielfeld(Array)
                Vier_Gewinnt.setSpielzug(KI_Gelb_1_0.Spielzuggenerieren())
                Vier_Gewinnt.ausführen()
            #=====================
            #==========================
            if Vier_Gewinnt.getRestSpielzüge() %2 == 1 and Vier_Gewinnt.getSpielbeendet() ==False and Spieler_Gelb_2_0 == True and Spieler_Gruen_1_0 == False and Spieler_Gruen_2_0 == False:
                KI_Gelb_2_0.setSpielfeld(Array)
                Vier_Gewinnt.setSpielzug(KI_Gelb_2_0.Spielzuggenerieren())
                Vier_Gewinnt.ausführen()
            #=================================

            __Spielfeldgenerieren()
            draw()


    # wenn Spielbeendet ist und ein neues Match starten soll
    if Vier_Gewinnt.getSpielbeendet() == True:
        g = False
        # Neues Match
        if (xmouse >= 18 and xmouse <= 135 and ymouse >=540 and ymouse <=555):
            Vier_Gewinnt.neuesMatch()
            __Spielfeldgenerieren()
            g = True
        # Neues Spiel
        if xmouse >= 148 and xmouse <= 248 and ymouse >=538 and ymouse <=555:
            Vier_Gewinnt = viergewinntklasse([["w" for x in range(7)] for y in range(6)])
            Spieler_Gelb_1_0 = None
            Spieler_Gelb_2_0 = None
            Spieler_Gruen_1_0 = None
            Spieler_Gruen_2_0 = None
            Spielbeginnt = False
            LabelListe.clear()
            labelsetzen("Spielstand",400,450)
            labelsetzen("Spieler Gelb :",400,500)
            labelsetzen("Spieler Grün :",400,550)
            Spielbeginnt = False
            # Labels zur Auswahl der Spieler
            labelsetzen("Spieler 1",550 ,50)
            labelsetzen("Spieler 2",550, 200)
            # Spieler 1
            labelsetzen("Mensch  ",500,100)
            labelsetzen("KI  ",600,100)
            labelsetzen("KI 2 ",650,100)
        
            # Spieler 2
            labelsetzen("Mensch",500,250)
            labelsetzen("KI",600,250)
            labelsetzen("KI 2",650,250)

            __Spielfeldgenerieren()
            g = True

        if g == True:
            for label in LabelListe:
                if str(label.gettext()) == "Spieler Gelb hat gewonnen." or str(label.gettext()) == "Spieler Grün hat gewonnen." or str(label.gettext()) == "Unentschieden":
                    label1 = label
                if str(label.gettext()) == "Neues Match":
                    label2 = label
                if str(label.gettext()) == "Neues Spiel":
                    label3 = label
            if len(LabelListe) > 11 or len(LabelListe) == 10:
                LabelListe.remove(label1)
                LabelListe.remove(label2)
                LabelListe.remove(label3)

    draw()
Exemple #7
0
    def __init__(self,text,xposition,yposition):
        self.__text = text
        self.__xposition = xposition
        self.__yposition = yposition

    def gettext(self):
        return self.__text

    def getxposition(self):
        return self.__xposition

    def getypsition(self):
        return self.__yposition


Vier_Gewinnt = viergewinntklasse()
KI_Gruen_1_0 = KI("gr","ge")
KI_Gelb_1_0 = KI("ge","gr")

KI_Gruen_2_0 = VierGewinnt_KI_2("gr","ge")
KI_Gelb_2_0 = VierGewinnt_KI_2("ge","gr")
HEIGHT = 600
WIDTH = 700
sys.setrecursionlimit(10000)
Spieler_Gelb_1_0 = None
Spieler_Gruen_1_0 = None

Spieler_Gelb_2_0 = None
Spieler_Gruen_2_0 = None

xposition = 30