在图片框中显示随机图片,每0.5秒

本文关键字:5秒 显示 随机 | 更新日期: 2023-09-27 18:32:39

我有点卡住了,我需要帮助。

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

https://i.stack.imgur.com/6tImm.png

请给我一些提示。

非常感谢,问候彼得

在图片框中显示随机图片,每0.5秒

您可以使用带有随机内容的计时器,如下所示:

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 数组计算分数,我认为计算算法必须如下所示:

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;
           }
       }
   }
}

用于开始在按下按钮时制作随机图片。如何将图像添加到资源中例如

  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()。完成此操作后,您可以继续使用计时器。

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

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

在你buttonstart_Click调用计时器1。开始();例如

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

如果你想在计时器中更改刻度,你可以使用定时器1.间隔 = 500;0.5秒。你想要的地方。

如果要使用停止计时器

timer1.Stop();