示例#1
0
def main():
    """Script permettant de lancer le serveur"""
    # On charge les cartes existantes
    cartes = []
    for nom_fichier in os.listdir("cartes"):
        if nom_fichier.endswith(".txt"):
            nom_carte = nom_fichier[:-4].lower()
            cartes.append(nom_carte)

    # Introduction du jeu avec la liste des options
    while "Choix de la carte":
        print("Bienvenue dans Roboc !")
        print("Entrez le numéro d'un labyrinthe pour commencer une partie")
        print("Labyrinthes existants :")
        for i, carte_disponible in enumerate(cartes):
            print("  {} - {}".format(i, carte_disponible))
        choix = input("Choisir un labyrinthe:")
        try:
            choix = cartes[int(choix)]
            longueur, case = carte("cartes", choix)
            labyrinthe = Labyrinthe(longueur, case)
            break
        except ValueError:
            print("erreur recommence la saisie")
            continue
    print(labyrinthe)
    labyrinthe.placement(1)
    print(labyrinthe)
    labyrinthe.deplacement("n", 0)
    print(labyrinthe)
    labyrinthe.deplacement("n", 0)
    print(labyrinthe)
    labyrinthe.deplacement("n", 0)
    print(labyrinthe)
示例#2
0
def test_move_forward():
    c = carte(5, 5)
    a = aventurier("john", 3, 2, "S", "ADAGGADA")
    a.move_forward(c, 4, 2)
    assert a.axis_h == 4
    assert a.axis_v == 2
    assert c.board[a.axis_v][a.axis_h] == a.display_aventurier()
示例#3
0
def test_tresors_is_inside_the_board():
    c = carte(4, 5)
    c.tresors.append(tresor(2, 2, 3))
    c.tresors.append(tresor(1, 2, 2))
    c.tresors.append(tresor(3, 3, 1))
    for i in c.tresors:
        assert 0 < i.axis_h < c.largeur
        assert 0 < i.axis_v < c.longueur
示例#4
0
def test_simulation():
    c=carte(4,4)
    c.aventuriers.append(aventurier("john",3,2,"S","ADAGGADA"))
    c.aventuriers.append(aventurier("lucie",1,1,"N","AGGAAADAAGA"))
    c.tour_de_jeu=tour(c.aventuriers)
    start_simulation(c)
    assert c.tour_de_jeu
    assert len(c.tour_de_jeu.aventuriers) == 2
示例#5
0
def test_mountains_position_is_inside_the_board():
    c = carte(4, 3)
    c.mountains.append(mountain(3, 1))
    c.mountains.append(mountain(2, 2))
    c.mountains.append(mountain(3, 2))
    for i in c.mountains:
        assert 0 < i.axis_h < c.largeur
        assert 0 < i.axis_v < c.longueur
示例#6
0
def test_aventurier_position_is_inside_the_board():
    c = carte(4, 4)
    c.aventuriers.append(aventurier("john", 3, 2, "S", "ADAGGADA"))
    c.aventuriers.append(aventurier("linda", 1, 2, "N", "ADDDAGAGGA"))
    c.aventuriers.append(aventurier("luc", 3, 3, "O", "AAADDAAGADDAAAAA"))
    for i in c.aventuriers:
        assert 0 < i.axis_h < c.largeur
        assert 0 < i.axis_v < c.longueur
        assert type(i.name) == str
        assert i.orientation in ("S", "N", "O", "E")
        assert type(i.chemin) == str
示例#7
0
def test_aventurier_move_blocked_by_mountain():
    c=carte(4,4)
    m1=mountain(1,0)
    m2=mountain(3,3)
    c.mountains.append(m1)
    c.mountains.append(m2)
    c.board[m1.axis_v][m1.axis_h]=display_mountain()
    c.board[m2.axis_v][m2.axis_h]=display_mountain()
    t=tresor(2,2,1)
    a1=aventurier("john",3,2,"S","ADAGGADA")
    a2=aventurier("lucie",1,1,"N","AGGAAADAAGA")
    c.aventuriers.append(a1)
    c.aventuriers.append(a2)
    c.tour_de_jeu=tour(c.aventuriers)
    move=check_if_can_move(c,a2,new_index_y=0,new_index_x=1)
    assert move is None
示例#8
0
class TestLabyrinthe:
    """Test du module labyrinthe"""
    carte_longueur, carte_test = (carte("cartes", "test"))
    lab = Labyrinthe(carte_longueur, carte_test)

    def test_labyrinthe(self):
        """test de la bonne creation du labyrinthe"""
        assert self.carte_longueur == 6
        assert self.lab.cases[(0, 0)].valeur == "o"
        assert self.lab.cases[(1, 1)].valeur == " "
        assert self.lab.cases[(2, 2)].valeur == " "
        assert self.lab.cases[(3, 3)].valeur == " "
        assert self.lab.cases[(4, 4)].valeur == "o"

    def test_placement(self):
        """test de la methode de placement"""
        self.lab.placement(1)
        assert self.lab.cases[self.lab.joueurs[0]].valeur == "x"
