winform 猜猜看

说明:

1>窗体应用程序。

2>一个窗体(Form1),一个按钮(btnStart),一个文本(labTime)

3>截图:

4>代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.Collections;

namespace CaiCaiKan {

public partial class Form1 : Form {

public Form1() {

InitializeComponent();

}

System.Threading.Thread Gthread;//定义线程

Random Grandom = new Random();//定义随机数对象

int Gnum;//定义变量用于存放存机数

private void btnStart_Click(object sender, EventArgs e) {

RemoveControl();//清空所有无用对象

btnStart.Enabled = false;//设置开始按钮不可用

//生成100个按钮,10横10竖

int px = 10;//第一个按钮的位置

int py = 60;

for (int i = 0; i < 100; i++) {

Button btn = new Button();//给按钮赋值,定义宽和高

btn.Name = (i+1).ToString();

btn.Text = (i+1).ToString();

btn.Width = 35;

btn.Height = 35;

btn.Location = new Point(px, py);

btn.Click += new EventHandler(btn_Click);//定义按钮事件

px += 36;

if ((i + 1) % 10 == 0) {

px = 10;

py += 36;

}

Controls.Add(btn);//将button按钮放入窗体控件集合中

}

//新建一个线程

Gthread = new System.Threading.Thread(delegate()

{

int count = 0;//初始化计数器

while (true)//开始无限循环

{

//计数器累加

count = ++count > 100000000 ? 0 : count;//设置最大数值

this.Invoke(//将代码交给主线程执行

(MethodInvoker)delegate//使用匿名方法

{

//窗体中显示计数

labTime.Text = "用时:" + count.ToString() + " 秒";

});

//线程睡眠1秒

System.Threading.Thread.Sleep(1000);

}

});

Gthread.IsBackground = true;//设置线程为后台线程

Gthread.Start();//开始执行线程

Gnum = Grandom.Next(1, 100);//生成随机数

}

// 用于清空窗体中动态生成的按钮

void RemoveControl()

{

for (int i = 0; i < 100; i++)//开始遍历100个按钮

{

if (Controls.ContainsKey((i + 1).ToString()))   //窗体中是否有此按钮

{

for (int j = 0; j < Controls.Count; j++)//遍历窗体控件集合

{

if (Controls[j].Name ==(i + 1).ToString()) //是否查找到按钮

{

Controls.RemoveAt(j);//删除指定按钮

break;

}

}

}

}

}

//自动生成的按钮事件

void btn_Click(object sender, EventArgs e)

{

Control P_control = sender as Control;//将sender(存放的是指向实体对象的指针)转换为control类型对象

if (int.Parse(P_control.Name) > Gnum)

{

P_control.BackColor = Color.Red;//设置按钮背景为红色

P_control.Enabled = false;//设置按钮停用

P_control.Text = "大";//更改按钮文本

}

if (int.Parse(P_control.Name) < Gnum)

{

P_control.BackColor = Color.Red;//设置按钮背景为红色

P_control.Enabled = false;//设置按钮停用

P_control.Text = "小";//更改按钮文本

}

if (int.Parse(P_control.Name) == Gnum)

{

Gthread.Abort();//终止计数线程

//显示游戏信息

MessageBox.Show(string.Format("恭喜你猜对了!共猜了{0}次 {1}", GetCount(), labTime.Text), "恭喜!");

btnStart.Enabled = true;//启用开始按钮

}

}

//获取已点击按钮个数

string GetCount()

{

int temp = 0;//初始化计数器

foreach (Control c in Controls)//遍历控件集合

{

// 用于查找窗体中Enable属性为False控件的数量

if (!c.Enabled) {

temp++;//计数器累加

}

}

return temp.ToString();//返回计数器信息

}

//关闭窗体

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

Environment.Exit(0);//强行关闭窗体,应用程序即强制退出。

}

}

}

winform 猜猜看

时间: 2024-07-31 00:57:53

winform 猜猜看的相关文章

作业六:猜猜看,检验朋友熟悉度——Winform程序

1.目的 以最快的速度认识.了解身边的人: 促进人与人之间的互动交流: 2.目标 满足基本功能:对原型进行简单的验证: 3.内容 功能: 随机显示一个名字与 3张相片,选择相片,提示结果,显示图片正确信息:  随机显示 一张相片与若3个名字,选择名字,提示结果:  4.重点--随机概率 概率计算:记录对每个人的认识概率P,并根据认识概率,确定"猜猜看"游戏中学生出现的频率. 认识概率P = 识别的准确次数/(识别的准确次数+识别的错误次数) 原则1:认识概率 高的学生,在猜猜看游戏中出

c#课程设计---猜猜看游戏

1:游戏要求 1. 随机显示 一个名字 与 若干张相片(如3张).选择正确的相片. 2. 记录老师对每一个学生的认识概率P.并依据认识概率,确定"猜猜看"游戏中学生出现的频率. 认识概率P = 识别的准确次数/(识别的准确次数+识别的错误次数 a)   原则1:认识概率 高的学生,在猜猜看游戏中出现的频率相对低一些. b)   原则2:认识概率 低的学生.在猜猜看游戏中出现的频率相对高一些. c)   原则3:认识概率 100%的学生.也有出现的可能性. d)   原则4:认识概率 0

《JAVA程序设计》实训第一天——《猜猜看》游戏

课程实训是做一个猜猜看的小游戏.对于对代码不熟悉不了解的我来说的确挺难的.但是我还是会努力的. import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JButton; import javax.swing.JTextField; import javax.swing.JLa

《JAVA程序设计》实训第二天——《猜猜看》游戏

课程实训第二天,我在第一天的基础上去导入文件夹,第一天那时候一直修改都是修改不到,上网找了相关的知识,问了同学该怎么去导入显示图片. public class weiwei extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private JTextField tfDir; private JTextField tfClass; File[]

《JAVA程序设计》实训第三天——《猜猜看》游戏

基本的代码运行可以通过了.显示图片,猜猜看基本可以运行,游戏整体代码已经完成.就是统计猜对猜错次数那个还在努力,在查找中,不知能不能运行得了一个可以统计猜对猜错次数的猜猜看游戏. <pre name="code" class="java">import java.awt.EventQueue; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPane

《Java课程实习》日志(周四)猜猜看注释版

import java.awt.EventQueue; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.AbstractButton; import javax.swing.ImageIcon; import javax.swing.JButton; import

《JAVA课程设计》实训第四天——《猜猜看》游戏

第四天,本来想进一步去改进<猜猜看>游戏的,但是很多问题都不理解,也不熟悉怎么去弄到连接数据库,统计猜对次数,所以并没有进行再多的修改. 基本上就是这样的运行结果了 import java.awt.EventQueue; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.sw

【c#第六次作业】猜猜看游戏

以下是图片资料 以下是图片对应的名字,顺序要和图片一样 以下是界面设计 以下是源代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.

Rust初步(二):使用Visual Studio Code编写Rust程序(猜猜看游戏)

我是照着下面这篇帮助文档,完成了第一个完整的Rust程序: 猜猜看 游戏 http://kaisery.gitbooks.io/rust-book-chinese/content/content/3.1.Guessing%20Game%20%E7%8C%9C%E7%8C%9C%E7%9C%8B.html 我采用的开发工具是Visual Studio Code, 这应该是目前能找到的最"所见即所得"的编辑器了, 尤其对于我们这种重度Windows依赖症患者来说. 不过需要提出的是,我是在