Work

Dominion Seaside

Java
Programmation orientée objet
JUnit
Git
Travail en équipe

Développement en binôme d'une implémentation complète de l'extension Seaside du jeu Dominion en Java.

Dominion Seaside

Développement en binôme d’une implémentation de l’extension *Seaside- du jeu *Dominion- dans le cadre d’une SAE universitaire.

Le projet

L’objectif était de reproduire fidèlement les mécaniques du jeu en utilisant une architecture orientée objet en Java. Le moteur de jeu était déjà fourni, et notre travail consistait à implémenter les différentes cartes de l’extension ainsi que leurs interactions parfois complexes.

Réalisations

  • Implémentation de plusieurs dizaines de cartes de l’extension Seaside.
  • Gestion des différents types de cartes : Action, Attaque, Duration, Réaction…
  • Développement des effets sur plusieurs tours et des interactions entre joueurs.
  • Manipulation des différentes zones du jeu : main, pioche, défausse, cartes écartées, cartes en jeu.
  • Écriture et ajout de nombreux tests unitaires avec *JUnit- afin de couvrir les cas classiques et les cas limites.
  • Travail collaboratif avec Git et GitLab, en utilisant des branches dédiées et des fusions progressives.

Difficultés rencontrées

Certaines cartes possédaient des comportements particuliers nécessitant une réflexion importante sur l’architecture du code et les interactions entre objets. Le projet demandait également de conserver un code suffisamment générique pour éviter les duplications et faciliter l’ajout de nouvelles cartes.

Ce que ce projet m’a apporté

  • Approfondissement de la *programmation orientée objet- en Java.
  • Utilisation régulière de Git dans un contexte de travail en binôme.
  • Mise en pratique des tests unitaires avec JUnit.
  • Réflexion sur la conception logicielle et la maintenance du code.
  • Apprentissage de la gestion des conflits Git, des branches et des fusions.
  • Développement d’une méthode de travail plus rigoureuse grâce à une approche orientée tests.