Пример #1
0
        /// <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.");
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        /// <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.");
            }
        }
Пример #6
0
        /// <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();
        }
Пример #7
0
 public GameLoadedEventArgs(TicTacToeDatas data)
 {
     datas = data;
 }