Сохранение стостояния игры крестики-нолики - C#
Формулировка задачи:
Привет, если я правильно понял, Сериализация это сохранения? Вот играл я в крестики нолики и захотел выйти посреди игры, нужно сохранить, на помощь приходить сериализация? А вот как с ней работать не пойму, вот текст крестков ноликов(писал сам, мб где-то глупости, сильно не бейте) как внедрить её в программу?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization.Formatters.Binary;
namespace XandO
{
[Serializable]
class Program
{
static void Main(string[] args)
{
int pr = 0;
string pr0 = "0"; int p0 = 0; int x0 = 0; int y0 = 0;
string pr1 = "1"; int p1 = 0; int x1 = 0; int y1 = 0;
string pr2 = "2"; int p2 = 0; int x2 = 0; int y2 = 0;
string pr3 = "3"; int p3 = 0; int x3 = 0; int y3 = 0;
string pr4 = "4"; int p4 = 0; int x4 = 0; int y4 = 0;
string pr5 = "5"; int p5 = 0; int x5 = 0; int y5 = 0;
string pr6 = "6"; int p6 = 0; int x6 = 0; int y6 = 0;
string pr7 = "7"; int p7 = 0; int x7 = 0; int y7 = 0;
string pr8 = "8"; int p8 = 0; int x8 = 0; int y8 = 0;
double XorO = 0;
do
{
if ((x0 == 1 && x1 == 1 && x2 == 1) || (x3 ==1 && x4 == 1 && x5 == 1) || (x6 ==1 && x7 == 1 && x8 == 1) || (x0 == 1 && x4 == 1 && x8 ==1 ) || (x2 == 1 && x4 == 1 && x6 ==1))
{
Console.WriteLine("Победил игрок X");
pr++; break;
}
if ((y0 == 1 && y1 == 1 && y2 == 1) || (y3 == 1 && y4 == 1 && y5 == 1) || (y6 == 1 && y7 == 1 && y8 == 1) || (y0 == 1 && y4 == 1 && y8 == 1) || (y2 == 1 && y4 == 1 && y6 == 1))
{
Console.WriteLine("Победил игрок Y");
pr++; break;
}
if ((x0 == 1 || y0 == 1) && (x1 == 1 || y1 == 1) && (x2 == 1 || y2 == 1) && (x3 == 1 || y3 == 1) && (x4 == 1 || y4 == 1) && (x5 == 1 || y5 == 1) && (x6 == 1 || y6 == 1) && (x7 == 1 || y7 == 1) && (x8 == 1 || y8 == 1))
{
Console.WriteLine("Вот это поворот, ничья:D");
pr++; break;
}
Console.WriteLine(" " + pr0 + " | " + pr1 + " | " + pr2 + " ");
Console.WriteLine("--------------------");
Console.WriteLine(" " + pr3 + " | " + pr4 + " | " + pr5 + " ");
Console.WriteLine("--------------------");
Console.WriteLine(" " + pr6 + " | " + pr7 + " | " + pr8 + " ");
string M = Console.ReadLine();
Console.Clear();
switch (M)
{
case "0": if (p0 == 0)
{
if (XorO % 2 == 0) { pr0 = "X"; XorO++; x0++; }
else { pr0 = "Y"; XorO++; y0++; };
p0++;
} else{Console.WriteLine("Ты уже нажимал 0");}; break;
case "1": if (p1 == 0)
{
if (XorO % 2 == 0) { pr1 = "X"; XorO++; x1++; }
else { pr1 = "Y"; XorO++; y1++; };
p1++;
} else{Console.WriteLine("Ты уже нажимал 1");};break;
case "2": if (p2 == 0)
{
if (XorO % 2 == 0) { pr2 = "X"; XorO++; x2++; }
else { pr2 = "Y"; XorO++; y2++; };
p2++;
}else{Console.WriteLine("Ты уже нажимал 2");};break;
case "3": if (p3 == 0)
{
if (XorO % 2 == 0) { pr3 = "X"; XorO++; x3++; }
else { pr3 = "Y"; XorO++; y3++; };
p3++;
}else{Console.WriteLine("Ты уже нажимал 3");};break;
case "4": if (p4 == 0)
{
if (XorO % 2 == 0) { pr4 = "X"; XorO++; x4++; }
else { pr4 = "Y"; XorO++; y4++; };
p4++;
}else{Console.WriteLine("Ты уже нажимал 4");};break;
case "5": if (p5 == 0)
{
if (XorO % 2 == 0) { pr5 = "X"; XorO++; x5++; }
else { pr5 = "Y"; XorO++; y5++; };
p5++;
}else{Console.WriteLine("Ты уже нажимал 5");};break;
case "6": if (p6 == 0)
{
if (XorO % 2 == 0) { pr6 = "X"; XorO++; x6++; }
else { pr6 = "Y"; XorO++; y6++; };
p6++;
}else{Console.WriteLine("Ты уже нажимал 6");};break;
case "7": if (p7 == 0)
{
if (XorO % 2 == 0) { pr7 = "X"; XorO++; x7++; }
else { pr7 = "Y"; XorO++; y7++; };
p7++;
}else{Console.WriteLine("Ты уже нажимал 7");};break;
case "8": if (p8 == 0)
{
if (XorO % 2 == 0) { pr8 = "X"; XorO++; x8++; }
else { pr8 = "Y"; XorO++; y8++; };
p8++;
}else{Console.WriteLine("Ты уже нажимал 8");};break;
case "9": Console.WriteLine("До свидания! "); pr++; break;
default: Console.WriteLine("Нет такого номера поля! "); ; break;
}
} while (pr == 0);
}
}
}Решение задачи: «Сохранение стостояния игры крестики-нолики»
textual
Листинг программы
System.IO.StreamReader sr = new System.IO.StreamReader(Application.StartupPath + "\\saveFileXO.sv");
for (int i = 0; i < mas.Length; i++)
{
mas[i] = sr.ReadLine();
}
howStep = Convert.ToBoolean(sr.ReadLine());