示例#9
0
def init_input(dirname_input):
    carte_created = False

    cwd, inputdir, dir = verify_input_path(dirname_input)

    if not dir:
        os.makedirs(inputdir, exist_ok=True)
        print(
            f"Le dossier d'entrée vient d'être créé, veuillez ajouter votre fichier d'entrée ici. {inputdir}"
        )
    else:
        getfile = get_files_in_dir(inputdir)
        if getfile:

            if len(getfile) > 1:
                print(
                    f"Plusieurs fichiers d'entrée sont dans le directory{inputdir}:\n{getfile}, seul le premier est pris en compte."
                )
        #    selectedfile=raw_input(f"Plusieurs fichiers d'entrée sont présents dans {inputdir} lequel voulez vous utilisez ? \n {getfile}:")
        #    print(selectedfile)
            input = open(inputdir + "/" + getfile[0], "r")

            for l in input:
                if l[0] == "C" and carte_created:
                    print(
                        "une carte a déjà été instancié, cette ligne ne sera pas prise en compte seul une carte peut-etre créé à la fois."
                    )
                elif l[0] == "C" and not carte_created:
                    str = l.replace(" ", "")
                    values = str.split("-")
                    try:
                        largeur = int(values[1])
                        longueur = int(values[2])
                    except ValueError:
                        print(
                            " Les valeurs attendues sont des entiers. veuillez modifier le fichier."
                        )
                    c = carte(largeur, longueur)
                    carte_created = True
                    print(
                        f"La carte a ete cree. [{largeur} unites en largeur, {longueur} unites en longueur]"
                    )

                if l[0] == "M":
                    str = l.replace(" ", "")
                    values = str.split("-")
                    try:
                        axis_h = int(values[1])
                        axis_v = int(values[2][0])
                    except ValueError:
                        print(
                            " Les valeurs attendues sont des entiers. veuillez modifier le fichier."
                        )

                    if not 0 <= axis_h < c.largeur or not 0 <= axis_v < c.longueur:
                        print(
                            "La case n'est pas dans la carte, la ligne est ignoré."
                        )
                    else:
                        if c.board[axis_h][axis_v] in display_plain():
                            c.mountains.append(mountain(axis_h, axis_v))
                            print(
                                f"On aperçoit une montagne en [{axis_h},{axis_v}]"
                            )
                            c.board[axis_h][axis_v] = display_mountain()
                        else:
                            print(
                                "Cette case n'est pas une plaine, cette montagne ne peut etre créé ici. La ligne est donc ignoré"
                            )

                if l[0] == "T":
                    str = l.replace(" ", "")
                    values = str.split("-")
                    try:
                        axis_h = int(values[1])
                        axis_v = int(values[2])
                        nb_tresors = int(values[3][0])
                    except ValueError:
                        print(
                            " Les valeurs attendues sont des entiers. veuillez modifier le fichier."
                        )

                    if not nb_tresors > 0:
                        print(
                            "le nombre de tresor doit être un entier positif non nul."
                        )
                    else:
                        if not 0 <= axis_h < c.largeur or not 0 <= axis_v < c.longueur:
                            print(
                                "La case n'est pas dans la carte, la ligne est ignoré."
                            )
                        else:
                            if c.board[axis_v][axis_h] in display_plain():
                                c.tresors.append(
                                    tresor(axis_h, axis_v, nb_tresors))
                                print(
                                    f"{nb_tresors} trésors ont été caché ici. [{axis_h},{axis_v}]"
                                )

                            else:
                                print(
                                    "Cette case n'est pas une plaine, le trésor ne peut pas être créé ici. La ligne est donc ignoré."
                                )

                if l[0] == "A":
                    str = l.replace(" ", "")
                    values = str.split("-")

                    try:
                        name = values[1]
                        orientation = values[4]
                        parcours = values[5]
                        axis_h = int(values[2])
                        axis_v = int(values[3])
                        nb_tresors = int(values[6])
                    except ValueError:
                        print(
                            " Les valeurs attendues sont des entiers. veuillez modifier le fichier."
                        )

                    if not 0 <= axis_h < c.largeur or not 0 <= axis_v < c.longueur:
                        print(
                            "La case n'est pas dans la carte, la ligne est ignoré."
                        )
                    else:
                        if not orientation in "NSOE":
                            print(
                                "L'orientation renseigné n'est pas reconnu, toute triche est sanctionné, la ligne est ignoré."
                            )
                        else:
                            c.aventuriers.append(
                                aventurier(name, axis_h, axis_v, orientation,
                                           parcours, nb_tresors))
                            print(
                                f"l'aventurier {name} est inscrit. il partira de [{axis_h},{axis_v}] et s'orientera vers {orientation}"
                            )

            for t in c.tresors:
                c.board[t.axis_v][t.axis_h] = t.display_tresor()
            for a in c.aventuriers:
                c.board[a.axis_v][a.axis_h] = a.display_aventurier()
            c.design_map()
            input.close()

            c.tour_de_jeu = tour(c.aventuriers)
            return c
        else:
            print("Pas de fichier d'entrée présent dans :" + inputdir +
                  "\n\n\t Veuillez créer un fichier dans ce repertoire")
            return
示例#10
0
def test_write_result_in_file():
    c=carte(5,5)
    write_output(c,"/output","/test_resultat")
示例#11
0
import sys
sys.path.append("../combat")
import combat

#==============================================================================
# map=cases.carte(10)
# map.matrice[x][y].afficher(i, j)
#==============================================================================

D = 20
taille_carte = 30
pygame.init()
fenetre = pygame.display.set_mode((640, 640), RESIZABLE)
pygame.display.set_caption('Programme Pygame de base')

mape = carte.carte(taille_carte)
x = 0
y = 0


def affichercarte(x0, y0):
    for x in range(D):
        for y in range(D):
            fenetre.blit(mape.get_image_case(x + x0, y + y0), (x * 32, y * 32))


#def perso(i,j):
#    self.image = pygame.image.load("Data/personnage").convert_alpha()

imgJoueur = combat.AssassinsMagique()
personnage = imgJoueur.img.convert_alpha()
示例#12
0
def test_delete_tresor_when_0():
    c=carte(4,4)
    c.tresors.append(tresor(3,3,1))
    c.tresors.append(tresor(1,1,2))
    update_tresors(c,y=3,x=3)
    assert len(c.tresors)==1
示例#13
0
def test_carte():
    c = carte(10, 3)
    assert c