nsi:tds:jeux:bataille_navale
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:tds:jeux:bataille_navale [2022/04/03 14:37] – ↷ Page déplacée de nsi:tds:bataille_navale à nsi:tds:jeux:bataille_navale goupillwiki | nsi:tds:jeux:bataille_navale [2024/12/29 17:56] (Version actuelle) – [Mémoire des coups tirés] goupillwiki | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Bataille navale ====== | ====== Bataille navale ====== | ||
| - | {{ : | + | {{ :nsi:tds:jeux: |
| ===== Présentation ===== | ===== Présentation ===== | ||
| Ligne 14: | Ligne 14: | ||
| ===== Les ingrédients nécessaires ===== | ===== Les ingrédients nécessaires ===== | ||
| + | |||
| + | Tout d' | ||
| ==== La grille de jeu ==== | ==== La grille de jeu ==== | ||
| Ligne 19: | Ligne 21: | ||
| Bien que la grille soit une grille à 2 dimensions, on va procéder un peu différemment. On choisit de numéroter chaque case selon son ordre sa position dans l' | Bien que la grille soit une grille à 2 dimensions, on va procéder un peu différemment. On choisit de numéroter chaque case selon son ordre sa position dans l' | ||
| - | {{ : | + | {{ :nsi:tds:jeux: |
| Ainsi la case F5 correspond au numéro 54. | Ainsi la case F5 correspond au numéro 54. | ||
| Ligne 26: | Ligne 28: | ||
| <code python> | <code python> | ||
| - | def adresse_to_index(adresse: | + | def adresse_to_coords(adresse: |
| """ | """ | ||
| adresse: chaine comme " | adresse: chaine comme " | ||
| - | renvoie | + | renvoie la ligne et la colonne. |
| + | | ||
| """ | """ | ||
| </ | </ | ||
| Ligne 77: | Ligne 80: | ||
| ==== Lire, écrire ==== | ==== Lire, écrire ==== | ||
| - | On veut une fonction '' | + | On veut une fonction '' |
| - | Avec la grille précédente, | + | Avec la grille précédente, |
| - | On veut une fonction '' | + | On veut une fonction '' |
| - | Par exemple, si avec la grille précédente, | + | Par exemple, si avec la grille précédente, |
| <code python> | <code python> | ||
| Ligne 100: | Ligne 103: | ||
| ==== Coulé ==== | ==== Coulé ==== | ||
| - | On a besoin d'une fonction '' | + | On a besoin d'une fonction '' |
| * '' | * '' | ||
| * '' | * '' | ||
| Ligne 109: | Ligne 112: | ||
| Quand on tire sur une flotte, on veut savoir si on a touché et éventuellement si on a coulé. | Quand on tire sur une flotte, on veut savoir si on a touché et éventuellement si on a coulé. | ||
| - | Il faut donc une fonction '' | + | Il faut donc une fonction '' |
| * on précise en entrée la flotte de l' | * on précise en entrée la flotte de l' | ||
| * la fonction doit renvoyer deux booléens. Le premier indique si un navire est touché et le second indique si un navire est coulé. Par exemple, le retour '' | * la fonction doit renvoyer deux booléens. Le premier indique si un navire est touché et le second indique si un navire est coulé. Par exemple, le retour '' | ||
| Ligne 117: | Ligne 120: | ||
| <code python> | <code python> | ||
| - | touché, coulé = tir(grille, | + | touché, coulé = tir(grille, |
| # touché est True | # touché est True | ||
| # coulé est False | # coulé est False | ||
| Ligne 135: | Ligne 138: | ||
| ==== vide ==== | ==== vide ==== | ||
| - | On veut une fonction '' | + | On veut une fonction '' |
| ==== grille aléatoire ==== | ==== grille aléatoire ==== | ||
| Ligne 142: | Ligne 145: | ||
| C'est un problème difficile. Dans un premier temps vous pouvez vous contenter d' | C'est un problème difficile. Dans un premier temps vous pouvez vous contenter d' | ||
| + | |||
| + | ==== Mémoire des coups tirés ==== | ||
| + | |||
| + | **Pas obligatoire dans la version la plus simple !** | ||
| + | |||
| + | Il est plus confortable pour le joueur de garder la trace des tentatives qu'il a effectuées. On pourrait alors entretenir une grille de même format que la précédente mais qui contiendrait : | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Il faudrait donc maintenir cette grille à jour au cours de la partie. De plus, pour qu' | ||
| + | |||
| + | < | ||
| + | def affichage_cible(cible): | ||
| + | SYMBOLES = " XO" | ||
| + | result =" " | ||
| + | for i in range(TAILLE): | ||
| + | result += f" | ||
| + | for i, item in enumerate(cible): | ||
| + | if i%TAILLE == 0: | ||
| + | line = i//TAILLE | ||
| + | result += " | ||
| + | result += chr(line + 65) | ||
| + | result += " " + SYMBOLES[item] | ||
| + | return result | ||
| + | </ | ||
| ===== Tout mettre ensemble ===== | ===== Tout mettre ensemble ===== | ||
| Ligne 147: | Ligne 176: | ||
| Ces fonctions étant définies, vous avez les ingrédients pour lancer le jeu. À vous de les assembler ! | Ces fonctions étant définies, vous avez les ingrédients pour lancer le jeu. À vous de les assembler ! | ||
| - | Vous pouvez créer une version de jeu simplifiée | + | Vous pouvez créer une version de jeu simplifiée |
| * au démarrage du jeu, la machine initialise sa propre grille, | * au démarrage du jeu, la machine initialise sa propre grille, | ||
| - | * le joueur est invité à entrer une adresse de tir, | + | * l' |
| + | * à chaque tour, le joueur est invité à entrer une adresse de tir, | ||
| * la machine essaie cette adresse sur sa grille et répond au joueur : manqué, touché ou coulé. | * la machine essaie cette adresse sur sa grille et répond au joueur : manqué, touché ou coulé. | ||
| - | * Le joueur recommence jusqu' | + | * Le joueur recommence jusqu' |
nsi/tds/jeux/bataille_navale.1648989437.txt.gz · Dernière modification : de goupillwiki
