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

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

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

以下是代码

 public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
         }

         , rd, cnt = , a = ;
         PictureBox[] pic = ];   //定义一个PictureBox的数组

         private void Form1_Load(object sender, EventArgs e)
         {
             ;
             ;
             foreach (Control picB in this.Controls)         //遍历窗体中所有PictureBox,并将窗体的PictureBox加入数组中
             {
                 if (picB.GetType() == typeof(PictureBox))
                 {
                     pic[i] = (PictureBox)picB;
                     i++;
                 }
             }
             //将奖品的图片加载进对应的PictureBox中
             pictureBox1.ImageLocation = @"image/奖品1.jpg";
             pictureBox2.ImageLocation = @"image/奖品2.jpg";
             pictureBox3.ImageLocation = @"image/奖品3.jpg";
             pictureBox4.ImageLocation = @"image/奖品4.jpg";
             pictureBox5.ImageLocation = @"image/奖品5.jpg";
             pictureBox6.ImageLocation = @"image/奖品6.jpg";
             pictureBox7.ImageLocation = @"image/奖品7.jpg";
             pictureBox8.ImageLocation = @"image/奖品8.jpg";

         }
         bool b = true;
         private void button1_Click_1(object sender, EventArgs e)    //打开定时器,并生成一个随机数
         {
             timer1.Enabled = true;
             Random r = new Random();
             rd = r.Next(, );
             )                         //判断是否是第一次进行抽奖,因为第一次pictureBox大小,位置都是默认的,第二次将是改变的,我们需要恢复
             {
                 if (b == true)
                 {
                     b = false;
                     return;
                 }
                 pic[cnt].Location = , pic[cnt].Location.Y + );
             }

         }

         private void timer1_Tick(object sender, EventArgs e)
         {

              == )                           //定义一个变量,判断是否是2的倍数,从而实现PictureBox大小的动态变化
             {
                 pic[cnt].Size = , );     //改变PictureBox的大小
                 pic[cnt].BackColor = Color.Red;
                 pic[cnt].Location = , pic[cnt].Location.Y - ); //改变pictureBox的位置,让它处于原图片的中间位置
                 a++;
             }
              == )
             {
                 pic[cnt].Size = , );
                 pic[cnt].Location = , pic[cnt].Location.Y + ); //恢复原位置,以及大小
                 cnt++;
                 a++;
             }
             )
             {
                 cnt = ;
             }
              == )                 //判断生成的随机a的值是否比生成的随机数大,并将对应PictureBox变大,然后停止
             {

                 a = ;
                 timer1.Enabled = false;
                 switch (cnt)                                     //转盘停止后判断奖品是什么,并弹出对话框提示用户
                 {
                     : MessageBox.Show("恭喜您,中奖了!奖品是一部手机"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是一副耳机"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是5元代金券"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是一个蓝牙音箱"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是精美礼品一份"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是笔记本电脑一台"); break;
                     : MessageBox.Show("恭喜您,中奖了!奖品是遥控飞机一架"); break;
                     : MessageBox.Show("谢谢参与"); break;
                     default: break;
                 }

             }
         }
     }

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

利用C# 窗体设计 写一个抽奖游戏的更多相关文章

  1. 利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  2. Python 写一个俄罗斯方块游戏

    使用 Python 的 PyGame 库写一个俄罗斯方块游戏的逐步指南 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人 ...

  3. JavaScript写一个拼图游戏

    拼图游戏的代码400行, 有点多了, 在线DEMO的地址是:打开: 因为使用canvas,所以某些浏览器是不支持的: you know: 为什么要用canvas(⊙o⊙)?  因为图片是一整张jpg或 ...

  4. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

  5. 利用SpringBoot+Logback手写一个简单的链路追踪

    目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简 ...

  6. 【编程教室】PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  7. 如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?

    OK, 废话不多说,这些天在写C#代码时突然对于IDE提示有了一些想法,之前也有了解过,不过并没有深入. 先看个截图: 一段再简单不过的代码了,大家注意看到 count 字段下面的绿色波浪线了吗,我们 ...

  8. (二)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?

    上一篇我们讲了如何建立一个简单的Roslyn分析项目如分析检查我们的代码. 今天我们主要介绍各个项目中具体的作用以及可视化分析工具. 还是这种截图,可以看到解决方案下一共有三个项目. Analyzer ...

  9. 用C++基础语句写一个五子棋游戏

    (这是一个颜色会变化的呦) #include <iostream> using namespace std; int b[][]; int n; int m; void qipan() { ...

随机推荐

  1. 随心测试_职场面试_001<SX的面试观点>

    快速理解_求职面试:必不可少的嘴 +  双向沟通交流 = 人与人之间的心理游戏 ps:以下为_面试题回答套路_案例,仅供参考,不挖坑 常见的面试题: 你是如何看待软件测试这个行业的? 说说你对软件测试 ...

  2. IDEA导入项目jar包红线、依赖问题....

    一般遇到这种情况用以下两种方式解决....... 1.reimport包 2.清缓存重启 针对1方法: a.确实不缺包: 可以先注释掉pom文件中的jar包, 此时idea会提示import, 那就i ...

  3. How do I copy files that need root access with scp

    server - How do I copy files that need root access with scp? - Ask Ubuntuhttps://askubuntu.com/quest ...

  4. RabbitMQ的一些有用教程

    最近学习了一些RabbitMQ的知识,现在对所阅读过的一些非常优秀的教程进行总结,感谢各位博主和大神的无私奉献. 一.原理篇 https://blog.51cto.com/lookingdream/2 ...

  5. Spark2.2 saveAsTable 函数使用 overWrite 设置 Partition 会造成全覆盖的问题

    在使用 CDH 6.0.X 的版本还是自带的是 Spark2.2 的版本,2.2 版本的 Spark 使用 saveAsTable 如果使用overWrite PartitionBy 的功能会有和 h ...

  6. 浅析Java数据类型

    前言: 该系列会辅以MindMap进行说明. 下面会贴两张我不同时期画的Java数据类型的思维导图,本篇主要侧重于Java的8种基本类型 MindMap-1 这张MindMap主要是根据 菜鸟教程+参 ...

  7. [Java]list集合为空或为null的区别

    判断的是list这个集合的问题,当前需要判断list内值的问题. 简述判断一个list集合是否为空,我们的惯性思维是判断list是否等于null即可,但是在Java中,list集合为空还是为null, ...

  8. gulp 入门使用

      gulp 入门使用 使用场景 相信大家在传统的开发模式下 都是 html + css + js 然后静态文件不经过任何处理 部署到服务器,这样会有很多漏洞例如: 1.在网站上查看F12 就可以看到 ...

  9. Nginx+rtmp+ffmpeg 搭建推流服务器

    1. 安装nginx服务器 1.1 clone $ brew tap denji/homebrew-nginx 1.2 安装 $ brew install nginx-full --with-rtmp ...

  10. 如何规避“Flash中国特供版”

    如何规避“Flash中国特供版” 来源  http://blog.sina.com.cn/s/blog_4e1bc3e90102xn0k.html 浏览国内网站,尤其是一些很重要或者很常用,但是很落后 ...