24点小游戏

来源:互联网 发布:加工中心键槽怎么编程 编辑:程序博客网 时间:2024/05/21 22:58
这几天刚做的一个24点的小游戏,想必大家也不会陌生吧,呵呵。游戏本身是很简单的,算法也不复杂,但是在做这个东东的过程中一些细节还是值得回味的。现例举一二和大家分享。
1. 窗体打开和关闭时的渐显效果,也许第一次看到会觉得很神奇,其实也就是利用了Form窗体的Opacity属性,在Form的Load事件中添加两行代码:
     private void Form1_Load(object sender, System.EventArgs e)
    {
        loadTimer.Enabled = true;
        this.Opacity = 0.0;
   }
loadTimer一个计时器,其Tick事件代码如下:
    private void loadTimer_Tick(object sender, System.EventArgs e)
    {
        if (this.Opacity < 1.0)
        {
            this.Opacity += 0.08;
        }
        else
        {
            loadTimer.Enabled = false;
        }
   }
看,就是这么简单,窗体关闭的渐显效果可以在Form的Closing事件中添加以下代码:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{       
        while (this.Opacity > 0.0)
        {
            this.Opacity -= 0.03;
        }          
     }
      注意这个时候不能再用计时器了,因为窗体关闭前是不会让计时器有时间反复执行Tick事件中的代码的(我是这么想的,不知道对不对哈)。
2.既然是算24的游戏,当然离不开计算一个表达式的值,这个表达式在程序中往往以string的形式出现,也许学过数据结构的你会不假思索的想到用堆栈处理中缀表达式。这在数据结构中的确是个好方法,但是.NET的类库提供了更好更方便的方法,关键是看你能不能想到了。
我的方法是导入System.Data的命名空间,利用DataTable中的Compute方法计算表达式的值,此方法的原型如下:
object DataTable.Compute(string expression, string filter);
string expression 是要计算的表达式, string filter是要限制在表达式中进行计算的行的筛选器,这里可以把它设为空串””,此方法返回一个object类型,可以用Convert类的方法显式转换为需要的类型。另外该方法实现了异常处理,利用它你可以判断用户输入的表达式是否合法。
大概也就是这些了,毕竟是个简单的小游戏,心得一二,见笑了哈。
截图:
 
源代码下载:(不保证链接长期有效)
http://210.29.131.64/person/ml/private/24Points.rar
 
原创粉丝点击