Browse Source

serialeable

master
2 4 weeks ago
parent
commit
e2cc5dc3aa
  1. 27
      ClassLib000/Chess/ChessFileSerializer.cs
  2. 13
      ClassLib000/Chess/ChessGame.cs
  3. 11
      ClassLib000/Chess/Figure.cs
  4. 18
      ClassLib000/Chess/Player.cs
  5. 2
      ClassLib000/Chess/description.txt

27
ClassLib000/Chess/ChessFileSerializer.cs

@ -0,0 +1,27 @@
using System;
using System.Text;
namespace ClassLib000.Chess
{
class ChessFileSerializer
{
public static void ChessSaveToFile(string filename, ChessGame game)
{
string content = game.AsTextString();
System.IO.File.WriteAllText(filename, content, Encoding.UTF8);
}
public static ChessGame ChessLoadFromFile(string filename)
{
ChessGame game = new ChessGame();
string content = System.IO.File.ReadAllText(filename, Encoding.UTF8);
game.FromTextString(content);
return game;
}
private static string ChessDrawFigures(Player player)
{
return player.AsString();
}
}
}

13
ClassLib000/Chess/ChessGame.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Text;
namespace ClassLib000.Chess namespace ClassLib000.Chess
{ {
@ -29,6 +30,18 @@ namespace ClassLib000.Chess
BlackPlayer.Init(EColor.Black); BlackPlayer.Init(EColor.Black);
} }
public void FromTextString(string fileContent) {
// ...
}
public string AsTextString() {
StringBuilder fileStringBuilder = new StringBuilder();
fileStringBuilder.AppendLine(WhitePlayer.AsString());
fileStringBuilder.AppendLine(BlackPlayer.AsString());
return fileStringBuilder.ToString();
}
#endregion #endregion
} }
} }

11
ClassLib000/Chess/Figure.cs

@ -37,5 +37,16 @@
this.Y = y; this.Y = y;
} }
public string AsTextString()
{
int x = this.X;
int y = this.Y;
EColor figureColor = this.Color;
EFigureType ft = this.Type;
// TODO: .. Console.SetCursorPosition(posx, posy);
return $"{x};{y};{figureColor};{(int)ft}";
}
} }
} }

18
ClassLib000/Chess/Player.cs

@ -21,6 +21,24 @@ namespace ClassLib000.Chess
public Figure Ладья2; public Figure Ладья2;
public Figure Конь1; public Figure Конь1;
public void FromString(string fileContent) {
// ...
}
public string AsString() {
StringBuilder lineStringBuilder = new StringBuilder();
lineStringBuilder.AppendFormat("{0}|", Пешка1.AsTextString());
lineStringBuilder.AppendFormat("{0}|", Пешка2.AsTextString());
lineStringBuilder.AppendFormat("{0}|", Пешка3.AsTextString());
lineStringBuilder.AppendFormat("{0}|", Пешка4.AsTextString());
// ..
return lineStringBuilder.ToString();
}
public Figure[] GetBrokenFigures() public Figure[] GetBrokenFigures()
{ {
// TODO: // TODO:

2
ClassLib000/Chess/description.txt

@ -31,7 +31,7 @@
- отобразить время на таймерах - отобразить время на таймерах
- добавить ход: откуда, куда - добавить ход: откуда, куда
- убрать фигуру (срубить): где - убрать фигуру (срубить): где
- сформировать информацию о текущем состоянии доски
## Вариант 2 ## Вариант 2
Отображение шахматной доски Отображение шахматной доски

Loading…
Cancel
Save