/// <summary> /// Метод проверяет окончена ли игра /// Method checks whethe game is over /// </summary> /// <returns>True если игра окончена/Returns true if game is over</returns> public bool IsGameEnded() { var predecates = GameoverPredicate.GetInvocationList(); bool result = false; foreach (var p in predecates) { if (((GameLogicsAttributes.GameoverPredicate)p)()) { result = true; } } if (result) { SnakesTable snakesTable = new SnakesTable(); PlayerTable playerTable = new PlayerTable(); foreach (var s in SnakesForLogic.Snakes) { snakesTable.UpdateStatistics(s); if (s.SnakeName.Contains("Player")) { playerTable.AddNewRow(s.SnakeName, GameType, s.Statistics.EatenFood); } } } return(result); }
public void ClearData() { if (table == null) { table = new SnakesTable(); } table.ClearTable(); // Reload scene SceneManager.LoadScene(5); }
private void Start() { IsOrderByDescending = false; table = new SnakesTable(); AssemblySnakeFactory snakeFactory = new AssemblySnakeFactory(); SnakeNames = snakeFactory.GetAllSnakeTypes(); Rows = new List <SnakeStatisticsForTable>(); RowPrefab.SetActive(false); OrderBy = Columns.StepsPerFood; Sort(); UpdateTable(); }
private void UpdateTable() { foreach (var name in SnakeNames) { if (table == null) { table = new SnakesTable(); } if (!table.IsExistInTable(name)) { continue; } Rows.Add(table.GetStatisticsBySnake(name)); } Sort(); ShowStatistics(); }