Пример #1
0
        public void UsiNewGame()
        {
            //------------------------------------------------------------
            // 対局時計が ポチッ とされました
            //------------------------------------------------------------
            //
            // 図.
            //
            //      log.txt
            //      ┌────────────────────────────────────────
            //      ~
            //      │2014/08/02 2:03:33> usinewgame
            //      │
            //
            //
            // 対局が始まったときに送られてくる文字が usinewgame です。

            this.Game = new Game();

            Debug.Assert(!Util_MasuNum.OnKomabukuro(
                             Util_Masu.AsMasuNumber(((RO_Star_Koma)this.Game.Kifu.CurNode.Value.ToKyokumenConst.StarlightIndexOf((Finger)0).Now).Masu)
                             ), "駒が駒袋にあった。");

            this.shogisasi.OnTaikyokuKaisi();//対局開始時の処理。
        }
Пример #2
0
        /// <summary>
        /// v(^▽^)v超能力『メナス』だぜ☆ 未来の脅威を予測し、可視化するぜ☆www
        /// </summary>
        public static void Menace(NarabeRoomViewModel shogiGui)
        {
            if (0 < shogiGui.GameViewModel.GuiTesumi)
            {
                // 処理の順序が悪く、初回はうまく判定できない。
                SkyConst src_Sky = shogiGui.GameViewModel.GuiSkyConst;


                //----------
                // 将棋盤上の駒
                //----------
                shogiGui.ResponseData.ToRedraw();

                // [クリアー]
                shogiGui.Shape_PnlTaikyoku.Shogiban.ClearHMasu_KikiKomaList();

                // 全駒
                foreach (Finger figKoma in Finger_Honshogi.Items_KomaOnly)
                {
                    RO_Star_Koma koma = Util_Koma.AsKoma(src_Sky.StarlightIndexOf(figKoma).Now);


                    if (
                        Okiba.ShogiBan == Util_Masu.Masu_ToOkiba(koma.Masu)
                        &&
                        shogiGui.GameViewModel.GuiPside != koma.Pside
                        )
                    {
                        // 駒の利き
                        SySet <SyElement> kikiZukei = Util_Sky.KomaKidou_Potential(figKoma, src_Sky);

                        IEnumerable <SyElement> kikiMasuList = kikiZukei.Elements;
                        foreach (SyElement masu in kikiMasuList)
                        {
                            // その枡に利いている駒のハンドルを追加
                            if (Masu_Honshogi.Error != masu)
                            {
                                shogiGui.Shape_PnlTaikyoku.Shogiban.HMasu_KikiKomaList[Util_Masu.AsMasuNumber(masu)].Add((int)figKoma);
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// ************************************************************************************************************************
        /// 升ボタンの描画はここに書きます。
        /// ************************************************************************************************************************
        /// </summary>
        /// <param name="g1"></param>
        public void Paint(Graphics g1)//, bool kiki, int kikiSu
        {
            if (!this.Visible)
            {
                goto gt_EndMethod;
            }

            //----------
            // 背景
            //----------
            if (this.Select)
            {
                g1.FillRectangle(Brushes.Brown, this.Bounds);
            }
            else if (this.Kiki)
            {
                g1.FillRectangle(Brushes.YellowGreen, this.Bounds);
            }
            else if (0 < this.KikiSu)
            {
                int level = (this.KikiSu - 1) * 40;
                if (120 < level)
                {
                    level = 120;
                }
                //g1.FillRectangle(new SolidBrush(Color.FromArgb(255, 255 - 30 - level, 255 - 10 - level, 255 - 10 - level)), this.Bounds);
                g1.FillRectangle(new SolidBrush(Color.FromArgb(64, 255 - 30 - level, 255 - 10 - level, 255 - 10 - level)), this.Bounds);
            }
            else if (this.Light)
            {
            }

            //----------
            // 升番号
            //----------
            {
                string text = Util_Masu.AsMasuNumber(this.Zahyo).ToString();

                float fontHeight = 13.0f;
                Font  font       = new Font("MS ゴシック", fontHeight, FontStyle.Regular);
                SizeF sizeF      = g1.MeasureString(text, font);

                //int x = this.Bounds.X + this.Bounds.Width / 2;
                int x = this.Bounds.X + this.Bounds.Width / 2 - (int)(sizeF.Width / 2);
                //int y = this.Bounds.Y + this.Bounds.Height / 2 - (int)(fontHeight/2);
                int y = this.Bounds.Y + this.Bounds.Height / 2 - (int)(sizeF.Height / 2);



                g1.DrawString(text, font, Brushes.BurlyWood, x + 1, y + 1); //影
                g1.DrawString(text, font, Brushes.Beige, x, y);             //色
            }

            //----------
            // 枠線
            //----------
            {
                if (this.Light)
                {
                    g1.DrawRectangle(Pens.Yellow, this.Bounds);
                }
            }

gt_EndMethod:
            ;
        }