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); }