大学初学C#,再一次很无聊的考试中,会做的题全部做完,不会的想也没用。看看时间很有不少时间下考场,而又不想早走。无聊的时候突然有了这个想法,利用0~9这10个数字做点文章,可以简单的看看每次的运气。
一、设想
1、先随机产生一个0~9的数字。
2、当按键的值正好与这个数字相同时,显示分数,及运气等级。
二、做法
1、做一个简单界面,上面分布0~9这10个数字的按钮,及重置和退出按钮。
2、每按一个数字,会产生一个分数值,这个分数值会随着一定规则累计,而这个按钮的Enabled=false;
3、当点击的数字正好是随机产生的数字时,测试结束。结束后所有数字按键的Enabled属性变为false。
4、按“重置”按钮后恢复可用。
三、主界面的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SysFun.GameFun;
namespace MyGame
{
public partial class GameMainfrm : Form
{
public GameMainfrm()
{
InitializeComponent();
MessageBox.Show("欢迎使用运气测试!!\n祝您好运!!");
buf[0] = 100;
}
//YunQiGameFun fun = new YunQiGameFun();
Int32 i;
Int32 j = 1;
int count = 1;
//按钮按过与否标记
int[] buf = new int[10];
int result = YunQiGameFun.GetRadomNum();
/// <summary>
/// 按钮的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnNum_Click(object sender, EventArgs e)
{
string temp = sender.ToString();
//int a = temp.IndexOf(":");
//int b = temp.Length - a;
string btnText = temp.Substring(temp.IndexOf(":") + 2, temp.Length - temp.IndexOf(":") - 2);//按钮的文字
foreach (Control ctrl in this.tableLayoutPanel1.Controls)
{
if (ctrl.GetType().ToString().Equals("System.Windows.Forms.Button"))
{
if (btnText == "重置" || btnText == "退出")
{
if (btnText == "重置")
{
ReSetGame();
return;
}
else if (btnText == "退出")
{
this.Close();
}
}
else
{
try
{
i = Convert.ToInt16(btnText.ToString());
}
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
if (ctrl.Text.Trim() == i.ToString())
{
if (!YunQiGameFun.IsExsitBefore(buf, i, count))
{
if (YunQiGameFun.DoJudge(i, result))
{
if (count == 1)
{
string Score = (YunQiGameFun.DoAddFun(i, result) * count).ToString();
this.lblScore.Text = Score;
MessageBox.Show(SysFun.JudgeResult.Result.JudgeScore(Convert.ToInt32(Score), count));
GameComplete();
return;
}
else
{
this.lblScore.Text = (j * i * count).ToString();
MessageBox.Show(SysFun.JudgeResult.Result.JudgeScore((j * i * count), count));
GameComplete();
return;
}
}
else
{
j = YunQiGameFun.DoAddFun(j, i, count, result);
this.lblScore.Text = j.ToString();
buf[count - 1] = i;
count++;
ctrl.Enabled = false;
return;
}
}
else
{
//MessageBox.Show("这个键已经按过了!!!\n还想按啊?");
return;
}
}
}
}
}
}
private void 重置ToolStripMenuItem_Click(object sender, EventArgs e)
{
ReSetGame();
}
/// <summary>
/// 重置游戏数据
/// </summary>
public void ReSetGame()
{
count = 1;
j = 1;
lblScore.Text = "0";
result = YunQiGameFun.GetRadomNum();
for (int n = 0; n < 10; n++)
{
buf[n] = 100;
}
//buf[0] = 100;
GameReset();
}
private void btnReSet_Click(object sender, EventArgs e)
{
ReSetGame();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
helpBox hb = new helpBox();
hb.ShowDialog();
}
private void 设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("暂时没有这个功能!");
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// 游戏结束后数字按钮变灰
/// </summary>
public void GameComplete()
{
btnNine.Enabled = false;
btnEight.Enabled = false;
btnSeven.Enabled = false;
btnSix.Enabled = false;
btnFive.Enabled = false;
btnFour.Enabled = false;
btnThree.Enabled = false;
btnTwo.Enabled = false;
btnOne.Enabled = false;
btnZero.Enabled = false;
}
/// <summary>
/// 重置数字按钮
/// </summary>
public void GameReset()
{
btnNine.Enabled = true;
btnEight.Enabled = true;
btnSeven.Enabled = true;
btnSix.Enabled = true;
btnFive.Enabled = true;
btnFour.Enabled = true;
btnThree.Enabled = true;
btnTwo.Enabled = true;
btnOne.Enabled = true;
btnZero.Enabled = true;
}
}
}