Пример #1
0
 def __init__(self, ipServerAddress, tcpServerPort, ruzzleGraph):
     self.ipServerAddress = ipServerAddress
     self.tcpServerPort = tcpServerPort
     self.BUFFER_SIZE = 2024
     self.listeTrouvees = ListeMots()
     self.ruzzleGraph = ruzzleGraph
     # starting server
     self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     self.s.bind((self.ipServerAddress, self.tcpServerPort))
     self.s.listen(1)
Пример #2
0
 def waitForOpponent(self):
     print("En attente d' adversaire ... ")
     self.conn, self.addr = self.s.accept()
     print("Adversaire Trouve'! ---> ", self.addr, "\n")
     listeMotsAdversaire = ListeMots()
     listeTrouvees = ListeMots()
     received = str(self.receiveFromClient())
     # reponse au defi
     self.answerClient("CHALLENGE_ACCEPTED")
     # debut match en locale
     if received.startswith("TIME_"):
         self.ruzzleGraph.playChallenge(
             int(received[5:len(received)]
                 ))  # extraction du temps(%) de la str TIME_%
         # envoie resultats au client
         self.answerClient("RESULTS_" +
                           self.ruzzleGraph.listeTrouvees.compressToSend())
         resultsClient = self.receiveFromClient()
         if resultsClient.startswith("RESULTS_"):
             resultsClient = resultsClient[8:len(resultsClient)]
             listeMotsAdversaire = ListeMots()
             listeMotsAdversaire.decompress(resultsClient)
             self.resultatMatch(self.ruzzleGraph.listeTrouvees,
                                listeMotsAdversaire)
Пример #3
0
 def playOneMatch(self):
     listeTrouvees = ListeMots()
     self.affichageTableRuzzle()
     temps = float(
         input(
             "\nSaisir le temps de duree de votre defi (en secondes)!\ntemps = "
         ))
     timer = Timer(temps, self.gererFinMatch, [listeTrouvees])
     timer.start()
     print("Saisir les mots que vous trouvez dans la grille!...\n")
     while True:
         if self.matchEnded == True:
             sys.exit()
         mot = input("mot -> ")
         if self.listeMotsDansGrille.estDans(mot):
             listeTrouvees.insert(mot)
Пример #4
0
 def sendChallenge(self, challengeTime):
     # on envoie une requete de defi au serveur
     self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     serverHostName = socket.gethostbyaddr(self.tcpServerAddress)
     serverHostName = serverHostName[0]
     self.client_socket.connect((serverHostName, self.tcpServerPort))
     # envoie du defi au serveur
     print("Connexion au Serveur en cours ...\n")
     self.sendToServeur("TIME_" + str(challengeTime))
     # elaboration reponse
     reponseDuServeur = self.receiveFromServeur()
     if reponseDuServeur == "CHALLENGE_ACCEPTED":
         self.ruzzleGraph.playChallenge(challengeTime)
         # envoie resultats...
         self.sendToServeur("RESULTS_" +
                            self.ruzzleGraph.listeTrouvees.compressToSend())
         # reception resultats
         reponse = self.receiveFromServeur()
         if reponse.startswith("RESULTS_") == True:
             reponse = reponse[8:len(reponse)]
             listeMotsAdversaire = ListeMots()
             listeMotsAdversaire.decompress(reponse)
             self.resultatMatch(self.ruzzleGraph.listeTrouvees,
                                listeMotsAdversaire)
Пример #5
0
def main():
    # initialisation variables
    langue = ""
    parcourDictionnaire = ""
    for par in sys.argv:
        if par == "en":
            langue = "en"
            parcourDictionnaire = "./ressources/dictEn"
        if par == "fr":
            langue = "fr"
            parcourDictionnaire = "./ressources/dictFr"

    # creation de la grille de jeu
    ruzzle = RuzzleMatrix(langue)
    grafoRuzzle = RuzzleGraph(ruzzle.vertexMatrixToGraph(), None)

    # methode 1 (ArbreLexServeur C)
    if sys.argv[1] == "-m1":
        grafoRuzzle.affichageTableRuzzle()
        print("\n\n")

        grafoRuzzle.dictionnaire = ClientDictionnaire(int(sys.argv[2]))
        grafoRuzzle.generationM1(True)

    # methode 1b (ArbreLex en Python)
    elif sys.argv[1] == "-m1b":
        grafoRuzzle.affichageTableRuzzle()
        print("\n\n")
        grafoRuzzle.generationM1b(parcourDictionnaire, True)

    # methode 2 (ArbreLex en Python)
    elif sys.argv[1] == "-m2":
        grafoRuzzle.affichageTableRuzzle()
        print("\n\n")
        grafoRuzzle.generationM2(grafoRuzzle, parcourDictionnaire, True)

    # Statistiques - Comparation de performances m1 - m1b - m2
    elif sys.argv[1] == "-s":
        grafoRuzzle.dictionnaire = ClientDictionnaire(int(sys.argv[2]))
        grafoRuzzle.affichageTableRuzzle()

        print("Methode 1 (ArbreLexServeur C) --> ")
        grafoRuzzle.generationM1(False)
        grafoRuzzle.listeMotsDansGrille = ListeMots()

        print("Methode 1b (ArbreLex Python) --> ")
        grafoRuzzle.generationM1b(parcourDictionnaire, False)
        grafoRuzzle.listeMotsDansGrille = ListeMots()

        print("\nMethode 2 (Py - Parcours Diction) --> ")
        grafoRuzzle.generationM2(grafoRuzzle, parcourDictionnaire, False)

    # Multiplayer Mode - Server Side
    elif sys.argv[1] == "-server":
        print("Generation Liste Mots A Trouver...")
        grafoRuzzle.generationM2(grafoRuzzle, parcourDictionnaire, False)
        print("\nEn attente de connexion pour une defi!")
        serverGame = ServerGame('localhost', int(sys.argv[2]), grafoRuzzle)
        serverGame.waitForOpponent()

    # Multiplayer Mode - Client Side
    elif sys.argv[1] == "-client":
        print("Generation Liste Mots A Trouver...")
        grafoRuzzle.generationM2(grafoRuzzle, parcourDictionnaire, False)
        clientGame = ClientGame(sys.argv[2], int(sys.argv[3]), grafoRuzzle)
        temps = int(input("saisir temps du defi : "))
        clientGame.sendChallenge(temps)

    # mode Single Player
    else:
        dictionnaire = ArbreLex(parcourDictionnaire)
        dictionnaire.chargeDictionnaire(parcourDictionnaire)
        dictionnaire.generePossiblesMots(grafoRuzzle)
        grafoRuzzle.playOneMatch()
Пример #6
0
 def __init__(self, parcoursDict):
     self.noeudRoot = Noeud("", None, None)
     self.chargeDictionnaire(parcoursDict)
     self.listeMotsDansGrille = ListeMots()
Пример #7
0
 def __init__(self, vertexList, dictionnaire):
     self.matchEnded = False
     self.vertexList = vertexList
     self.dictionnaire = dictionnaire
     self.listeMotsDansGrille = ListeMots()
     self.listeTrouvees = ListeMots()