def inputPosShip(ship, grid) :
    """
    Demande à l'utilisateur d'entrer une position pour le bateau (ship) sur une grille (grid).
    Cycle tant que le bateau n'est pas correctement placé.
    
    Arguments:
    - ship (list) : Un bateau de l'utilisateur.
    - grid (list) : Grille de jeu.
    
    Retour:
    (tup) Position viable pour un bateau ship de la forme (ligne, colonne).
    
    Exemple:
    >>> bateau=["canot", None, None, 2, 2]
    >>> grille=[[[None, None], [None, None]], [[None, None], [None, None]]]
    >>> x=inputPosShip(bateau, grille)
    Entrez la case :A3
    Coordonnée hors de la grille
    Entrez la case :A1
    >>> print(x)
    (0, 0)
    """
    pos=inputCoord(grid)
    while b.validShipDirections(pos, ship, grid) == [] :
        print("Position invalide pour", ship[0])
        pos=inputCoord(grid)
    return pos
def inputDirectionShip(pos, ship, grid) :
    """
    Demande à l'utilisateur d'entrer une direction valide pour un bateau (ship) placé
    en son extrémité de position (pos), sur une grille (grid) donnée.
    
    Arguments:
    - pos (tup) : Position de l'extrémité d'un bateau (ship).
    - ship (list) : Un bateau de l'utilisateur.
    - grid (list) : Grille de jeu.
    
    Retour:
    (str) Direction viable pour le bateau (ship). "NORTH", "SOUTH", "WEST", ou "EAST" en fonction du choix du joueur.
    
    Exemple:
    >>> bateau=["canot", None, None, 2, 2]
    >>> grille=[[[None, None], [None, None]], [[None, None], [None, None]]]
    >>> x=inputDirectionShip((0,0),bateau,grille)
    Entrez la direction :g
    Direction invalide pour canot
    Entrez la direction :d
    >>> print(x)
    EAST
    """
    direction=inputDirection()
    while direction not in b.validShipDirections(pos, ship, grid) :
        print("Direction invalide pour", ship[0])
        direction=inputDirection()
    return direction
Exemplo n.º 3
0
def placeShip(ship, grid):
    """
    Retourne une position et une direction possible pour un bateau ship sur une grille grid.
    
    Arguments:
    - ship (list) : liste représentant un bateau
    - grid (list) : grille
    
    Retour:
    (tuple) tuple de la forme ((ligne, colonne), direction) pour le placement d'un bateau
    
    Exemple:
    >>> grid
    [[[None, None], [None, None], [[None, None], [None, None]]]
    >>> placeShip(ship, grid)
    ((0, 0), "SOUTH")
    """
    pos = genCoord(grid)
    directions = b.validShipDirections(pos, ship, grid)
    while directions == []:
        pos = genCoord(grid)
        directions = b.validShipDirections(pos, ship, grid)
    return (pos, directions[0])