Java Video Game "Ticket to Ride"
February 2023 - April 2023
JavaFX game to play a computer version of the board game "Ticket to Ride"
Contributors:
Daniil Hirchyts
Project Overview
Ticket to Ride is a board game played on a game board representing a geographic map. The goal of the game is to connect cities by building railways. The game is played over several rounds, and the player with the most points at the end of the game wins. In this computer version of the game, players can face opponents controlled by the computer or by other online players. The game offers an immersive gaming experience with high-quality graphics and fluid animations. The game is designed to be easy to learn and play, while offering a stimulating challenge for players of all levels.
Key Features
- Object-oriented development
- Unit test development
- Version control with Git
- Human-machine interface design and implementation
Context
The 'Ticket to Ride Around the World' project is part of the development of a Java implementation of the eponymous board game. Focusing on the 'World' board, the project was completed in several phases, implementing object-oriented development principles and graph algorithms.




Relations between personal achievements and the program of BUT Computer Science
AC 11.01 : Implémenter des conceptions simples.
Level: Acquis
Link with the project
L'implémentation de conceptions simples a permis d'intégrer des fonctionnalités clés comme le système de recherche de chemin, tout en respectant les exigences du client.
CE 1.01 : Respecter les besoins décrits par le client
Intégration du système de recherche Dijkstra pour afficher le chemin le plus court pour terminer la route aux joueurs, en respectant les besoins du client pour une expérience utilisateur optimale.
CE 1.03 : Appliquer des principes algorithmiques
Développement de mécanismes de jeu basés sur des algorithmes pour assurer une expérience de jeu fluide, en utilisant des algorithmes comme Dijkstra.
AC 11.02 : Implémenter des conceptions complexes.
Level: Acquis
Link with the project
L'implémentation de conceptions complexes a permis de gérer des interactions et des scénarios avancés dans le jeu, en utilisant des modèles et des algorithmes appropriés.
CE 2.01 : Formaliser et modéliser des situations complexes
Modélisation des routes et des interactions entre les différents éléments du jeu pour créer une expérience réaliste et immersive.
CE 2.02 : Recenser les algorithmes et les structures de données usuels
Utilisation d'algorithmes et de structures de données pour gérer les interactions complexes dans le jeu.
AC 11.03 : Faire des essais et évaluer leurs résultats en regard des spécifications.
Level: Acquis
Link with the project
Les essais et l'évaluation des résultats ont permis de garantir que les fonctionnalités du jeu répondent aux attentes et aux spécifications.
CE 2.04 : Justifier les choix et valider les résultats
Ajout de tests unitaires pour valider les fonctionnalités du jeu et s'assurer qu'elles répondent aux spécifications.
AC 11.04 : Développer des interfaces utilisateurs.
Level: Acquis
Link with the project
Le développement d'interfaces utilisateurs a permis d'améliorer l'expérience utilisateur en fournissant des menus intuitifs et bien documentés.
CE 1.04 : Veiller à la qualité du code et à sa documentation
Réalisation de menus de démarrage et de paramétrage pour une interaction optimale entre le joueur et la machine, en veillant à la qualité du code.
AC 12.01 : Analyser un problème avec méthode.
Level: Acquis
Link with the project
L'analyse méthodique des problèmes a permis de structurer le code de manière efficace et de choisir les meilleures ressources techniques pour le projet.
CE 1.06 : Choisir les ressources techniques appropriées
Découpage du code en plusieurs sous-fonctions pour faciliter la compréhension et la maintenance, en choisissant les ressources techniques adaptées.
AC 12.03 : Formaliser et mettre en œuvre des outils mathématiques pour l’informatique.
Level: Acquis
Link with the project
La mise en œuvre d'outils mathématiques a permis de gérer les calculs de points et les routes de manière précise et efficace.
CE 4.03 : S’appuyer sur des bases mathématiques
Utilisation de graphes et de formules mathématiques pour les routes et les calculs de points, en s'appuyant sur des bases mathématiques solides.
AC 16.03 : Identifier les statuts, les fonctions et les rôles de chaque membre d’une équipe pluridisciplinaire.
Level: Acquis
Link with the project
L'identification des rôles et des fonctions au sein de l'équipe a permis une meilleure organisation et une collaboration efficace.
CE 6.01 : Inscrire sa démarche au sein d’une équipe pluridisciplinaire
Réalisation de réunions pour répartir les tâches et optimiser l'avancement du projet, en identifiant les rôles et fonctions de chaque membre de l'équipe.