Bataille navale : plan de table et grille de jeu à imprimer

Le plan de table de la bataille navale repose sur une grille composée de coordonnées, de lignes et de colonnes, permettant de placer secrètement les bateaux puis d’annoncer précisément chaque tir. Chaque joueur utilise une grille pour sa propre flotte et une grille distincte pour mémoriser ses tirs contre l’adversaire.

Le but est de couler toute la flotte adverse avant que l’adversaire ne coule la vôtre. La bataille navale se joue généralement à 2 joueurs, à tour de rôle, en annonçant une coordonnée et en notant « touché », « coulé » ou « raté ».

plan de table bataille navale grille coordonnées

Le plan de table de la bataille navale

La bataille navale exige deux grilles distinctes : l’une pour sa flotte, l’autre pour mémoriser les tirs. La position des navires ne change plus après le début.

Un jeu de bataille navale permet d’apprendre à se repérer sur une grille sans écran. À travers ce jeu papier, les participants manipulent des coordonnées et intègrent les bases du repérage tabulaire tout en s’amusant.

Les éléments indispensables du plan

  • Une grille pour placer ses propres bateaux.
  • Une grille de suivi pour noter les tirs effectués.
  • Des lignes et des colonnes clairement identifiées.
  • Des coordonnées précises pour chaque tir.
  • Un espace suffisamment discret pour que l’adversaire ne voie pas le placement.

Les bateaux sont placés horizontalement ou verticalement. Un tir annonce une coordonnée précise. Les tirs déjà joués sont marqués pour éviter les doublons.

La grille de suivi séparée évite de déduire une information à partir d’un déplacement de pièces. Les marqueurs de la grille de tir doivent distinguer l’eau, les impacts et les navires entièrement détruits.

Préparer la grille avant de jouer

Chaque joueur place secrètement ses bateaux sur sa grille sans que l’adversaire puisse les voir. Fixez la taille de la grille, les bateaux utilisés et l’autorisation ou non de bateaux adjacents.

À annoncer avant la partie : Fixez la taille de la grille, les bateaux utilisés et l’autorisation ou non de bateaux adjacents.

Vérifiez le contenu du jeu et annoncez l’édition ou la variante utilisée. Si la notice de votre édition diffère sur le matériel ou une variante, elle prévaut.

Coordonnées et repérage

Les coordonnées peuvent être constituées d’une lettre pour la colonne et d’un chiffre pour la ligne. La fonction va commencer par afficher les lettres des colonnes, puis elle va huit fois (la taille du tableau) afficher le chiffre de 1 +1 (car il commence par 0) et la ligne du tableau associée.

Nous avons de plus créé un dictionnaire qui associe une lettre à un chiffre. Cette grille est la grille de base, qui nous permettra d’afficher les bateaux à l’aide de leurs position indiquée par le joueur, ou bien pour attaquer l’adversaire.

Un tir annonce une coordonnée précise. Le joueur donne une coordonnée unique, par exemple B7 ; l’adversaire répond à l’eau, touché ou coulé.

Exemple de grille 8 × 8

ABCDEFGH
1
2
3
4
5
6
7
8

Placement des bateaux sur le plan de table

La position des navires ne change plus après le début. Chaque navire occupe une ligne horizontale ou verticale continue et reste entièrement dans la grille.

Interdire les navires en diagonale ou coudés. La flotte reste néanmoins formée de segments droits, horizontaux ou verticaux, entièrement dans la grille.

Un placement est découvert illégal si un navire dépasse la grille, se courbe ou viole la règle de contact annoncée. Corrigez le placement avant le premier tir grâce à un contrôle mutuel derrière les écrans.

Flotte utilisée dans la variante éducative

Ensuite, chaque joueur colle sur sa grille sa flotte de bateaux horizontalement et verticalement au choix :

  • 1 voilier occupe 1 case : en placer 3 chacun
  • 1 cuirassier occupe 2 cases : en placer 2 chacun
  • 1 porte-avions occupe 3 cases : en placer 1 chacun

Autre composition possible

Il en existe 4 différents: un torpilleur de 2 cases, un contre torpilleur de 3 cases, un croiseur de 4 cases, un porte avion de 5 cases.

Une boucle de 2 à 6 permet de répéter tout cela 5 fois, et crée donc cinq bateaux de deux à cinq cases.

