Сохранение стостояния игры крестики-нолики - 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());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д