HomeAboutProjectsCVContact
Back to Projects

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

java
javafx

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.

Image 0Image 1Image 2Image 3

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.