C# おみくじソフトをプログラミングしてみた

C#ソフトウェアプログラミング

こんな感じです。

クリックすると、くじ開きます。

開いたくじは消えます。リセットボタンを押すと10枚のくじ全てが閉じた状態に戻ります。

実行①

実行②

プログラミング

言語:C#


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace omikuji
{
    ///
    /// おみくじ画面
    /// 
    public partial class FrmOmikuji : Form
    {
        ///
        /// くじ割り当て用リスト
        /// 
        private List kujiList = new List();

        ///
        /// くじの最大数
        /// 
        private const int KUJI_MAX = 10;

        ///
        /// 起動時処理
        ///
        private void FrmOmikuji_Load(object sender, EventArgs e)
        {
            // 運勢を初期化する
            this.InitLuckAssign();
        }

        ///
        /// 運勢初期化処理
        /// 
        private void InitLuckAssign()
        {
            // くじ割り当て用リストをクリアする
            kujiList.Clear();

            // リストに1~10の運勢値をセット
            for (int i = 1; i <= KUJI_MAX; i++)
            {
                kujiList.Add(i);
            }

            // くじボタン
            for (int i = 1; i <= KUJI_MAX; i++)
            {
                string s = ("btnKuji_" + i.ToString("00"));
                Control btnKuji = ((Button)(this.Panel1.Controls[s]));

                // くじボタンを表示する
                btnKuji.Visible = true;

                // 運勢値を割り当てる
                btnKuji.Tag = this.LuckAssign();
            }

        }

        ///
        /// 運勢割り当て処理
        /// 
        private int LuckAssign()
        {
            // 乱数クラスの宣言
            System.Random ran = new System.Random();

            // INDEXを求める(0~リスト数の乱数を取得する)   
            int idx = ran.Next(0, (kujiList.Count - 1));

            // INDEX指定でリストから値を取得する
            int val = kujiList[idx];

            // INDEX指定でリストから要素を削除する
            kujiList.RemoveAt(idx);

            // 割り当てられた運勢値を返却する
            return val;
        }

        ///
        /// コンストラクタ
        /// 
        public FrmOmikuji()
        {
            InitializeComponent();
        }

        ///
        /// くじ(01~10)ボタンクリック時処理
        ///
        private void BtnKuji_Click(object sender, EventArgs e)
        {
            // クリックされたくじを非表示にする
            Button BtnKuji = ((Button)(sender));
            BtnKuji.Visible = false;

            // 終了ボタンクリック時処理
            string s = "";
            switch (BtnKuji.Tag)
            {
                case 1:
                    s = "大吉";
                    break;
                case 2:case 3:case 4: case 5:
                    s = "吉";
                    break;
                case 6:case 7:
                    s = "中吉";
                    break;
                case 8:case 9:
                    s = "小吉";
                    break;
                case 10:
                    s = "凶";
                    break;
            }

            // 運勢を表示する
            MessageBox.Show("あなたの運勢は【 " + s + " 】です。", "運勢");
        }

        ///
        /// 終了ボタンクリック時処理
        ///
        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        ///
        /// リセットボタンクリック時処理
        /// 
        private void btnReset_Click(object sender, EventArgs e)
        {
            // 運勢を初期化する
            InitLuckAssign();
        }
    }
}

ソース一式 :おみくじ

コメント

タイトルとURLをコピーしました