public async Task <MinesweeperTable> LoadAsync(string path) { using (StreamReader reader = new StreamReader(path)) // fájl megnyitása { String line = await reader.ReadLineAsync(); MinesweeperTable table = new MinesweeperTable(Int32.Parse(line)); line = await reader.ReadLineAsync(); Enum.TryParse(line, out Player player); table.CurrPlayer = player; for (Int32 i = 0; i < table.Size; i++) { for (Int32 j = 0; j < table.Size; j++) { line = await reader.ReadLineAsync(); String[] split; split = line.Split(' '); table.Map[i, j].value = Int32.Parse(split[0]); Enum.TryParse(split[1], out FieldType fieldType); table.Map[i, j].fieldType = fieldType; table.Map[i, j].visible = Boolean.Parse(split[2]); } } return(table); } }
public async Task SaveAsync(string path, MinesweeperTable gameTable) { using (StreamWriter writer = new StreamWriter(path)) // fájl megnyitása { await writer.WriteLineAsync(gameTable.Size.ToString()); await writer.WriteLineAsync(gameTable.CurrPlayer.ToString()); for (Int32 i = 0; i < gameTable.Size; i++) { for (Int32 j = 0; j < gameTable.Size; j++) { await writer.WriteLineAsync(gameTable.Map[i, j].value.ToString() + " " + gameTable.Map[i, j].fieldType.ToString() + " " + gameTable.Map[i, j].visible.ToString()); } } } }
public async Task <MinesweeperTable> LoadAsync(string path) { GameDb game = await _context.Games .Include(g => g.Fields) .SingleAsync(g => g.Name == path); // játék állapot lekérdezése MinesweeperTable table = new MinesweeperTable(game.MapSize); // játéktábla modell létrehozása table.CurrPlayer = game.Player; table.Size = game.MapSize; foreach (FieldDb field in game.Fields) // mentett mezők feldolgozása { table.Map[field.X, field.Y].fieldType = field.FieldType; table.Map[field.X, field.Y].value = field.Value; table.Map[field.X, field.Y].visible = field.Visibility; } return(table); }
public async Task SaveAsync(string path, MinesweeperTable gameTable) { // játékmentés keresése azonos névvel GameDb overwriteGame = await _context.Games .Include(g => g.Fields) .SingleOrDefaultAsync(g => g.Name == path); if (overwriteGame != null) { _context.Games.Remove(overwriteGame); // törlés } GameDb dbGame = new GameDb { Name = path, MapSize = gameTable.Size, Player = gameTable.CurrPlayer }; // új mentés létrehozása for (Int32 i = 0; i < gameTable.Size; i++) { for (Int32 j = 0; j < gameTable.Size; j++) { FieldDb field = new FieldDb { X = i, Y = j, Value = gameTable.Map[i, j].value, Visibility = gameTable.Map[i, j].visible, FieldType = gameTable.Map[i, j].fieldType }; dbGame.Fields.Add(field); } } // mezők mentése _context.Games.Add(dbGame); // mentés hozzáadása a perzisztálandó objektumokhoz await _context.SaveChangesAsync(); // mentés az adatbázisba }