<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected void Page_Load(Object sender, EventArgs e) {
        if(!Page.IsPostBack){
            Random rnd = new Random();
            ViewState["count"] = 0;
            ViewState["answer"] = rnd.Next(100);
        }
    }

    protected void btnSend_Click(Object sender, EventArgs e) {
        if(Page.IsValid){
            ViewState["count"] = (int)ViewState["count"] + 1;
            if((int)ViewState["answer"] == Int32.Parse(txtNum.Text)) {
                ltrResult.Text = ViewState["count"] + "回で正解しました！";
                ViewState.Clear();
            } else {
                if((int)ViewState["answer"] > Int32.Parse(txtNum.Text)) {
                    ltrResult.Text = "もう少し大きいです。";
                } else {
                    ltrResult.Text = "もう少し小さいです";
                }
            }
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>数当てゲーム</title>
</head>
<body>
    <form id="form1" runat="server">
        1～100までの値を入力してください：
        <asp:TextBox ID="txtNum" runat="server" Columns="3"></asp:TextBox>
        <asp:Button ID="btnSend" runat="server" Text="回答" OnClick="btnSend_Click" />
        <asp:RequiredFieldValidator ID="reqNum" runat="server" ControlToValidate="txtNum"
            Display="Dynamic" ErrorMessage="数値は必須入力です。" SetFocusOnError="True"></asp:RequiredFieldValidator>
        <asp:RangeValidator ID="rngNum" runat="server" ControlToValidate="txtNum" Display="Dynamic"
            ErrorMessage="回答は1～100の数値で入力してください。" MaximumValue="100" MinimumValue="1" SetFocusOnError="True"
            Type="Integer"></asp:RangeValidator>
        <br />
        <asp:Literal ID="ltrResult" runat="server"></asp:Literal>
        <br />
    </form>
</body>
</html>
