arrow_back Torna ai Progetti
php

CLI Minigame Zelda

Un nostalgico gioco d'avventura testuale ispirato a The Legend of Zelda, costruito interamente in PHP con gameplay CLI interattivo. Naviga attraverso una misteriosa griglia del castello 3x3, raccogli oggetti magici, sconfiggi mostri con combattimento strategico e salva la principessa in questa classica esperienza di gioco retrò. Perfetto per sviluppatori che amano sia PHP che i giochi d'avventura old-school, o chiunque voglia sperimentare il fascino della narrazione testuale.

Periodo

2024

Link

deployed_code

CLI Minigame Zelda

Il Progetto

Questo è un classico gioco d'avventura testuale dove giochi nei panni di un eroe che esplora un castello per salvare una principessa. Invece della grafica, il gioco usa descrizioni testuali per dipingere immagini vivide nella tua immaginazione - proprio come i libri d'avventura e i primi giochi per computer del passato. Ti muoverai attraverso diverse stanze, troverai oggetti utili come scudi magici e pugnali, e affronterai mostri pericolosi che fanno la guardia al tuo cammino. Ogni mostro ha una debolezza specifica, quindi strategia ed esplorazione attenta sono la chiave del successo.

Architettura e Stack Tecnologico

Questo gioco d'avventura CLI mostra pattern di sviluppo PHP classici con design object-oriented:

  • Linguaggio: PHP con autoloading PSR-4 moderno tramite Composer
  • Architettura: Game loop basato su pattern Command con sistema stanze/personaggi object-oriented
  • Sistema Input: CLI interattiva usando readline() di PHP per cronologia comandi e input utente
  • Archiviazione Dati: Contenuto testuale basato su file con gestione stato oggetti in memoria
  • Logica Gioco: Navigazione griglia basata su coordinate con sistema sblocco stanze dinamico

Caratteristiche Principali

  • Gameplay CLI Interattivo: Processamento comandi in tempo reale con supporto readline()
  • Design Object-Oriented: Classi separate per Hero, Monster, Item, Room e logica gioco
  • Sistema Combattimento Strategico: Incontri mostri basati su debolezze oggetti richiedendo strumenti specifici
  • Navigazione Mondo Dinamica: Sistema griglia 3x3 con vincoli movimento basati su coordinate
  • Storytelling Testuale: Contenuto narrativo caricato da file testuali esterni
  • Interfaccia Lingua Italiana: Comandi gioco e descrizioni italiane autentiche

Architettura Gioco

  1. Controller Gioco (src/Commands/Play.php) gestisce il loop gioco principale e definizioni stanze
  2. Sistema Personaggi (src/Characters/) gestisce movimento Hero e logica combattimento Monster
  3. Navigazione Stanze (src/Room/) fornisce movimento basato coordinate con vincoli direzionali
  4. Gestione Oggetti (src/Item/) implementa oggetti raccoglibili per inventario e combattimento
  5. Contenuto Testuale (src/ReadFile/) carica descrizioni narrative da file testuali esterni

Stack Tecnologico

code php
code laravel
code vue
code tailwind