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
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])