Une boucle de 2 à 6 permet à nouveau de définir la taille des bateaux, nous avons donc également quatres bateaux de deux à cinq cases sur le tableau de l’adversaire.

Le nombre et la longueur des navires peuvent varier. La flotte imprimée dans la notice constitue la référence de la partie.

Orientation des navires

L’utilisateur peut donc commencer à placer ses bateaux. Pour cela la fonction choix() lui demande les coordonnées de chaque bateau qu’il veut placer.

Il commence donc par indiquer le chiffre de la ligne, puis la lettre indiquant la colonne et enfin si le bateau est orienté verticalement ou horizontalement.

Les deux conditions après avoir appelles la fonction choix() vérifient que le bateau ne sortira pas des limites du tableau. Si cela est vérifié, alors la fonction parcourt le tableau_joueur place la première case du bateau en échangeant un 0 par un 1.

Il continue dans la direction choisie (horizontale ou verticale) le nombre des cases indiqué par la boucle de départ. En plaçant les lignes et les colonnes , nous faisons -1 car les tableaux commencent de zéro, donc sans le -1, il y aurait un décalage avec la demande du joueur.

Bateaux adjacents

Décider si deux navires peuvent se toucher : les éditions ne suivent pas toutes la même convention.

Certaines éditions l’autorisent et d’autres imposent une case d’écart. La règle de la boîte doit être fixée avant que les écrans cachent les placements.

La règle maison doit être annoncée avant la mise en place et ne doit pas être confondue avec la règle officielle.

Déroulement d’une partie

Une fois les bateaux installés, le joueur le plus jeune commence. Il annonce les coordonnées du point qu’il veut toucher par exemple : 5 x 6.

Il doit ensuite donner le résultat de l’opération : 30. Si l’opération est juste alors l’adversaire lui indique s’il a touché un bateau, s’il l’a coulé ou s’il est tombé à l’eau.

Si l’opération est fausse, il passe son tour. Et ainsi de suite à tour de rôle jusqu’à faire couler une des 2 flottes entièrement !

Règle classique du tir

Les joueurs annoncent à tour de rôle une coordonnée et notent touché, coulé ou raté. Pas de score nécessaire : le premier qui coule toute la flotte adverse gagne.

Un tir touche une case occupée. L’adversaire annonce « touché » sans révéler son orientation ni ses autres cases.

Il annonce « coulé » uniquement lorsque tous les emplacements du navire ont été atteints, si la règle choisie exige cette information.

Il annonce « coulé » lorsque toutes les cases qui composent le navire ont été touchées.

Exemple de navire coulé

Un croiseur placé de D4 à D6 est coulé seulement après des impacts en D4, D5 et D6, quel que soit l’ordre des tirs.

Noter les tirs sur la grille

La première fonction utilise la fonction choix() pour définir les variables ligne et colonne avec lesquelles elle va vérifier si on a déjà choisi cet endroit et si un bateau adverse se trouve en cette position.

Elle renvoie “Touché!” et remplace le 0 par un 3 dans le tableau_devine ou renvoie "Raté" et remplace le 0 par un 7 dans le tableau_devine.

Les marqueurs de la grille de tir doivent distinguer l’eau, les impacts et les navires entièrement détruits.

RésultatSignification
TouchéLa coordonnée vise une case occupée.
CouléToutes les cases du navire ont été touchées.
RatéLa coordonnée vise une case vide.

Coordonnée déjà appelée

Les tirs déjà joués sont marqués pour éviter les doublons.

Dans la règle stricte, le tir est consommé et n’obtient pas de seconde tentative. La grille de suivi sert à l’éviter.

Pour une partie d’initiation, autoriser la correction est possible seulement si cette adaptation a été annoncée pour les deux joueurs avant le placement.

Conditions de victoire

Le but du jeu est de couler la flotte de son adversaire.

Couler toute la flotte adverse avant que l’adversaire ne coule la vôtre.

Pas de score nécessaire : le premier qui coule toute la flotte adverse gagne.

La bataille navale reste équitable si le placement est figé avant le premier tir et si chaque coordonnée reçoit une réponse contrôlable.

Variante éducative avec multiplications

En cette période de confinement dû au Covid19 la Rédac’ du Mag vous partage aujourd’hui un printable pour jouer à la bataille Navale de manière éducative mais toujours ludique.

