def test_ChoixValide4(self): commande = "4" retour = choixValide(commande) self.assertEqual(retour, False)
def test_ChoixValideO1(self): commande = "O1" retour = choixValide(commande) self.assertEqual(retour, True)
if msg_a_envoyer=="?" : print("Votre objectif est de rejoindre une sortie (case U) avant les autres") print("Vous pouvez vous déplacer au nord (N), au sud (S), à l'est (E) et à l'ouest (O)") print("Pour vous déplacer au nord sur une seule case : N ou N1 (pour les autres directions : S, E et O") print("Pour vous déplacer au nord sur 3 cases : N3 (pour les autres directions : S3, E3 et O3)") print("Pour murer une porte sur la case au sud (juste à proximité) : mS (pour les autres directions : mE,mN et mO)") print("Pour percer une porte sur la case au sud (juste à proximité) : pS (pour les autres directions : pE,pN et pO)") print("Si vous souhaitez abandonner : A") print("A chaque choc contre un obstacle (mur, joueur, porte fermé, vous perdez un point de vie") print("Vous perdez la partie si vous n'avez plus de point de vie ou si un joueur rejoint la sortie avant vous") print("\n") else : if msg_a_envoyer=="fin" : ordreOk=True else : if choixValide(msg_a_envoyer) : ordreOk=True if len(msg_a_envoyer)>1 and msg_a_envoyer[0]!="m" and msg_a_envoyer[0]!="p" : # Coups multiple CoupsMutiples[0]=sensJoue(msg_a_envoyer) CoupsMutiples[1]=nbCoupsJoue(msg_a_envoyer)-1 msg_a_envoyer=sensJoue(msg_a_envoyer) else : print("Coup incorrect, consultez l'aide pour plus de précisions (? pour l'aide)") else : print("Il y a des coups multiples en stock " + str(CoupsMutiples[0]) + str(CoupsMutiples[1]) + " => déplacement automatique") msg_a_envoyer=CoupsMutiples[0] CoupsMutiples[1]=CoupsMutiples[1]-1 ordreOk=True msg_a_envoyer = msg_a_envoyer.encode()
clients_a_lire = [] try: clients_a_lire, wlist, xlist = select.select(clients_connectes,[], [], 0.05) except select.error: pass else: # On parcourt la liste des clients a lire for client in clients_a_lire: msg_recu = client.recv(1024) msg_recu = msg_recu.decode() clientID=client.getpeername()[1] if msg_recu != "" : # On peut prendre en compte le coup retour=choixValide(msg_recu) if retour == 1 : # Déplacement classique nbCoups=nbCoupsJoue(msg_recu) sens=sensJoue(msg_recu) for i in range(0,int(nbCoups)) : lePlateau.partie.jouerUnCoup(clientID,sens) lePlateau.partie.messageNbVies(joueurActuel,clients_connectes) print(str(lePlateau.partie.nomJoueur(joueurActuel)) + " a joue " + str(msg_recu) + " (il lui reste " + str(lePlateau.partie.nbPtsJoueur(joueurActuel)) + " points)") lePlateau.partie.messageAuxPassifs(joueurActuel,clients_connectes,"[MSG]" + str(lePlateau.partie.nomJoueur(joueurActuel)) + " a joue") #lePlateau.partie.toutLeMondePassif(clients_connectes) if retour == 2 : # Fermeture d'une porte lePlateau.partie.creerMur(clientID,msg_recu[1]) nbCoups=0 print(str(lePlateau.partie.nomJoueur(joueurActuel)) + " a joue " + str(msg_recu) + " (il lui reste " + str(lePlateau.partie.nbPtsJoueur(joueurActuel)) + " points)")
if choixCarte != 0: print("Le jeu peut commencer") lePlateau.partie.initialiserPositionRobot() lePlateau.partie.initialiserTailleMaxGrille() lePlateau.partie.afficherPartie() finPartie = False while finPartie == False: choix = input("Quelle direction ou Q pour quitter") if choix == "Q": print("Fin de la partie (sauvegarde effectuée)") lePlateau.sauvegarderPartie() finPartie = True else: retour = choixValide(choix) if retour == True: nbCoups = nbCoupsJoue(choix) sens = sensJoue(choix) # On repete autant de "jouerUnCoup" qu'il y a de coups à jouer (en fonction du choix) for i in range(0, int(nbCoups)): lePlateau.jouerUnCoup(sens) lePlateau.partie.nbCoups = lePlateau.partie.nbCoups + 1 lePlateau.partie.afficherPartie() print("Vous avez utilisé " + str(lePlateau.partie.nbCoups) + " coup(s) et vous avez " + str(lePlateau.partie.pointDeVie) + " points de vie") finPartie = lePlateau.partie.gagne lePlateau.sauvegarderPartie()