Skip to content

vpoulailleau/mega-bataille-navale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

Mega bataille navale

Jeu

  • Méga bataille navale
    • Inspiré de la bataille navale classique
    • 3 niveaux de grille superposées : les bateaux, les sous-marins de surface, les sous-marins profonds
    • Un missile tire à la verticale et s'arrête au premier obstacle
      • On est prévenu de la couche de l'impact (exemple : touché à la couche des sous-marins de surface)
  • En réseau (TCP/IP)
    • Un joueur ou IA par PC
    • Protocole défini : interopérabilité des logiciels que vous créez, vous pourrez faire combattre les IA entre elles par exemple
  • Mode manuel, et mode intelligence artificielle
  • Taille carte 15×15×3
  • Nombres de vaisseaux, types de vaisseaux, longueur des vaisseaux
    • 1 porte-container 5×2
    • 2 porte-avions 5×1
    • 3 destroyers 4×1
    • 3 torpilleurs 3×2
    • 2 sous-marins nucléaires 6×1
      • À la destruction, il explose dans un rayon de 3 cases autour de lui, dans sa couche (la zone impactée est le rectangle incluant les cases autour du sous-marin, et faisant 23 cases de plus en largeur que le sous-marin et 23 cases de plus en hauteur que le sous-marin)
    • 5 petits sous-marins 3×1
    • 2 mini sous-marins 2×1
  • Un sous-marin peut être placé sur n'importe quelle couche, y compris celle des bateaux
  • Ce document est public, il sera régulièrement mis à jour, proposez une pull request pour l'améliorer (par exemple pour ajouter un lien vers votre dépôt GitHub)

À voir plus tard

  • Missiles puissants (à acheter, ou dispo en aléatoire)
  • Déplacement des bateaux et sous-marins
  • Boucliers anti-missiles
  • Intervention extra-terrestre
  • Gestion du carburant

Contraintes

  • Équipes de 4 personnes (88h de projet * 4 personnes)
  • Code sur GitHub
    • Code Python
    • Interface graphique en Qt (avec Python, PySide2)
    • Tests unitaires faits
    • Intégration continue (TravisCI, Azure Pipelines, GitHub Actions…)
  • Rapport
    • Planification (prévisionnelle et réelle)
    • Petit mode d'emploi
    • Description de qui a fait quoi, et quelles ont été les difficultés/réussites de cette réalisation

Documentation

Protocole réseau

Le protocole est ici décrit en octets. L'encodage des chaînes de caractères est UTF-8.

Connexion

Le client envoie au serveur le nom du joueur, le serveur répond ensuite par le nom de l'adversaire.

Numéro d'octet Signification / Valeur
0 ID de message, vaut 1
1 Longueur du nom de joueur en octets (N)
2 à (N+1) Nom du joueur

Tirs

Le client commence, il tire et reçoit ensuite une réponse du serveur, puis le serveur tire et reçoit une réponse du client. À la fin de cette séquence de 4 messages, on décide du vainqueur (ou de continuer la partie s'il reste des bateaux)

Lancé de missile
Numéro d'octet Signification / Valeur
0 ID de message, vaut 2
1 Abcisse (de 1 à 15)
2 Ordonnée (de 1 à 15)
Réponse au lancé
Numéro d'octet Signification / Valeur
0 ID de message, vaut 3
1 Résultat du tir (0 pour dans l'eau, 1 pour touché un bateau, 2 pour touché un sous-marin de surface, 3 pour touché un sous-marin profond
2 0 pour non-coulé, 1 pour coulé

Liens internet

Liens vers les réalisations

About

Consigne pour la création d'un jeu de bataille navale évolué

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published