Code Monkey home page Code Monkey logo

lupus-master's Introduction

Introduzione

lupus-master è un software di supporto per giocare a Lupus in Tabula.

Tiene traccia di tutto quello che succede e aiuta il master a dirigere la partita. Sono implementate tutte le regole del gioco, le condizioni di vittoria, le caratteristiche dei diversi ruoli e le loro interazioni.

I ruoli implementati nella versione 1.0 sono:

  • Buoni
    • Villico
    • Veggente
    • Cavaliere
    • Giustiziere
    • Ammaestratore
    • Mitomane
    • Medium
    • Beccamorto
  • Cattivi
    • Lupo
    • Indemoniato
    • Insinuo
    • Illusionista
    • Boia
    • Stregone
  • Rubavittoria
    • Matto
    • Wendigo
    • Untore

Installazione

  1. Verificare che sia installato python3
  2. da terminale digitare git clone https://github.com/ncldlbn/lupus-master.git
  3. da terminale digitare pip install requirements.txt

Uso

  1. Compilare il file setup.yml con i ruoli e i nomi dei giocatori che partecipano. Il numero di ruoli deve coincidere con il numero dei giocatori.
  2. Avviare il software con il comando python lupus-master.py e seguire le istruzioni da terminale.

lupus-master's People

Contributors

ncldlbn avatar

Watchers

 avatar

lupus-master's Issues

Descrizione ruoli

Aggiungere una descrizione dei ruoli alle classi nel file moduli.ruoli

Condizioni di vittoria

Ad ora le condizioni di vittoria vengono valutate da una funzione che viene eseguita alla fine di ogni giorno e ogni notte.
Sarebbe ottimo implementare le condizioni di vittoria come metodo delle classi Giocatori.
Poi nel main le condizioni possono essere verificate così:

def verifica_condizioni_vittoria(villaggio):
    for personaggio in villaggio.abitanti:
        if personaggio.status == 'Vivo':
            if personaggio.condizioni_vittoria(villaggio):
                return True
    return False

Nuovi ruoli

Mancano i seguenti ruoli:

  • Cavaliere cangiante: non puoi proteggere lo stesso personaggio per due notti di fila ma puoi proteggere te stesso.

  • Cartomante: Ha l’abilità di cambiare le carte e quindi i ruoli di due giocatori a sua scelta una volta in tutta la partita. I giocatori che subiranno il cambio di ruolo dovranno giocare a tutti gli effetti secondo il nuovo ruolo. Non può scegliere se stessa. Una volta usato il potere diventa un normale villico.
    Se indica almeno un lupo, i ruoli non saranno scambiati.
    Può includere nello scambio anche giocatori morti.
    Vince se vincono i villici.

  • Prostituta: Ogni notte sceglie un personaggio con cui andare a letto e perciò i lupi non possono sbranarla se la indicano. Se il personaggio con cui giace viene indicato dai lupi allora muore sia lui che la prostituta. Se invece si infili nella tana del lupo muore direttamente.
    Vince se vincono i villici.

Condizioni di vittoria - parità

In caso di parità tra due fazioni risulta vincitrice quella che viene gestita prima nella funzione funzioni.condizioni_vittoria.
Serve gestire singolarmente le condizioni di vittoria di ogni fazione ed evitare che una abbia priorità sull'altra.
Implementare la possibilità di vittoria con parità.

Timer

Implementare un timer per la discussione del giorno.
La durata del timer può essere definita nel file di setup.
Il timer può essere skippabile.

Adattamento testo al genere del personaggio

Le frasi che compaiono a terminale sono strettamente al maschile.

es. Elena è morto!

Cercare un modo per identificare automaticamente il genere dal nome e adattare il testo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.