Beispiel #1
0
def positionValide(choix, joueur):
    if (choix[0] == "A"):
        return estPosition(choix) and not (
            estVidePosition(champBataille(joueur), "F" + choix[1])
        )  #La position est valide à l'arriere si le front est occupé au meme indice
    else:
        return estPosition(choix)
Beispiel #2
0
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)
Beispiel #3
0
def premierAjoutFront(joueur):
    print(descriptionMain(main(joueur)))
    choix = int(input(nom(joueur) + " quelle carte voulez vous mettre au front ?"))
    while(choix<1 or choix>4):
        #Arret quand choix est >= 1 et <= 4 
        #Poursuite quand choix est < 1 ou > 4 
        choix = int(input(nom(joueur) + " quelle carte voulez vous mettre au front ?"))
        
    pos = input(nom(joueur) + " votre carte va être envoyé au Front. Où voulez-vous mettre votre carte ? (F puis 1|2|3)")
    while(not(estPosition(pos)) or pos[0]!='F') : 
        #Arret quand pos est position et que pos[0] == 'F'
        #Poursuite tant que pos n'est pas positon ou que pos[0] != 'F'
        pos = input(nom(joueur) + " votre carte va être envoyé au Front. Où voulez-vous mettre votre carte ? (F puis 1|2|3)")   
        
    envoyerFront(front(champBataille(joueur)),extraireCarteMain(main(joueur),choix),pos)
Beispiel #4
0
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
Beispiel #5
0
#=== ==== La partie commence ==== ===
finDePartieEff = False
finDePartieRoi = False
finDePartiePioche = False

while (not (finDePartieEff) and not (finDePartieRoi)
       and not (finDePartiePioche)):
    #=== ==== Déroulement d'un tour ==== ===
    #JA = Joueur actif
    JA = joueurCourant(Partie)
    JoueurAdverse = joueurAdverse(Partie)

    #==== Phase Préparation : =====
    # JA : Redresse ses cartes du champ de bataille en vertical (prêt à attaquer)
    redresseCartes(champBataille(JA))

    # JA : Mobilise une nouvelle unité = Pioche une carte
    ajouterCarteMain(main(JA), piocher(pioche(JA)))

    #
    #==== Phase Action ====
    # JA doit soit :
    action = int(
        input(
            nom(JA) +
            " 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 : "
        ))
    while not (verifAction(action)):
        print(nom(JA) + " vous n'avez pas entré une action correcte ! ")
        action = int(
Beispiel #6
0
#J1 : Une carte est envoyée en reserve
premierAjoutReserve(JA)
#J2 : Une carte est envoyée en reserve
premierAjoutReserve(JoueurAdverse)
    
#=== ==== La partie commence ==== === 
          
while(not(finDePartieEff) and not(finDePartieRoi) and not(finDePartiePioche)) :
    #=== ==== Déroulement d'un tour ==== ===
    #JA = Joueur actif
    JA = joueurCourant(Partie)
    JoueurAdverse = joueurAdverse(Partie)

    #==== Phase Préparation : ===== 
    # JA : Redresse ses cartes du champ de bataille en vertical (prêt à attaquer)
    redresseCartes(champBataille(JA))

    # JA : Mobilise une nouvelle unité = Pioche une carte
    ajouterCarteMain(main(JA),piocher(pioche(JA)))

    # 
    #==== Phase Action ====
    # JA doit soit : 
    action = int(input(nom(JA) + " 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 : "))
    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 
Beispiel #7
0
ajouterCarteMain(main(JoueurTest2), piocher(pioche(JoueurTest2)))
ajouterCarteMain(main(JoueurTest2), piocher(pioche(JoueurTest2)))

#On ajoute des cartes au champ de bataille
testEstVideChamp(champ(JoueurTest1))
testNbCarteChampBataille(champ(JoueurTest1))

# ===== ==== Test d'ajout une carte au front au Joueur1
# == On test d'abbord d'etraire une carte de la main

indice = 1
# = On extrait la carte
carte = extraireCarteMain(main(JoueurTest1), indice)
# == On essai d'ajouter une carte au front
positionFront1 = "F1"
testEnvoyerFront(front(champBataille(JoueurTest1)), carte, positionFront1)
# La carte doit désormais etre présente sur le champ.
# On ajoute une carte sur le front adverse :

# ===== ==== Test d'ajout une carte au front au Joueur2

indice = 1
carte = extraireCarteMain(main(JoueurTest2), indice)
# == On essai d'ajouter la carte extraite au front
positionFront2 = "F3"
testEnvoyerFront(front(champBataille(JoueurTest2)), carte, positionFront2)

testObtenirCarte(front(ChampBataille(JoueurTest1)), champBataille(JoueurTest1),
                 positionFront2)

# ===== ==== Test d'ajout une carte à l'arriere au Joueur1