ステージ−5 ゲームの勝敗と終了確認

Web(C#)でゲームの勝敗と対戦結果を表示するステージです。

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

ステージ−5の作成

  1. 「石取りゲーム」のステージ−5で処理することは次のとおりです。
    1. 今のゲームが、どちらの勝ちかを表示します。
    2. これまでの対戦成績を表示します。
    3. 「次のゲーム」ボタンをクリックするとステージ−2を呼び出します。
    4. 「終了」ボタンをクリックするとステージ−1を呼び出します。
  2. 最初の Page_Load でパラメータを受け取って、ViewState に保存します。
    ニックネーム Nickname
    勝ち数 Win
    負け数 Lose
    山の石の数 Num
    取り除ける最大数Max
  3. 今のゲームが、どちらの勝ちかを表示します。
    ステージ−4でのゲームの終了確認は、人間側がプレイした後で行っています。
    従って、Num==1 のときは最後の石を取らされることになり、コンピュータの負けです。
    Num==0 のときはコンピュータの勝ちです。
  4. パラメータから対戦成績を取得して、これまでの対戦成績を表示します。
            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"];
                    ViewState["Num"] = (string)Context.Items["Num"];
                    ViewState["Max"] = (string)Context.Items["Max"];
                    if (Convert.ToInt32(ViewState["Num"])==0)
                        Label1.Text = "このゲームは、私の勝ちです";
                    else
                        Label1.Text = "このゲームは、あなたの勝ちです";
                    Label2.Text = ViewState["Nickname"] + "さんの勝ち数";
                    TextBox1.Text = (string)ViewState["Lose"];
                    TextBox2.Text = (string)ViewState["Win"];
                }
            }
        
  5. 「次のゲーム」ボタンがクリックされたときに呼び出される Button1_Click 関数です。
    パラメータを設定してステージ−2へジャンプします。
            protected void Button1_Click(object sender, EventArgs e)
            {
                Context.Items.Add("Nickname", ViewState["Nickname"]);
                Context.Items.Add("Win", ViewState["Win"]);
                Context.Items.Add("Lose", ViewState["Lose"]);
                Server.Transfer("ishitori2.aspx");
                //Response.Write("次のステージへジャンプ");
            }
        
  6. 「終了」ボタンがクリックされたときに呼び出される Button2_Click 関数です。
    パラメータの設定は必要ないので、そのままステージ−1へジャンプします。
            protected void Button2_Click(object sender, EventArgs e)
            {
                Server.Transfer("ishitori1.aspx");
                //Response.Write("次のステージへジャンプ");
            }
        

ishitori5.aspx.cs のソースコード

石取りゲームを呼び出す

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