def deploiementCarte(joueur,nbCarteAPlacerReserve,nbCarteAPlacerRoyaume) : #Permet de placer nbCarteAPlacerReserve cartes provenant de la reserve sur le champ de bataille et nbCarteAPlacerRoyaume cartes provenant du royaume sur le champ de bataille. for i in range(nbCarteAPlacerReserve) : #A deux reprises on demande au joueur de placer une carte sur le champ positionCarteSecours = input(nom(joueur) + ", où voulez-vous placer la carte de votre réserve ?") while(not(estPosition(positionCarteSecours)) or not(estVidePosition(champBataille(joueur),positionCarteSecours))) : #Arret : Qd la position est bonne & qd la position est vide #pousuite : qd la position est fausse ou qd la position est non vide positionCarteSecours = input(nom(joueur) + "veuillez indiquer une position valide ! Où voulez-vous placer la carte de votre réserve ?") #On place sur le champs de bataille if(positionCarteSecours[0] == "F"): Carte = premiereCarteReserve(reserve(joueur)) envoyerFront(front(champBataille(joueur)),Carte,positionCarteSecours) else: #si choix[0] == "A" while(not(estPosition(positionCarteSecours)) or not(estVidePosition(champBataille(joueur),positionCarteSecours)) or not(estVidePosition(champBataille(joueur),"A"+positionCarteSecours[1]))) : #Arret : Qd la position est bonne & qd la position est vide & qd il y a quelqu'un devant #pousuite : qd la position est fausse ou qd la position est non vide ou qd il y a personne devant positionCarteSecours = input(nom(joueur) + "veuillez indiquer une position valide ! Où voulez-vous placer la carte de votre réserve ?") Carte = premiereCarteReserve(reserve(joueur)) envoyerArriere(arriere(champBataille(joueur)),Carte,positionCarteSecours) for i in range(nbCarteAPlacerRoyaume) : #A deux reprises on demande au joueur de placer une carte sur le champ print(descriptionRoyaume(royaume(joueur))) roleChoisi = input(nom(joueur) + " quel est le role de la carte que vous voulez extraire du royaume ?") while(roleChoisi != "Roi" and roleChoisi != "Soldat" and roleChoisi != "Archer" and roleChoisi != "Garde") : #Arret quand role = "Roi" ou .... ou ... ou ... #Poursuite tant que role != "Roi" et roleChoisi = input(nom(joueur) + " quel est le role de la carte que vous voulez extraire du royaume ?") positionCarteSecours = input(nom(joueur) + ", où voulez-vous placer la carte de votre royaume ?") while(not(estPosition(positionCarteSecours)) or not(estVidePosition(champBataille(joueur),positionCarteSecours))) : #Arret : Qd la position est bonne & qd la position est vide #pousuite : qd la position est fausse ou qd la position est non vide positionCarteSecours = input(nom(joueur) + "veuillez indiquer une position valide ! Où voulez-vous placer la carte de votre royaume ?") #On place sur le champs de bataille if(positionCarteSecours[0] == "F"): Carte = extraireRoyaume(royaume(joueur),roleChoisi) envoyerFront(front(champBataille(joueur)),Carte,positionCarteSecours) else: #si choix[0] == "A" while(not(estPosition(positionCarteSecours)) or not(estVidePosition(champBataille(joueur),positionCarteSecours)) or not(estVidePosition(champBataille(joueur),"A"+positionCarteSecours[1]))) : #Arret : Qd la position est bonne & qd la position est vide & qd il y a quelqu'un devant #pousuite : qd la position est fausse ou qd la position est non vide ou qd il y a personne devant positionCarteSecours = input(nom(joueur) + "veuillez indiquer une position valide ! Où voulez-vous placer la carte de votre réserve ?") Carte = extraireRoyaume(royaume(joueur),roleChoisi) envoyerArriere(arriere(champBataille(joueur)),Carte,positionCarteSecours)
def testPremiereCarteReserve(reserve, carte): print("# Test 25:") premCarte = premiereCarteReserve(reserve(JoueurTest1)) if roleCarte(premCarte) == roleCarte(carte): print("La fonction premiere carte reserve fonctionne correctement !") else: print( "La fonction premiere carte reserve ne fonctionne pas correctement !" )
def premierAjoutReserve(joueur): print(descriptionMain(main(joueur))) choix = int(input(nom(joueur) + " quelle carte voulez vous mettre en reserve ?")) while(choix<1 or choix>3): #Arret quand choix est >= 1 et <= 3 #Poursuite quand choix est < 1 ou > 3 choix = int(input(nom(joueur) + " quelle carte voulez vous mettre en reserve ?")) envoiReserve(reserve(joueur),extraireCarteMain(main(joueur),choix))
def reinitDegat(joueur): #Pre-condition : le joueur est de Type Joueur #Post-condition : les unités posées sur le champ de bataille (front et arriere), les unités en réserve et #les unités dans le royaume ont leur point de degat subis remis à 0 #Resultat : Ne renvoie rien mais modifie les unites du cdb de la reserve et du royaume royaume = royaume(joueur) for role in royaume.keys(): #parcourera tout les rôles du royaume, arrêt : quand il a tout parcouru for carte in role: #parcourera toute la liste de carte du role setPointDegat(carte, 0) reserve = reserve(joueur) for carte in reserve: setPointDegat(carte, 0) champDeBataille = champBataille(joueur) for ligne in champDeBataille: for position in ligne.keys(): setPointDegat(carte, 0) return 0
while not (verifAction(action)): print(nom(JA) + " vous n'avez pas entré une action correcte ! ") action = int( input( "Que voulez vous faire dans ce tour ? \n0 : Rien \n1 : Mettre une carte en réserve \n2 : Déployer une unité \n3 : Attaquer une cible\nAction : " )) #Une fois sorti de la boucle, action est un entier compris entre 0 et 3. if action == 0: #Aucune action print(nom(JA) + " ne fait aucune action !") elif action == 1: # == Met en Reserve == #Envoi une unité de sa main sur la reserve if nbCarteMain(main(JA)) >= 1 and not (estPleineReserve(reserve(JA))): print(descriptionMain(main(JA))) choix = int(input("Quelle carte voulez-vous envoyer en réserve ?")) Carte = extraireCarteMain(main(JA), choix) envoiReserve(reserve(JA), Carte) print("Votre carte est maintenant dans la réserve") elif estPleineReserve(reserve(JA)) and nbCarteMain(main(JA)) >= 1: print( "Votre réserve est pleine, vous ne pouvez ajouter une nouvelle carte !" ) else: #Si j'ai pas d'unité dans ma main je peux rien faire
action = int(input("Que voulez vous faire dans ce tour ? \n0 : Rien \n1 : Mettre une carte en réserve \n2 : Déployer une unité \n3: Attaquer une cible\nAction : ")) #Une fois sorti de la boucle, action est un entier compris entre 0 et 3. if action == 0 : #Aucune action print(nom(JA)+" ne fait aucune action !") elif action == 1 : # == Met en Reserve == #Envoi une unité de sa main sur la reserve if nbCarteMain(main(JA)) >= 1 : print(descriptionMain(main(JA))) choix = int(input("Quelle carte voulez-vous envoyer en réserve ?")) Carte = extraireCarteMain(main(JA),choix) envoiReserve(reserve(JA),Carte) print("Votre carte est maintenant dans la réserve") else : #Si j'ai pas d'unité dans ma main je peux rien faire print("Comment voulez-vous ajouter une carte à votre réserve si vous n'avez pas de carte dans votre main ?") elif action == 2 : #déploie une unité # == Déployer une unité == # 1 - Met une unité sur la champ de bataille # Si JA a une unité dans sa réserve : if nbCarteReserve(reserve(JA)) >= 1 : Carte = premierCarteReserve(reserve(JA)) elif nbCarteMain(main(JA)) >= 1 : print(descriptionMain(main(JA)))
carteFront = extraireCarteMain(main(JoueurTest1), 2) envoyerFront(front(champBataille(JoueurTest1)), carteFront, "F3") testAvancerCarte(champBataille(JoueurTest1), "F2") testEnvoiReserve() #On fait avancer la carte située en A2 vers F2. On doit vérifier que la carte en F2 atterie bien dans la reserve # ==== ==== On test des envois dans la reserve ! # ==== ==== On se rajoute quelques petites cartes avant ! ajouterCarteMain(main(JoueurTest1), piocher(pioche(JoueurTest1))) ajouterCarteMain(main(JoueurTest1), piocher(pioche(JoueurTest1))) ajouterCarteMain(main(JoueurTest1), piocher(pioche(JoueurTest1))) # On envoi dans la reserve carteReserve = extraireCarteMain(main(JoueurTest1), 3) testEnvoiReserve(reserve(JoueurTest1), carteReserve) # On teste que la carte ai bien été envoyée et que la fonction premiereCarteReserve fonctionne correctement. testPremiereCarteReserve(reserve(JoueurTest1), carteReserve) #On va en envoyer une ou deux dans le Royaume maintenant ! carteRoy = extraireCarteMain(main(JoueurTest2), 1) role = roleCarte(carteRoy) testEntrerRoyaume(royaume(JoueurTest1), carteRoy) testExtraireRoyaume(royaume(JoueurTest1), role) #Test d'effondrement d'un royaume : testEffondre(royaume(JoueurTest1)) #Test de estVerticale() et de changementMode() carteModifMode = obtenirCarte(champBataille(JoueurTest1), "F1")