在图片框中显示随机图片,每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
请给我一些提示。
非常感谢,问候彼得
您可以使用带有随机内容的计时器,如下所示:
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();