/// <summary> /// Prepara la partida per començar /// </summary> public void PartidaNova() { int[] aux = null; for (int i = 0; i < subministraments.Count; i++) { if (subministraments.GetKey(i) != nameof(Jardins)) { subministraments.SetValueAt(i, 10); } else { subministraments[nameof(Jardins)] = Jugadors.Length > 2 ? 12 : 8; } } subministraments[nameof(Malediccio)] = Jugadors.Length == 2 ? 10 : Jugadors.Length == 3 ? 20 : 30; subministraments[nameof(Provincia)] = Jugadors.Length > 2 ? 12 : 8; subministraments[nameof(Ducat)] = Jugadors.Length > 2 ? 12 : 8; subministraments[nameof(Finca)] = Jugadors.Length > 2 ? 12 : 8; subministraments[nameof(Or)] = 30; subministraments[nameof(Plata)] = 40; subministraments[nameof(Coure)] = 60; for (int i = 0; i < Jugadors.Length; i++) { Jugadors[i].Reset(); jugadorActual = i; for (int j = 0; j < 7; j++) { AgafaCarta(typeof(Coure)); } for (int j = 0; j < 3; j++) { AgafaCarta(typeof(Finca)); } } Eliminades.Clear(); Jugada.Clear(); DinersExtra = 0; if (guanyadorsPartidaAnterior.Count == 0 || guanyadorsPartidaAnterior.Count == Jugadors.Length) { jugadorActual = MiRandom.Next(Jugadors.Length); } else if (guanyadorsPartidaAnterior.Count == 1) { jugadorActual = guanyadorsPartidaAnterior[0]; AvançaJugador(); } else if (guanyadorsPartidaAnterior.Count == 3 && Jugadors.Length == 4) { jugadorActual = QuatreJugadors.Except(guanyadorsPartidaAnterior).First(); } else { if (Jugadors.Length == 4) { aux = QuatreJugadors; } else if (Jugadors.Length == 3) { aux = TresJugadors; } aux = aux.Except(guanyadorsPartidaAnterior).ToArray(); aux.Desordena(); jugadorActual = aux[0]; } }