示例#1
0
def positionner_bateau(joueur, number_of_ships):
    print(number_of_ships)
    for elements in range(1, number_of_ships + 1):
        afficher_tableau(joueur.plateau_joueur.tableau)
        if elements == 1:
            porte_avion = Bateau("porte-avion", 3)
            joueur.porte_avion = porte_avion
            joueur.nom_des_bateaux.append("porte-avion")
            bateau = porte_avion

        elif elements == 2:
            torpilleur = Bateau("torpilleur", 2)
            joueur.torpilleur = torpilleur
            joueur.nom_des_bateaux.append("torpilleur")
            bateau = torpilleur
        elif elements == 3:
            croiseur = Bateau("croiseur", 2)
            joueur.croiseur = croiseur
            joueur.nom_des_bateaux.append("croiseur")
            bateau = croiseur
        print(
            "Joueur {} le bateau que vous placez est le : {} avec une taille de : {}"
            .format(joueur.nom, bateau.nom_bateau, bateau.taille_bateau))
        while True:
            try:
                coord_col = input(
                    "Joueur {}, veuillez choisir une colonne comme point de départ pour placer le {} : "
                    .format(joueur.nom, bateau.nom_bateau)).upper()
                coord_rangee = int(
                    input(
                        "Joueur {}, veuillez choisir une ligne comme point de départ pour placer le {} : "
                        .format(joueur.nom, bateau.nom_bateau)))
                bateau.position_bateau(coord_col, coord_rangee, bateau,
                                       joueur.plateau_joueur.tableau)
            except KeyError:
                print("Erreur, veuillez introduire des coordonnées valides\n")
                continue
            except ValueError:
                print("Erreur, veuillez introduire des coordonnées valides\n")
                continue
            else:
                break
    print(joueur.nom_joueur)
    print(joueur.porte_avion.coordonnees_bateau)
    fin_de_tour = False
    while fin_de_tour == False:
        print(
            "Votre tour est fini , le joueur suivant peut s'installer devant l'ordinateur...\n\n\n"
        )
        valid_fin_de_tour = input(
            "joueur suivant êtes vous prêt o/n\n\n").upper()
        if valid_fin_de_tour == "O" or valid_fin_de_tour == "OUI":
            fin_de_tour = True
示例#2
0
文件: ClasseIA.py 项目: nao-s4/AI
	def test(self) : # Tester les fonctions  des autres classes
		taillePlateau = 8
		nbBateaux = 3


		plateauNao = Plateau(taillePlateau)
		#plateauNao.afficherPlateau()

		bateau1 = Bateau(3)
		bateau2 = Bateau(3)
		plateauNao.ajouterBateau(bateau1)
		plateauNao.ajouterBateau(bateau2)

		pos = Position(4,1)
		pos2 = Position(3,3)

		plateauNao.poserBateauVerticalement(bateau1, pos)
		bateau1.affichage()
		print()
		plateauNao.poserBateauHorizontalement(bateau2, pos2)
		bateau2.affichage()
		print()

		plateauNao.afficherPlateau()
示例#3
0
def joueur_auto():
    """ Fonction de création d'un joueur complet avec ses bateaux leur positions et un tableau précompléter

    PRE : -
    POST :
        - joueur1 = objet de classe Joueur(plateau_joueur(6 * 6) nom_joueur = "nom_joueur1")
        - porte_avion = objet de classe Bateau(nom_bateau = "porte_avion" taille = 4)
        - croiseur = objet de classe Bateau(nom_bateau = "croiseur" taille = 2)
        - torpilleur = objet de classe Bateau(nom_bateau = "torpilleur" taille = 2)
        - appel fonction position_bateau pour porte_avion,torpilleur,croiseur
        - joueur1.porte_avion = objet de classe Bateau porte_avion
        - joueur1.torpilleur = objet de classe Bateau torpilleur
        - joueur1.croiseur = objet de classe Bateau croiseur
        - retourne objet de classe Joueur joueur1
    """
    joueur1 = creation_tableau_joueur(6, "nom_joueur1")
    porte_avion = Bateau("porte_avion", 4)
    croiseur = Bateau("croiseur", 2)
    torpilleur = Bateau("torpilleur", 2)
    porte_avion.position_bateau("A", 0, porte_avion,
                                joueur1.plateau_joueur.tableau, "h")
    croiseur.position_bateau("A", 2, croiseur, joueur1.plateau_joueur.tableau,
                             "h")
    torpilleur.position_bateau("A", 4, torpilleur,
                               joueur1.plateau_joueur.tableau, "h")
    joueur1.porte_avion = porte_avion
    joueur1.torpilleur = torpilleur
    joueur1.croiseur = croiseur
    return joueur1
示例#4
0
文件: ia.py 项目: nao-s4/AI
    else:
      return 0



