利用C# 窗体设计 写一个抽奖游戏

老师布置了一个任务,要求我们做一个抽奖游戏,以下是我个人制作的一个作品与写项目的过程。

我们用到了8个pictureBox控件和一个button,设置好大小,并且编排成一个九宫个形状

添加窗体的背景图片,并添加button的背景图片和文字“抽奖”,可以将pictureBox的BorderStyle设置为Fixed3D这样更美观。

以下是代码

 1 public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         int i = 0, rd, cnt = 0, a = 0;
 9         PictureBox[] pic = new PictureBox[8];   //定义一个PictureBox的数组
10 
11         private void Form1_Load(object sender, EventArgs e)
12         {
13             this.Width = 500;
14             this.Height = 500;
15             foreach (Control picB in this.Controls)         //遍历窗体中所有PictureBox,并将窗体的PictureBox加入数组中
16             {
17                 if (picB.GetType() == typeof(PictureBox))
18                 {
19                     pic[i] = (PictureBox)picB;
20                     i++;
21                 }
22             }
23             //将奖品的图片加载进对应的PictureBox中
24             pictureBox1.ImageLocation = @"image/奖品1.jpg";
25             pictureBox2.ImageLocation = @"image/奖品2.jpg";
26             pictureBox3.ImageLocation = @"image/奖品3.jpg";
27             pictureBox4.ImageLocation = @"image/奖品4.jpg";
28             pictureBox5.ImageLocation = @"image/奖品5.jpg";
29             pictureBox6.ImageLocation = @"image/奖品6.jpg";
30             pictureBox7.ImageLocation = @"image/奖品7.jpg";
31             pictureBox8.ImageLocation = @"image/奖品8.jpg";
32 
33         }
34         bool b = true;
35         private void button1_Click_1(object sender, EventArgs e)    //打开定时器,并生成一个随机数
36         {
37             timer1.Enabled = true;
38             Random r = new Random();
39             rd = r.Next(30, 46);
40             if (cnt >= 0)                         //判断是否是第一次进行抽奖,因为第一次pictureBox大小,位置都是默认的,第二次将是改变的,我们需要恢复
41             {
42                 if (b == true)
43                 {
44                     b = false;
45                     return;
46                 }
47                 pic[cnt].Location = new Point(pic[cnt].Location.X + 10, pic[cnt].Location.Y + 10);
48             }
49 
50         }
51 
52         private void timer1_Tick(object sender, EventArgs e)
53         {
54 
55             if (a % 2 == 0)                           //定义一个变量,判断是否是2的倍数,从而实现PictureBox大小的动态变化
56             {
57                 pic[cnt].Size = new Size(120, 120);     //改变PictureBox的大小
58                 pic[cnt].BackColor = Color.Red;
59                 pic[cnt].Location = new Point(pic[cnt].Location.X - 10, pic[cnt].Location.Y - 10); //改变pictureBox的位置,让它处于原图片的中间位置
60                 a++;
61             }
62             else if (a % 2 == 1)
63             {
64                 pic[cnt].Size = new Size(100, 100);
65                 pic[cnt].Location = new Point(pic[cnt].Location.X + 10, pic[cnt].Location.Y + 10); //恢复原位置,以及大小
66                 cnt++;
67                 a++;
68             }
69             if (cnt > 7)
70             {
71                 cnt = 0;
72             }
73             if (a > rd && a % 2 == 1)                 //判断生成的随机a的值是否比生成的随机数大,并将对应PictureBox变大,然后停止
74             {
75                 
76 
77                 a = 0;
78                 timer1.Enabled = false;
79                 switch (cnt)                                     //转盘停止后判断奖品是什么,并弹出对话框提示用户
80                 {
81                     case 7: MessageBox.Show("恭喜您,中奖了!奖品是一部手机"); break;
82                     case 6: MessageBox.Show("恭喜您,中奖了!奖品是一副耳机"); break;
83                     case 5: MessageBox.Show("恭喜您,中奖了!奖品是5元代金券"); break;
84                     case 4: MessageBox.Show("恭喜您,中奖了!奖品是一个蓝牙音箱"); break;
85                     case 3: MessageBox.Show("恭喜您,中奖了!奖品是精美礼品一份"); break;
86                     case 2: MessageBox.Show("恭喜您,中奖了!奖品是笔记本电脑一台"); break;
87                     case 1: MessageBox.Show("恭喜您,中奖了!奖品是遥控飞机一架"); break;
88                     case 0: MessageBox.Show("谢谢参与"); break;
89                     default: break;
90                 }
91 
92             }
93         }
94     }

 以上为个人想法,大家如有个好的点子评论留言哟

猜你喜欢

转载自www.cnblogs.com/Xiaodeng-xcdd/p/10787342.html
今日推荐