Сохранение стостояния игры крестики-нолики - 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());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы