利用C# 窗体设计 写一个抽奖游戏
老师布置了一个任务,要求我们做一个抽奖游戏,以下是我个人制作的一个作品与写项目的过程。
我们用到了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# 窗体设计 写一个抽奖游戏的更多相关文章
- 利用Python写一个抽奖程序,解密游戏内抽奖的秘密
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- Python 写一个俄罗斯方块游戏
使用 Python 的 PyGame 库写一个俄罗斯方块游戏的逐步指南 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人 ...
- JavaScript写一个拼图游戏
拼图游戏的代码400行, 有点多了, 在线DEMO的地址是:打开: 因为使用canvas,所以某些浏览器是不支持的: you know: 为什么要用canvas(⊙o⊙)? 因为图片是一整张jpg或 ...
- Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互
框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java model文件夹下的 Global ...
- 利用SpringBoot+Logback手写一个简单的链路追踪
目录 一.实现原理 二.代码实战 三.测试 最近线上排查问题时候,发现请求太多导致日志错综复杂,没办法把用户在一次或多次请求的日志关联在一起,所以就利用SpringBoot+Logback手写了一个简 ...
- 【编程教室】PONG - 100行代码写一个弹球游戏
大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...
- 如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?
OK, 废话不多说,这些天在写C#代码时突然对于IDE提示有了一些想法,之前也有了解过,不过并没有深入. 先看个截图: 一段再简单不过的代码了,大家注意看到 count 字段下面的绿色波浪线了吗,我们 ...
- (二)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?
上一篇我们讲了如何建立一个简单的Roslyn分析项目如分析检查我们的代码. 今天我们主要介绍各个项目中具体的作用以及可视化分析工具. 还是这种截图,可以看到解决方案下一共有三个项目. Analyzer ...
- 用C++基础语句写一个五子棋游戏
(这是一个颜色会变化的呦) #include <iostream> using namespace std; int b[][]; int n; int m; void qipan() { ...
随机推荐
- Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
今日主要内容 1. 函数的嵌套定义 2. global.nonlocal关键字 3. 闭包及闭包的应用场景 4. 装饰器 1. 函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...
- JS 设计模式六 -- 代理模式
概念 为一个对象提供一个代用品或占位符,以便控制对它的访问. 当客户不方便直接访问一个对象的时候,需要提供一个替身对象来控制对这个对象的访问. 替身对象对请求做出一些处理之后, 再把请求转交给本体对象 ...
- jsonp原理详解
1.一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准. 2.不过我们又发现,Web页面上调用js文件时则不 ...
- [转帖]Ansible管理windows集群
Ansible管理windows集群 http://www.cnblogs.com/Dev0ps/p/10026908.html 写的挺好的 我关注点还是不够好呢 最近公司新项目需要安装400+win ...
- celery 和 haystack
celery 是分布式异步框架 haystack 是全文检索 只能在Django中用. 一.什么是celery? ---->它是Python写的,所以只支持Python使用.但是消 ...
- 网络流学习(转载自ssw 的博客)
众所周知,网络流是探究网络上运输的一种图论分支.但是大多数人在第一次接触这个题时都有些畏惧感(比如说我),大佬可以自信跳过.. 本文包括: 1.网络流的概念及基本性质 2.略谈 Edmonds-Kar ...
- js定时器 实现提交成功提示
应用场景: 用户评论后,在合适位置弹出“评论成功”,2秒钟后自动消失,提示用户评论成功. HTML: {#评论成功提示#} <div class="popup_con" st ...
- servlet(3):servlet和filter<url-pattern>配置
一,servlet容器对url的匹配过程: 当 一个请求发送到servlet容器的时候,容器先会将请求的url减去tomcat的上下文路径(配置的访问系统的基础路径例如intellij idea配置的 ...
- jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义
jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义 2014年01月16日 11:00:12 lxb_champagne 阅读 ...
- x86/x64/x86_64/i386/ia32/ia64/amd/amd64 辨析
x64 = x86_64 = amd64 64位指令集,是对IA-32的扩展,由AMD提出,implemented by AMD,Intel.可兼容32位指令集(IA-32) 目前大部分64位计算机均 ...