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