2020年8月28日金曜日

VISUAL STUDIO ついに助けを借りる 間違いボール探しゲーム

本に沿って進めていましたが、ダメ。
コードを書き込んでいくところで、理解できなくなりました。
https://www.shuwasystem.co.jp/book/9784798058986.html
サンプルファイルを手に入れることにしました。
https://www.shuwasystem.co.jp/support/7980html/5898.html
「間違いボール探し」までの解説が大変丁寧だったのですが、この部分から解説が中途半端というか、この先は自分で考えてということなのか、飛躍しています。
サンプルファイルを見ないことには理解できません。
この本で挫折するのは、おそらくこのあたりからだと思います。

まず、292ページの表5-30と290ページの表5-29が同じでした。292ページの表5-30はSplitContainerコントロールのプロパティの設定のはずなのです。292ページの表5-30の下に画面の図があり、これでなんとか理解できます。

PictureBOxに円を描くところでは、1つの円を描く例が示されています。しかし、本来のコードは、5つの円を描くことになっていて5つ描くプログラムは、
--------------------------------------
 // 上のselectPictureBoxに円を描く
        private void DrawCircleSelectPictureBox()
        {
            int height = selectPictureBox.Height; // 高さ
            int width = selectPictureBox.Width; // 幅
            Bitmap selectCanvas = new Bitmap(width, height);
            using (Graphics g = Graphics.FromImage(selectCanvas))
            {
                for (int i = 0; i < ballCount; i++)
                {
                    g.FillEllipse(brushes[i], i * height, 0, height, height);
                }
                selectPictureBox.Image = selectCanvas;
            }
        }
----------------------------------
324ページです。
下の部分に画像を表示するプログラムは、
----------------------------------
 // 下のPictureBoxに描画する
        private void DrawMainPictureBox(Brush color, string text, bool trueFlag)
        {
            int height = mainPictureBox.Height; // 高さ
            int width = mainPictureBox.Width; // 幅
                                              //描画先とするImageオブジェクトを作成する
            if (canvas == null)
            {
                canvas = new Bitmap(width, height);
            }
            using (Graphics g = Graphics.FromImage(canvas))
            {
                // 正解用の背景色にする
                if (trueFlag)
                {
                    g.FillRectangle(Brushes.LightPink, 0, 0, width, height);
                }
                else
                {
                    g.FillRectangle(Brushes.White, 0, 0, width, height);
                }
                //背景に引数で指定した文字列を描画する
                g.DrawString(text,
                new Font(fontName, height - height / 4),
                color, 0, 0, new StringFormat());
                //MainPictureBoxに表示する
                mainPictureBox.Image = canvas;
            }
------------------------------------
325ページです。
つまり、305ページまでは解説です。まだ時間がかかります。


からない。しばらくながめてみます。

0 件のコメント:

コメントを投稿