More refactoring (mainly LINQ)

This commit is contained in:
Flamefire committed 2013-04-24 00:41:08 +02:00
1 parent 181490fa87
commit b1e28ae7bc
43 files changed
+488 -662

No files matched your search

@@ -19,6 +19,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace VocaluxeLib.PartyModes.ChallengeMedley
{
@@ -27,7 +28,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
private readonly Random _Rand;
private readonly int _NumPlayer;
public List<CCombination> Rounds;
public readonly List<CCombination> Rounds;
public CChallengeRounds(int numRounds, int numPlayer, int numPlayerAtOnce)
{
@@ -72,12 +73,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
numPlayed[playerIndex]++;
}
int max = 0;
foreach (int p in numPlayed)
{
if (p > max)
max = p;
}
int max = numPlayed.Max();
int num = Rounds[0].Player.Count;
List<int> result = new List<int>();
@@ -162,28 +158,19 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
List<CCombination> combsFiltered = new List<CCombination>();
if (playerNrDemand != null)
{
for (int i = 0; i < _Combs.Count; i++)
{
if (_Combs[i].IsAvailableAll(playerNrDemand))
combsFiltered.Add(_Combs[i]);
}
combsFiltered.AddRange(_Combs.Where(t => t.IsAvailableAll(playerNrDemand)));
}
//1st fallback
if (playerNrDemand != null && combsFiltered.Count == 0)
{
for (int i = 0; i < _Combs.Count; i++)
{
if (_Combs[i].IsAvailableSomeone(playerNrDemand))
combsFiltered.Add(_Combs[i]);
}
combsFiltered.AddRange(_Combs.Where(t => t.IsAvailableSomeone(playerNrDemand)));
}
//2nd fallback
if (combsFiltered.Count == 0)
{
for (int i = 0; i < _Combs.Count; i++)
combsFiltered.Add(_Combs[i]);
combsFiltered.AddRange(_Combs);
}
int num = combsFiltered.Count;
@@ -220,7 +207,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
public class CCombination
{
public List<int> Player;
public readonly List<int> Player;
public CCombination()
{
@@ -229,28 +216,17 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
public bool IsAvailable(int playerIndex)
{
foreach (int p in Player)
{
if (p == playerIndex)
return true;
}
return false;
return Player.Any(p => p == playerIndex);
}
public bool IsAvailableAll(IEnumerable<int> playerIndices)
{
bool result = true;
foreach (int p in playerIndices)
result &= IsAvailable(p);
return result;
return playerIndices.All(IsAvailable);
}
public bool IsAvailableSomeone(IEnumerable<int> playerIndices)
{
bool result = false;
foreach (int p in playerIndices)
result |= IsAvailable(p);
return result;
return playerIndices.Any(IsAvailable);
}
}
}