public void Initialize(string folder, int times) { _players.Clear(); _folder = folder; _times = times; if (Directory.Exists(_folder)) { string[] files = Directory.GetFiles(_folder); if (files != null) { for (int i = 0; i < files.Length; i++) { string file = files[i]; DNAPlayer player = Utility.CreateDNAPlayer(file); _players.Add(player); } } } if (_players.Count > 1) { if (_performance != null) { if (_performance.Length != _players.Count && _performance[0].Length != _players.Count) { _performance = new LeagueResult[_players.Count][]; for (int i = 0; i < _players.Count; i++) { _performance[i] = new LeagueResult[_players.Count]; for (int j = 0; j < _players.Count; j++) { _performance[i][j] = new LeagueResult(0, 0, 0); } } } else { for (int i = 0; i < _players.Count; i++) { for (int j = 0; j < _players.Count; j++) { _performance[i][j] = new LeagueResult(0, 0, 0); } } } } else { _performance = new LeagueResult[_players.Count][]; for (int i = 0; i < _players.Count; i++) { _performance[i] = new LeagueResult[_players.Count]; for (int j = 0; j < _players.Count; j++) { _performance[i][j] = new LeagueResult(0, 0, 0); } } } } }
public bool Finish(棋子 side) { LeagueResult result = RecordPerformance(side); if (result.Win + result.Lose + result.Equal < _times) { return(true); } else if (_queue.Count > 0) { _pair = _queue.Dequeue(); return(true); } else { return(false); } }
private LeagueResult RecordPerformance(棋子 side) { LeagueResult result = _performance[_pair.Key][_pair.Value]; switch (side) { case 棋子.无: result.Equal++; break; case 棋子.白子: result.Lose++; break; case 棋子.黑子: result.Win++; break; } _performance[_pair.Key][_pair.Value] = result; return(result); }