SAÉ S1 · Java CLI

Pawn School

Outil pédagogique pour comprendre la logique de jeu.

Pawn School

Focus projet

Jeu éducatif où deux joueurs avancent leurs pions en répondant à des questions de difficulté croissante.

Compétences techniques

Dépôt github.com/AubinCambier/Pawn_School

Soft Skills — illustrés par des situations concrètes

Travail en équipe

Premiers pas en codage collaboratif

C'est l'un de mes premiers projets en groupe. J'ai appris à découper le travail pour que plusieurs personnes puissent coder en parallèle sans se bloquer mutuellement — définir qui fait quoi, et s'assurer que les parties s'assemblent correctement à la fin.

Adaptabilité

Travailler avec les contraintes d'iJava

iJava interdit la POO : pas de classes, pas d'objets. J'ai dû adapter ma façon de penser pour modéliser un jeu avec des tableaux et des fonctions là où un langage objet aurait été naturel. Cette contrainte m'a forcé à comprendre les fondements avant les abstractions.

Organisation

Conventions de nommage sans classes

Sans structures objet, le code devient vite illisible si on ne se fixe pas des conventions. J'ai proposé des préfixes de nommage pour les variables liées à chaque entité du jeu (joueur, question, partie), ce qui a aidé l'équipe à s'y retrouver dans un code sans hiérarchie de classes.

Analyse réflexive

Ce que j'ai appris

Décomposer un problème complexe

C'est l'un de mes premiers projets en Java. J'ai appris à décomposer une mécanique de jeu (tour par tour, progression des joueurs, questions à difficulté croissante) en fonctions simples et testables. Cela m'a donné le réflexe de penser « petits morceaux » avant de coder.

Difficultés rencontrées

Les limites d'iJava & le travail en groupe

iJava impose de travailler sans POO ni structures avancées, ce qui rend la gestion de l'état du jeu rapidement lourde avec des tableaux et des variables globales. Coordonner le travail d'équipe sur un même fichier sans système de branches clair a également généré des conflits.

Ce que je ferais différemment

Java standard & POO dès le départ

Avec le recul, j'utiliserais du Java standard avec des classes et de l'encapsulation pour modéliser les entités (joueur, question, partie). Je mettrais aussi en place Git avec des branches dès le premier jour pour éviter les conflits sur le code partagé.