2011-07-15 9 views
0

のための画像をランダムにヘルプ私は、ユーザーが次のページに行くと、同じ画像をクリックする必要があり、その後、画像が表示されますゲームを、作成しようとしています。メモリゲームの種類。私が抱えている問題は、配列をランダムにソートし、クリックした画像を特定できることです。私のページには、ランダムに入力された5つの画像と送信ボタンがあります。私は理想的には、彼らが1つを選択したことを確認するのが理想的です。そして、それをプログラム選択されたものと比較してください(この例では、単純なもののためにポストや何も使っていません。なぜこれが機能しないのか)今は値をランダムに選んで、ユーザーが同じものをクリックしたかどうかを判断しようとしています。しかし、私は時々混合値を得て、時々私のselvalueとprogramvalue変数に同じ数を得ます。誰でも助けてくれますか?私はCでコーディングしています#C#の配列/メモリーゲーム

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
      { 
       Random random = new Random(); 
       List<string> urls = new List<string> { }; 
       List<int> nums = new List<int> { }; 
       List<string> iconnames = new List<string> 
        { 
         "images/verimage1.png", 
         "images/verimage2.png", 
         "images/verimage3.png", 
         "images/verimage4.png", 
         "images/verimage5.png" 
        }; 
       int noiconlabel = random.Next(iconnames.Count); 
       switch (noiconlabel) 
       { 
        case 0: 
         { 
          iconnamelabel.Text = "Newspaper"; 
          HiddenField2.Value = "1"; 
          break; 
         } 
        case 1: 
         { 
          iconnamelabel.Text = "iPod"; 
          HiddenField2.Value = "2"; 
          break; 
         } 
        case 2: 
         { 
          iconnamelabel.Text = "Star"; 
          HiddenField2.Value = "3"; 
          break; 
         } 
        case 3: 
         { 
          iconnamelabel.Text = "Lock"; 
          HiddenField2.Value = "4"; 
          break; 
         } 
        case 4: 
         { 
          iconnamelabel.Text = "Die"; 
          HiddenField2.Value = "5"; 
          break; 
         } 
       } 
       for (int a = 0; a < 5; a++) 
       { 
        int index = random.Next(iconnames.Count); 
        var name = iconnames[index]; 
        urls.Add(name); 
        nums.Add(index + 1); 
        iconnames.RemoveAt(index); 
       } 

       Image1.ImageUrl = urls[0]; 
       Image1.CommandArgument = nums[0].ToString(); 
       Image2.ImageUrl = urls[1]; 
       Image2.CommandArgument = nums[1].ToString(); 
       Image3.ImageUrl = urls[2]; 
       Image3.CommandArgument = nums[2].ToString(); 
       Image4.ImageUrl = urls[3]; 
       Image4.CommandArgument = nums[3].ToString(); 
       Image5.ImageUrl = urls[4]; 
       Image5.CommandArgument = nums[4].ToString(); 

      } 
    } 

    protected void Image1_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton img = (ImageButton)(sender); 
     HiddenField1.Value = img.CommandArgument; 

    } 

    protected void Image2_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton img = (ImageButton)(sender); 
     HiddenField1.Value = img.CommandArgument ; 
    } 

    protected void Image3_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton img = (ImageButton)(sender); 
     HiddenField1.Value = img.CommandArgument; 
    } 

    protected void Image4_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton img = (ImageButton)(sender); 
     HiddenField1.Value = img.CommandArgument; 
    } 

    protected void Image5_Click(object sender, ImageClickEventArgs e) 
    { 
     ImageButton img = (ImageButton)(sender); 
     HiddenField1.Value = img.CommandArgument; 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     string selvalue = HiddenField1.Value; 
     string programvalue = HiddenField2.Value; 

     if (selvalue == null | selvalue == "") 
     { 
      errorverlabel.Text = "<span style='color: red; font-size: 8pt;'>No Verification Image Selected, Please try again.</span>"; 
     } 
     else 
     { 
      if (selvalue != programvalue) 
      { 
       errorverlabel.Text = "<span style='color: red; font-size: 8pt;'>Wrong Verification Image Selected, Please try again.</span>"; 
      } 
     } 
    } 

} 
+0

if (selvalue == null | selvalue == "") 

あなたが持っている実際の問題を明確にしてくださいことはできますか? – Oded

+0

イメージのデータベースを実際に作成することを検討しましたか?それらをデータセットとして読み込んでそこから作業することもできますが、おそらく.mdfを使うこともできます。作成しているサイトのタイプはわかりませんが、これはASP.NET MVC 3アプリとしてはうまくいくはずです。 –

+0

WPFを使用していますか? Winforms?他に何か? –

答えて

0

あなたはロジックを使用する必要があります。 (OR)演算子ではなく、ビット単位で| (OR)演算子。

変更:

if (selvalue == null || selvalue == "") 
+0

この場合は違いはありません – BrokenGlass