taillePlateau = 8
nbBateaux = 3

coupsNao = []


plateauNao = Plateau(taillePlateau)
plateauAdv = PlateauAdversaire(taillePlateau, 12)
#plateauNao.afficherPlateau()

bateau1 = Bateau(3)
bateau2 = Bateau(3)
plateauNao.ajouterBateau(bateau1)
plateauNao.ajouterBateau(bateau2)

pos = Position(4,1)
pos2 = Position(3,3)

plateauNao.poserBateauVerticalement(bateau1, pos)
bateau1.affichage()
print()
plateauNao.poserBateauHorizontalement(bateau2, pos2)
bateau2.affichage()
print()

# 1 touché    2 touché coulé    3 touché coulé gagné    0 plouf
def positionner_bateau(joueur: object, number_of_ships: int):
    """ Fonction permettant au joueur de placer ses bateaux
    PRE :
        - joueur = objet de classe Joueur
        - number_of_ships = integer
    POST :
        - appel afficher_tableau(joueur.plateau_joueur.tableau)
        - boucle elements quand elements = range(1,nombre_of_ship+1)
        - si element == 1
            - creation objet Bateau porte_avion
            - attribution porte_avion a joueur

        - si element == 2
            - creation objet Bateau torpilleur
            - attribution torpilleur a joueur

        - si element == 3
            - creation objet Bateau croiseur
            - attribution croiseur a joueur

        - si element == 4
            - creation objet Bateau cannonniere
            - attribution cannoniere a joueur

        - si element == 5
            - creation objet Bateau destroyer
            - attribution destroyer a joueur

        - appel fonction position_bateau_verif
        - appel fonction positionner_bateau
        - appel afficher_tableau(joueur.plateau_joueur.tableau) quand un bateau est positionner
    RAISE:
        - IndexError si la valeur > list
        - KeyError si la valeur != str
        - ValueError la valeur != str

    """

    for elements in range(1, number_of_ships + 1):
        afficher_tableau(joueur.plateau_joueur.tableau)
        if elements == 1:
            porte_avion = Bateau("porte-avion", 4)
            joueur.porte_avion = porte_avion
            joueur.nom_des_bateaux.append("porte-avion")
            bateau = porte_avion

        elif elements == 2:
            torpilleur = Bateau("torpilleur", 2)
            joueur.torpilleur = torpilleur
            joueur.nom_des_bateaux.append("torpilleur")
            bateau = torpilleur

        elif elements == 3:
            croiseur = Bateau("croiseur", 2)
            joueur.croiseur = croiseur
            joueur.nom_des_bateaux.append("croiseur")
            bateau = croiseur

        elif elements == 4:
            canonniere = Bateau("canonniere", 3)
            joueur.canonniere = canonniere
            joueur.nom_des_bateaux.append("canonniere")
            bateau = canonniere
        elif elements == 5:
            destroyer = Bateau("destroyer", 3)
            joueur.destroyer = destroyer
            joueur.nom_des_bateaux.append("destroyer")
            bateau = destroyer

        print("Joueur {} le bateau que vous placez est le : {} avec une taille de : {}".format(joueur.nom,
                                                                                               bateau.nom_bateau,
                                                                                               bateau.taille_bateau))
        while True:

            try:
                coord_col = input(
                    "Joueur {}, veuillez choisir une colonne comme point de départ pour placer le {} : ".format(
                        joueur.nom,
                        bateau.nom_bateau)).upper()
                coord_rangee = int(input(
                    "Joueur {}, veuillez choisir une ligne comme point de départ pour placer le {} : ".format(
                        joueur.nom,
                        bateau.nom_bateau)))
                horizontal_ou_vertical = input(
                    "Voulez vous le placer horizontalement ou verticalement ? (h ou v)\n\n").lower()

                if horizontal_ou_vertical != "h" and horizontal_ou_vertical != "v":
                    raise ValueError

                bateau.position_bateau_verif(coord_col, coord_rangee, bateau, joueur.plateau_joueur.tableau,
                                             horizontal_ou_vertical)
            except (IndexError, KeyError, ValueError):
                print("Erreur, veuillez introduire des coordonnées valides\n")
            else:

                bateau.position_bateau(coord_col, coord_rangee, bateau, joueur.plateau_joueur.tableau,
                                       horizontal_ou_vertical)

                break

    afficher_tableau(joueur.plateau_joueur.tableau)

    fin_de_tour = False
    while not fin_de_tour:
        print("Votre tour est fini , le joueur suivant peut s'installer devant l'ordinateur...\n\n\n")
        valid_fin_de_tour = input("joueur suivant êtes vous prêt o/n\n\n").upper()
        if valid_fin_de_tour == "O" or valid_fin_de_tour == "OUI":
            fin_de_tour = True