Сохранение стостояния игры крестики-нолики - C#

Узнай цену своей работы

Формулировка задачи:

Привет, если я правильно понял, Сериализация это сохранения? Вот играл я в крестики нолики и захотел выйти посреди игры, нужно сохранить, на помощь приходить сериализация? А вот как с ней работать не пойму, вот текст крестков ноликов(писал сам, мб где-то глупости, сильно не бейте) как внедрить её в программу?
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Runtime.Serialization.Formatters.Binary;
  7.  
  8. namespace XandO
  9. {
  10. [Serializable]
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. int pr = 0;
  16. string pr0 = "0"; int p0 = 0; int x0 = 0; int y0 = 0;
  17. string pr1 = "1"; int p1 = 0; int x1 = 0; int y1 = 0;
  18. string pr2 = "2"; int p2 = 0; int x2 = 0; int y2 = 0;
  19. string pr3 = "3"; int p3 = 0; int x3 = 0; int y3 = 0;
  20. string pr4 = "4"; int p4 = 0; int x4 = 0; int y4 = 0;
  21. string pr5 = "5"; int p5 = 0; int x5 = 0; int y5 = 0;
  22. string pr6 = "6"; int p6 = 0; int x6 = 0; int y6 = 0;
  23. string pr7 = "7"; int p7 = 0; int x7 = 0; int y7 = 0;
  24. string pr8 = "8"; int p8 = 0; int x8 = 0; int y8 = 0;
  25. double XorO = 0;
  26. do
  27. {
  28. 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))
  29. {
  30. Console.WriteLine("Победил игрок X");
  31. pr++; break;
  32. }
  33. 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))
  34. {
  35. Console.WriteLine("Победил игрок Y");
  36. pr++; break;
  37. }
  38. 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))
  39. {
  40. Console.WriteLine("Вот это поворот, ничья:D");
  41. pr++; break;
  42. }
  43. Console.WriteLine(" " + pr0 + " | " + pr1 + " | " + pr2 + " ");
  44. Console.WriteLine("--------------------");
  45. Console.WriteLine(" " + pr3 + " | " + pr4 + " | " + pr5 + " ");
  46. Console.WriteLine("--------------------");
  47. Console.WriteLine(" " + pr6 + " | " + pr7 + " | " + pr8 + " ");
  48. string M = Console.ReadLine();
  49. Console.Clear();
  50. switch (M)
  51. {
  52. case "0": if (p0 == 0)
  53. {
  54. if (XorO % 2 == 0) { pr0 = "X"; XorO++; x0++; }
  55. else { pr0 = "Y"; XorO++; y0++; };
  56. p0++;
  57. } else{Console.WriteLine("Ты уже нажимал 0");}; break;
  58. case "1": if (p1 == 0)
  59. {
  60. if (XorO % 2 == 0) { pr1 = "X"; XorO++; x1++; }
  61. else { pr1 = "Y"; XorO++; y1++; };
  62. p1++;
  63. } else{Console.WriteLine("Ты уже нажимал 1");};break;
  64. case "2": if (p2 == 0)
  65. {
  66. if (XorO % 2 == 0) { pr2 = "X"; XorO++; x2++; }
  67. else { pr2 = "Y"; XorO++; y2++; };
  68. p2++;
  69. }else{Console.WriteLine("Ты уже нажимал 2");};break;
  70. case "3": if (p3 == 0)
  71. {
  72. if (XorO % 2 == 0) { pr3 = "X"; XorO++; x3++; }
  73. else { pr3 = "Y"; XorO++; y3++; };
  74. p3++;
  75. }else{Console.WriteLine("Ты уже нажимал 3");};break;
  76. case "4": if (p4 == 0)
  77. {
  78. if (XorO % 2 == 0) { pr4 = "X"; XorO++; x4++; }
  79. else { pr4 = "Y"; XorO++; y4++; };
  80. p4++;
  81. }else{Console.WriteLine("Ты уже нажимал 4");};break;
  82. case "5": if (p5 == 0)
  83. {
  84. if (XorO % 2 == 0) { pr5 = "X"; XorO++; x5++; }
  85. else { pr5 = "Y"; XorO++; y5++; };
  86. p5++;
  87. }else{Console.WriteLine("Ты уже нажимал 5");};break;
  88. case "6": if (p6 == 0)
  89. {
  90. if (XorO % 2 == 0) { pr6 = "X"; XorO++; x6++; }
  91. else { pr6 = "Y"; XorO++; y6++; };
  92. p6++;
  93. }else{Console.WriteLine("Ты уже нажимал 6");};break;
  94. case "7": if (p7 == 0)
  95. {
  96. if (XorO % 2 == 0) { pr7 = "X"; XorO++; x7++; }
  97. else { pr7 = "Y"; XorO++; y7++; };
  98. p7++;
  99. }else{Console.WriteLine("Ты уже нажимал 7");};break;
  100. case "8": if (p8 == 0)
  101. {
  102. if (XorO % 2 == 0) { pr8 = "X"; XorO++; x8++; }
  103. else { pr8 = "Y"; XorO++; y8++; };
  104. p8++;
  105. }else{Console.WriteLine("Ты уже нажимал 8");};break;
  106. case "9": Console.WriteLine("До свидания! "); pr++; break;
  107. default: Console.WriteLine("Нет такого номера поля! "); ; break;
  108. }
  109. } while (pr == 0);
  110. }
  111. }
  112. }

Решение задачи: «Сохранение стостояния игры крестики-нолики»

textual
Листинг программы
  1. System.IO.StreamReader sr = new System.IO.StreamReader(Application.StartupPath + "\\saveFileXO.sv");
  2. for (int i = 0; i < mas.Length; i++)
  3. {
  4.     mas[i] = sr.ReadLine();
  5. }
  6. howStep = Convert.ToBoolean(sr.ReadLine());

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


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

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

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы