Esempio n. 1
0
def test_update_tresor():
    t1 = tresor(1, 2, 3)
    t2 = tresor(0, 0, 1)
    t1.update_tresor()
    t2.update_tresor()
    assert t1.nb_tresor == 2
    assert t2.nb_tresor == 0
Esempio n. 2
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
Esempio n. 3
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
Esempio n. 4
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
Esempio n. 5
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