Bataille navale (2)

On a perdu pas mal de temps à essayer de « partager » ce cours en video… Et ça a un peu, un temps, marché ! Mais ce qui a surtout marché et que beaucoup n’ont pas pu voir, c’est notre projet qui fonctionnait !

On a maintenant quatre fichiers de scripts python dans notre dossier courant :

  • donnees.py : le même que la dernière fois, qui génère une grille aléatoire, on importe la fonction creation_grille() de ce fichier dans le_jeu.py
  • outils_console.py : on a rassemblé et codé dans ce fichier toutes les fonctions d’entrées / sorties en console (shell) utiles au moteur de jeu : affichage(grille), saisie_nom(), saisie_coup(nom) et message(chaine) et même fin().
  • le_jeu.py : le moteur de jeu lui-même, qui enchaîne les coups, maintient la grille et compte les points,
  • outils_pygame.py : dans lequel petit à petit on code les mêmes fonctions que dans outils_console.py, mais en version graphique ! Une liste de cinq dont on n’a pour l’instant codé que deux, mais pas des moindres : les deux premières !
    • affichage(grille),
    • saisie_coup(nom),
    • saisie_nom(),
    • message(chaine),
    • et fin().

On a ainsi respecté le « motif » MVC : Modèle – Vue – Contrôleur en séparant ces différentes fonctionnalités !

Les codes de ce mardi en cliquant ici.

A faire pour vendredi :

  • améliorer l’affichage,
    • les lignes et les colonnes présentées A, B, … , J et 0, 1 … 9
    • la fenêtre d’affichage pour les messages
  • l’affichage du score
  • et la fin !

On fera vendredi :

  • le corrigé de tout ça :
  • un mode joueur vs ordi avec placement des bateaux !

Teasing :

Bataille Navale (1)

Petit projet pour bien finir l’année !

2020-06-12 NSI TBI bataille navale

Comme toujours, pour partir du bon pied dans un projet, il faut :

  • bien réfléchir aux types des données et donc des variables,
  • un bon découpage fonctionnel.

Ici, on va veiller à appliquer le « motif » MVC : Modèle – Vue – Contrôleur.

Les (dix) tableaux de ce matin, avec du pythontutor et des étapes :

Les codes produits ce matin en cliquant sur « lire la suite ».

D’ici la prochaine séance :

  • mettre en place le « coulé » qui rajoute 10 aux valeurs des grilles des bateaux « coulés » après avoir été « touchés »,
  • améliorer l’affichage console avec le titre des lignes et des colonnes pour faciliter le gameplay.

Lire la suite

Le problème du sac à dos

Plan de ce cours distanciel :

« Nous disposons d’une clé USB qui est déjà bien remplie et sur laquelle il ne reste que 5 Go de libre. Nous souhaitons copier sur cette clé des fichiers vidéos pour l’emporter en voyage. Chaque fichier a une taille et chaque vidéo a une durée. La durée n’est pas proportionnelle à la taille car les fichiers sont de format différents, certaines vidéos sont de grande qualité, d’autres sont très compressées. »

Angle d’attaque choisi :

  1. Représentation des données
  2. Révision du tri par insertion
  3. Un algorithme glouton
  4. Force brute
  5. Conclusion

Lire la suite