SkillAgentSearch skills...

Cluedo

Progetto di Ingegneria del Software del gruppo 22

Install / Use

/learn @mikyll/Cluedo

README

<div align="center">

CC_BY_--NC--_SA_4.0 License Size Contributors Issues Downloads Stars
Java IntelliJ IDEA

</div>

Clueless

Clueless is a Java application that implements an unofficial version of the Cluedo game.

NB: This is not an official Hasbro product, is not endorsed or sponsored by Hasbro, and is not intended for commercial use. It is distributed for personal use and educational purposes only, with no intent to infringe upon Hasbro's rights.

It was born as a project for the course Software Engineering T at Alma Mater Studiorum, University of Bologna. I later decided to improve and complete it, as a full working game.

It's still under development.

Roadmap

  • [ ] Change the repo name to Clueless
  • [ ] Rewrite server logic under model
  • [ ] make GUI selectable (via args):
    • [ ] JavaFX
    • [ ] Swing
    • [ ] TUI
  • [ ] Game engine (methods such as one to get the list of destination boxes given a step counter)
  • [ ] clue sheet and notepad as dialog windows (both can be open at the same time)
  • [ ] AI players:
    • [ ] allow to start a game with no human players (spectator mode)
    • [ ] extra config:
      • [ ] choose the search tree depth/width limit
      • [ ] choose the algorithm
      • [ ] ...
  • [ ] game state savings
  • [ ] Investigate .getResourceStream() not working for path levels greater than 0 (only works for files in root, e.g. classes/file.txt works but classes/it/mikyll/cluedo/file.txt does not)
<!-- - [ ] Scrivere le classi del game engine (prendere spunto anche da Tablut magari) - [ ] Poi adattarci la grafica - [ ] Sfruttare le classi del JavaFX multiplayer lobby system per il multigiocatore - [ ] Una volta ottenuto un prototipo giocabile, fare la grafica. NB: l'associazione delle caselle ai punti specifici nella mappa la fa il controller. * NB: modificarlo e scriverlo in INGLESE principalmente. * Classi base del model * Trovare qualcuno che mi disegni la mappa * Sistema per il multigiocatore molto base (server host, client si connettono al server, con socket UDP/TCP. Sistema di room con creazione/unione) * Per le socket usare un thread aggiuntivo: quando l'utente seleziona "crea una stanza" viene creato un oggetto Server che, dopo il set dei parametri si mette in listen delle connessioni. Quando l'utente seleziona "unisciti ad una stanza" viene creato un oggetto Client che si connette al server. Serve thread separato altrimenti le chiamate bloccanti interferiscono con la GUI (sempre che funzionino, perché javafx si arrabbia spesso) - pattern observer(?) * Scrivere documentazione su tutto. Fondamentalmente su come funzionano client e server, quali thread eseguono, quali sono i workflow e quali sono le sequenze di scambio di messaggi. Utilizzare anche dei diagrammi UML. * ATTENZIONE: aggiungere chiusura di tutto quando si chiude l'app (potrebbero esserci dei thread attivi) * Persistenza impostazioni varie con parsing XML Niente gestore sicurezza che tanto non serve a una mazza. ### Built With versione Java: JavaSE-11 (jdk-11.0.11)<br/> versione JavaFX: JavaFX 11 (javafx-sdk-11.0.2) -->

References

  • Mega useful project for lobby chat: JavaFX-Chat
  • JavaFX game tutorial: Space Shooter
  • Simple API with high-level abstraction, to build a game without troubles: Java FXGL
<div align="center">

LinkedIn GitHub followers

</div>
View on GitHub
GitHub Stars4
CategoryDevelopment
Updated1y ago
Forks1

Languages

Java

Security Score

60/100

Audited on Nov 7, 2024

No findings