C’est le moment d’instaurer quelques petits rituels avec votre enfant et lui donner goût aux choses qu’il n’aime pas forcément faire… comme apprendre ses multiplications !

Pour jouer il vous suffit de cliquer sur l’image ci-dessous et d’imprimer le PDF en deux exemplaires.

Règles de la variante

Niveau : CM1/CM2

2 joueurs

1 crayon chacun et de la colle

Tout d’abord, on complète les axes X et Y de la grille avec des chiffres entre 2 et 9 et cela de manière identique sur les 2 grilles.

Le joueur le plus jeune commence. Il annonce les coordonnées du point qu’il veut toucher par exemple : 5 x 6.

Il doit ensuite donner le résultat de l’opération : 30.

Si l’opération est juste alors l’adversaire lui indique s’il a touché un bateau, s’il l’a coulé ou s’il est tombé à l’eau.

Si l’opération est fausse, il passe son tour.

Adaptation pour les plus jeunes

Remplacez les multiplications par des additions pour les plus jeunes !

C’est une manière ludique de réviser les tables de multiplication (même pour les adultes) ou apprendre à compter pour les plus petits !

Le joueur qui perds doit ensuite apprendre une des tables de multiplication et va devoir la réciter le lendemain à toute la famille et cela compte aussi pour les parents !

Règle du jeu Bataille navale solitaire

Grille papier et programmation

Notre problématique est: Comment créer un jeu conçu pour être joué sur papier sur python?

Nous avons choisi ce jeu car nous le trouvons ludique et relaxant. Vu notre intérêt en jouant, nous avons décidé de créer notre propre version.

La bataille navale est un des plus grands jeux de notre enfance, c’est un jeu familial, etc… Malheureusement il est temps pour nous de grandir, et d'être des étudiants responsables, c’est pour cela que ce jeu peut permettre à des étudiant isolés de pouvoir malgré tout jouer au jeu qui a bercé son enfance.

Création des tableaux

Tout d’abord notre programme commence par la création d’un tableau, permettant de placer les bateaux par la suite.

Premièrement, on a créé le tableau de jeu du joueur principal, remplis de zéro de taille 8 x 8.

Le tableau de l’adversaire et celui où l'on devine les bateaux sont créés de la même manière, mais celui de l'adversaire ne sera pas affiché pendant la partie pour ne pas révéler ses bateaux.

Puis nous avons défini la fonction affiche() qui permet l’affichage formaté des tableaux sur l'interpréteur avec des des lettres en tant que colonnes, et des chiffres en tant qu'indicateur de lignes.

Placement aléatoire de l’adversaire

Cette fonction permet de placer les bateaux du joueur adverse de façon aléatoire, nous avons donc utilisé random pour cela.

Ce module est appelé au début du programme par un import.

Le placage des bateaux adversaires est constitué de trois fonctions.

Premièrement la fonction direction() qui renvoie un chiffre au hasard entre 0 et 1.

Puis la fonction case() qui prendra en paramètres la taille et la direction du bateau.

Elle renvoie une liste avec une lettre et un numéro choisi au hasard et la direction.

Enfin, nous avons créé la fonction poser() qui prend en paramètres les données de la fonction case, un tableau et la taille du tableau.

Cette fonction vérifie si la direction est horizontale (0) ou verticale (1) puis vérifie sur la place du bateau qu’il n’y a pas de bateaux déjà placés à cet endroit.

Si oui, la fonction renvoie False la boucle while not est_pose, continue jusqu'à ce que est_pose == True.

La boucle while not tourne à l'infini jusqu'à ce que sa condition soit remplie.

Attaquer l’adversaire

Le joueur va pouvoir enfin attaquer l'adversaire et inversement! Pour cela, nous avons créé deux fonctions: attaque_joueur() et attaque_adv().

La deuxième fonction fonctionne de la même manière mais utilise des positions choisis au hasard et renvoie si le joueur a été touché ou non.

Apports et améliorations possibles

Au cours de ce projet nous avons appris et nous avons pu nous améliorer sur la création de tableaux, sur la cohésion de groupe et la répartition du travail.

Nous avons de plus pu nous familiariser avec les listes, et des conditions.

Une interface graphique aurait amélioré notre projet mais nous avons essayé de privilégier la finition de celui-ci.

Ajouter des asserts pour limiter les erreurs dans l'interpréteur et éviter de devoir recommencer le programme à chaque fois.

tags: #bataille #navale #plan #de #table