每隔0,5秒在图片框中显示随机图片

时间:2016-01-31 01:09:29

标签: c#

我有点困难,我需要帮助。

我的目标是制作一个小游戏"。它应该有3个图片框,它应该每0,5秒随机显示/更改数字(图片)1到6。当我点击STOP时,它应该停止数字,我应该得到基于nubmers的分数(得分)。 3个相同的数字= +10个点,2个相同的数字= +5个点,没有相同的数字= -5个点。然后它应该显示达到的最高分数(最高分数)。

http://i.imgur.com/kubQBST.png

请给我一些建议。

非常感谢,问候彼得

2 个答案:

答案 0 :(得分:0)

您可以随意使用Timer这样的内容:

Random rnd1 = new Random(Environment.TickCount);
Image[] Images = new Image[6];
int[] CurrentStatus = new int [3];
Images[0] = Image.FromFile("FileNameFornumber1");
Images[1] = Image.FromFile("FileNameFornumber2");
Images[2] = Image.FromFile("FileNameFornumber3");
Images[3] = Image.FromFile("FileNameFornumber4");
Images[4] = Image.FromFile("FileNameFornumber5");
Images[5] = Image.FromFile("FileNameFornumber6");

//change numbers every tick
private Timer_TickHandler(object sender, EventArgs e)
{
   this.CurrentState[0] = rnd1.Next(1, 6);
   this.CurrentState[1] = rnd1.Next(1, 6);
   this.CurrentState[2] = rnd1.Next(1, 6);
   this.PictureBox1.Image = Images[this.CurrentStatus[0]-1];
   this.PictureBox2.Image = Images[this.CurrentStatus[1]-1];
   this.PictureBox3.Image = Images[this.CurrentStatus[2]-1];
}

你必须为停止按钮编写一个事件来停用计时器并根据CurrentStatus数组计算得分,我认为计算alg必须是这样的:

int score = this.CurrentStatus.Sum();
if (this.CurrentStatus[0] == this.CurrentStatus[1] &&   this.CurrentStatus[1] == this.CurrentStatus[2])
score +=10;
else
{
   for (int i=0; i<3; i++)
   {
       for (int j=i+1; j<3; j++)
       {
           if (this.CurrentStatus[i] == this.CurrentStatus[j])
           {
               score+=5;
               break;
           }
       }
   }
}

答案 1 :(得分:0)

开始按下按钮按下随机图片。 How add images into resources 例如

  public partial class Form1 : Form
{
    List<Bitmap> picturesList = new List<Bitmap>(); //Array of pictures
    Random random = new Random(); 
    public Form1()
    {
        InitializeComponent();

        //Load all pictures from resources into array
        picturesList.Add(Properties.Resources.pic1);
        picturesList.Add(Properties.Resources.pic2);
        picturesList.Add(Properties.Resources.pic3);

        //Set random image into picture box
        RandomChangeImage();
    }

    public void RandomChangeImage()
    {
        //Generate random number. (random index between 0 - array.count )
        int randomIndex = random.Next(0, picturesList.Count);

        //Set random image from array
        YourPictureBoxName.Image = picturesList[randomIndex];
    }
}

现在你可以使用RandomChangeImage();在你的代码中。你做完了,你可以继续使用计时器。

现在将Timer从工具箱添加到设计器中。 双击计时器。 它生成了这个

     private void timer1_Tick(object sender, EventArgs e)
        {
//Call random change image
RandomChangeImage();
        }

在你的buttonstart_Click中调用timer1.Start();例如

 private void btnStart_Click(object sender, EventArgs e)
    {
        timer1.Start();
    }

如果您想在计时器中更改刻度,则可以使用 timer1.Interval = 500;持续0.5秒。你想要的地方。

如果你想停止计时器使用

timer1.Stop();