墨者,tattooing!

Adark's Social Life!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

大学初学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;
}




}
}

posted on 2011-04-21 14:29  Adark  阅读(215)  评论(0)    收藏  举报