ステージ−2 ゲームの初期設定

Web(C#)で「石取りゲーム」の初期設定を行うステージです。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. 「石取りゲーム」のステージ−2で処理することは次のとおりです。
    1. 山の石を乱数(11個〜30個)で設定します。
    2. 山から一度に取り除くことができる最大数(2個〜6個)を乱数で設定します。
    3. 再設定ボタンのクリックで「山の石と取り除く数」を再設定します。
    4. プレイボタンのクリックでステージ−3を呼び出します。
  2. ゲームの画面はページ下部のリンクから直接ゲームをして確かめて下さい。
    ここではソースコードを中心に説明します。
    プロジェクトの作成は ゲームの説明と最初のステージ を参照して下さい。
  3. 下記のパラメータを最初の Page_Load で受け取って、ViewState に保存します。
    パラメータで渡された値は、ポストバックが発生すると失われます。
    form に非表示コントロール領域を設定して保存する方法もあるのですが、今回は ViewState を使います。
    ニックネームNickname
    勝ち数 Win
    負け数 Lose
  4. 山に詰まれる石の数(11個〜30個)を乱数で決めて TextBox1 に表示します。
    一度に取り除くことができる最大数(2個〜6個)を乱数で決めて TextBox2 に表示します。
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    ViewState["Nickname"] = (string)Context.Items["Nickname"];
                    ViewState["Win"] = (string)Context.Items["Win"];
                    ViewState["Lose"] = (string)Context.Items["Lose"];
                    TextBox1.Text = Convert.ToString(rand.Next(20) + 11);
                    TextBox2.Text = Convert.ToString(rand.Next(5) + 2);
                }
            }
        
  5. 再設定ボタンがクリックされると「山の石と取り除く数」を再設定します。
            protected void Button1_Click(object sender, EventArgs e)
            {
                TextBox1.Text = Convert.ToString(rand.Next(20) + 11);
                TextBox2.Text = Convert.ToString(rand.Next(5) + 2);
            }
        
  6. プレイボタンがクリックされるとパラメータを設定してステージ−3を呼び出します。
    ステージ−3に移るときに、下記の情報をパラメータで渡します。
    ニックネーム Nickname
    勝ち数 Win
    負け数 Lose
    山の石の数 Num
    取り除ける最大数Max
  7. プレイボタンがクリックされたときのソースコードです。
    次のステージが完成して呼び出せるようになるまでは、Transfer の代わりに Write でメッセージを表示しています。
            protected void Button2_Click(object sender, EventArgs e)
            {
                Context.Items.Add("Nickname", ViewState["Nickname"]);
                Context.Items.Add("Win", ViewState["Win"]);
                Context.Items.Add("Lose", ViewState["Lose"]);
                Context.Items.Add("Num", TextBox1.Text);
                Context.Items.Add("Max", TextBox2.Text);
                //Server.Transfer("ishitori3.aspx");
                Response.Write("次のステージへジャンプ");
            }
        

ishitori2.aspx のソースコード

2007年末からサーバーのサービスが終わり、接続出来なくなっています。
石取りゲームを呼び出す

超初心者のプログラム入門(C# on-line game)