المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Random Image Generator



C# Programming
03-23-2010, 06:13 AM
I am working on a project that takes 30 images from file, stuffs them in an array and displays them sequentially in a random order. There is a 30 second delay between each image, like a slide show, and no image can be displayed more than once. I got everthing down except for the dont display the same image twice and the end the sequence once every image was displayed. Here is my code.




using System;
using System.Drawing;
using System.Windows.Forms;

namespace Random_Image_Generator
{
public partial class mainWindow : Form
{
int timeKeeper;
Bitmap[] images = new Bitmap[30];


public mainWindow()
{
InitializeComponent();
timer1.Interval = 1000;
images[0] = new Bitmap(Bitmap.FromFile("0.bmp"));
images[1] = new Bitmap(Bitmap.FromFile("1.bmp"));
images[2] = new Bitmap(Bitmap.FromFile("2.bmp"));
images[3] = new Bitmap(Bitmap.FromFile("3.bmp"));
images[4] = new Bitmap(Bitmap.FromFile("4.bmp"));
images[5] = new Bitmap(Bitmap.FromFile("5.bmp"));
images[6] = new Bitmap(Bitmap.FromFile("6.bmp"));
images[7] = new Bitmap(Bitmap.FromFile("7.bmp"));
images[8] = new Bitmap(Bitmap.FromFile("8.bmp"));
images[9] = new Bitmap(Bitmap.FromFile("9.bmp"));
images[10] = new Bitmap(Bitmap.FromFile("10.bmp"));
images[11] = new Bitmap(Bitmap.FromFile("11.bmp"));
images[12] = new Bitmap(Bitmap.FromFile("12.bmp"));
images[13] = new Bitmap(Bitmap.FromFile("13.bmp"));
images[14] = new Bitmap(Bitmap.FromFile("14.bmp"));
images[15] = new Bitmap(Bitmap.FromFile("15.bmp"));
images[16] = new Bitmap(Bitmap.FromFile("16.bmp"));
images[17] = new Bitmap(Bitmap.FromFile("17.bmp"));
images[18] = new Bitmap(Bitmap.FromFile("18.bmp"));
images[19] = new Bitmap(Bitmap.FromFile("19.bmp"));
images[20] = new Bitmap(Bitmap.FromFile("20.bmp"));
images[21] = new Bitmap(Bitmap.FromFile("21.bmp"));
images[22] = new Bitmap(Bitmap.FromFile("22.bmp"));
images[23] = new Bitmap(Bitmap.FromFile("23.bmp"));
images[24] = new Bitmap(Bitmap.FromFile("24.bmp"));
images[25] = new Bitmap(Bitmap.FromFile("25.bmp"));
images[26] = new Bitmap(Bitmap.FromFile("26.bmp"));
images[27] = new Bitmap(Bitmap.FromFile("27.bmp"));
images[28] = new Bitmap(Bitmap.FromFile("28.bmp"));
images[29] = new Bitmap(Bitmap.FromFile("29.bmp"));
}






private void timer1_Tick(object sender, EventArgs e)
{
if (timeKeeper == 30)
{
nextImage();
timeKeeper = 0;
}
else {
timeKeeper++;
}

}

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

private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}

private void nextImage()
{
int randNum = RandomNumber(0, 29);

// some way to check if image was already displayed goes here
imageArea.Image = images[randNum];

}

private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}

}


}



How would i go about doing this?