Exemplo n.º 1
0
        public SituazionePartita AggiungiPartecipante(IRobot robot)
        {
            if (statoPartita != StatiPartita.PartitaDaIniziare)
            {
                throw new InvalidOperationException("Si possono aggiungere partecipanti solo prima dell'inizio della partita");
            }

            var posizione         = GeneraPosizioneCasuale(robotPartecipanti.Values.Select(p => p.Posizione));
            var denominazione     = robot.DenominazioneConTimeout(opzioni.TimeoutDenominazione);
            var situazionePartita = new SituazionePartita(denominazione, posizione);

            robotPartecipanti.Add(robot, situazionePartita);
            return(situazionePartita);
        }