/// <summary> /// Fájl mentése. /// </summary> /// <param name="path">Elérési útvonal.</param> /// <param name="values">A mezőértékek.</param> public void Save(String path, TicTacToeDatas values) { if (path == null) { throw new ArgumentNullException("path"); } if (values == null) { throw new ArgumentNullException("values"); } try { using (StreamWriter writer = new StreamWriter(path)) // fájl megnyitása írásra { // a mezőket számmá, majd szöveggé konvertáljuk, végül aggregáljuk őket szóközökkel közrezárva //writer.Write(values.Select(value => ((Int32)value).ToString()).Aggregate((value1, value2) => value1 + " " + value2)); // ugyanez ciklussal: writer.Write(values.tableSize + " " + values.currentPlayer + " " + values.xTime + " " + values.oTime + " " + values.placed + " "); for (int i = 0; i < values.tableSize; i++) { for (int j = 0; j < values.tableSize; j++) { writer.Write(values.table[i, j] + " "); // kiírjuk a mezőket } } } } catch // ha bármi hiba történt { throw new Exception("Error occured during writing."); } }
/// <summary> /// Fájl betöltése. /// </summary> /// <param name="path">Elérési útvonal.</param> /// <returns>A beolvasott mezőértékek.</returns> public TicTacToeDatas Load(String path) { Debug.WriteLine("LOADDDDDDDDDDDDDD"); SaveDb loaded = _context.Saves.SingleOrDefault(p => p.SaveName == path); if (loaded != null) { TicTacToeDatas datas = new TicTacToeDatas(); datas.currentPlayer = loaded.CurrentPlayer; datas.oTime = loaded.OTime; datas.placed = loaded.Placed; string[] tableSplit = loaded.Table.Split(' '); datas.table = new int[loaded.TableSize, loaded.TableSize]; for (int i = 0; i < loaded.TableSize; i++) { for (int j = 0; j < loaded.TableSize; j++) { datas.table[i, j] = Convert.ToInt32(tableSplit[i * loaded.TableSize + j]); } } datas.tableSize = loaded.TableSize; datas.xTime = loaded.XTime; return(datas); } return(null); }
public bool LoadGame(String path) { if (_persistence == null) { return(false); } // végrehajtjuk a betöltést TicTacToeDatas values = _persistence.Load(path); //if (values.tableSize != _tableSize) // throw new Exception("Error occured during game loading."); GameLoaded?.Invoke(this, new GameLoadedEventArgs(values)); return(true); }
public bool SaveGame(String path) { if (_persistence == null) { return(false); } // az értékeket kimásoljuk egy új tömbbe TicTacToeDatas values = new TicTacToeDatas(); values.tableSize = _tableSize; values.currentPlayer = _currentPlayer; values.xTime = _xTime; values.oTime = _oTime; values.placed = _placed; values.table = _tableMatrix; // végrehajtjuk a mentést _persistence.Save(path, values); return(true); }
/// <summary> /// Fájl betöltése. /// </summary> /// <param name="path">Elérési útvonal.</param> /// <returns>A beolvasott mezőértékek.</returns> public TicTacToeDatas Load(String path) { if (path == null) { throw new ArgumentNullException("path"); } try { using (StreamReader reader = new StreamReader(path)) // fájl megnyitása olvasásra { String[] numbers = reader.ReadToEnd().Split(); // fájl tartalmának feldarabolása a whitespace karakterek mentén // a szöveget számmá, majd játékossá konvertáljuk, és ezzel a tömbbel visszatérünk //return numbers.Select(number => (Player)Int32.Parse(number)).ToArray(); // ugyanez ciklussal: TicTacToeDatas values = new TicTacToeDatas(); values.tableSize = Convert.ToInt32(numbers[0]); values.currentPlayer = Convert.ToInt32(numbers[1]); values.xTime = Convert.ToInt32(numbers[2]); values.oTime = Convert.ToInt32(numbers[3]); values.placed = Convert.ToInt32(numbers[4]); values.table = new int[values.tableSize, values.tableSize]; Debug.WriteLine(numbers.Length); for (int i = 5; i < numbers.Length - 1; i++) { values.table[(i - 5) / values.tableSize, (i - 5) % values.tableSize] = Convert.ToInt32(numbers[i]); } return(values); } // bezárul a fájl } catch // ha bármi hiba történt { throw new Exception("Error occured during reading."); } }
/// <summary> /// Fájl mentése. /// </summary> /// <param name="path">Elérési útvonal.</param> /// <param name="values">A mezőértékek.</param> public void Save(String name, TicTacToeDatas values) { SaveDb toSave = new SaveDb(); toSave.SaveName = name; toSave.CurrentPlayer = values.currentPlayer; toSave.OTime = values.oTime; toSave.XTime = values.xTime; toSave.Placed = values.placed; toSave.TableSize = values.tableSize; StringBuilder myTable = new StringBuilder(); for (int i = 0; i < values.tableSize; ++i) { for (int j = 0; j < values.tableSize; ++j) { myTable.Append(values.table[i, j] + " "); } } toSave.Table = myTable.ToString(); Debug.WriteLine("works"); _context.Saves.Add(toSave); _context.SaveChanges(); }
public GameLoadedEventArgs(TicTacToeDatas data) { datas = data; }