示例#1
0
        private void LoadGame(string path)
        {
            using var stream = File.OpenRead(path);
            var buffer = new byte[stream.Length];

            stream.Read(buffer);
            NewGame(TaikyokuShogi.Deserlialize(buffer));
        }
示例#2
0
        public MainWindow()
        {
            InitializeComponent();

#if !DEBUG
            debugModeMenuItem.IsEnabled = false;
#endif

            MouseMove += ShowPieceInfo;
            Closed    += OnClose;

            corners.Add(borderTopLeft);
            corners.Add(borderTopRight);
            corners.Add(borderBottomLeft);
            corners.Add(borderBottomRight);

            borders.Add(borderTop);
            borders.Add(borderBottom);
            borders.Add(borderLeft);
            borders.Add(borderRight);

            foreach (var pieceId in (Enum.GetValues(typeof(PieceIdentity)) as PieceIdentity[]).OrderBy(piece => piece.Name()))
            {
                var blackMenuItem = new MenuItem()
                {
                    Header = pieceId.Name()
                };
                var whiteMenuItem = new MenuItem()
                {
                    Header = pieceId.Name()
                };

                pieceMenuItems.Add(blackMenuItem, new Piece(Player.Black, pieceId));
                addBlackPieceMenuItem.Items.Add(blackMenuItem);
                pieceMenuItems.Add(whiteMenuItem, new Piece(Player.White, pieceId));
                addWhitePieceMenuItem.Items.Add(whiteMenuItem);
            }

            TaikyokuShogi savedGame = null;

            try
            {
                savedGame = TaikyokuShogi.Deserlialize(Properties.Settings.Default.SavedGame);
            }
            catch (System.Text.Json.JsonException)
            {
                // silently ignore failure to parse the game
            }

            NewGame(savedGame);
        }