【c#】24点游戏的实现(可存档且局域网互联)

          

(更新,附上此款游戏的源代码供大家学习吧!http://download.csdn.net/detail/gshengod/5774531

      lz辛苦考上了北邮的研究生,刚进入实验室,就接到了一个棘手的任务,被要求编写一个24点游戏,而且要可存档可局域网互联。对于我这个刚刚开始学习编程的菜鸟是个不小的挑战哭。好了,现在进入正题,大牛们可无视,小菜鸟们可以看过来,我将分享我的学习历程。

         首先是用vs2008进行界面方面的设计,建立form类的窗口,把工具箱打开,这样就可以实现向里拖拉一些按钮。然后可以自己搞一些图片加到背景image中,这样可以让程序看起来更好看。如下图。

接下来是比较复杂的代码部分了。

         先讲level1,是实现机器自动计算实现24点的运算。用random函数,可以实现出现四个随机数,我们要做的就是将它们加上括号或是加减乘除的按钮,让他们结果为24。这个主要是用的遍历的思想,因为我们可以将式子分为两种,一种是((a*b)+c+d)但括号形式。一种是两括号形式,(a+b)*(c-d)形式。

具体计算方法详见代码中的Randomnew.cs类。levle1如图


         level2是要求我们在得知四个数字的情况下,输入表达式,看是否为24.这个因为计算机读不动string中的符号,所以要用正则方法将数字与算数符分离,因为括号乘除加减等的优先级不同,所以要分别将其按不同的优先级入栈,在计算。具体可见我的代码中的类Algorithm.cs,这部分也可到这里下载看下http://download.csdn.net/detail/gshengod/5738011。至于存档读档,要用的数据流的知识

FileStreamfs=newFileStream("D:\\workplace\\save.txt",FileMode.Create,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
 。还有就是timer控件,对于倒计时方面主要代码

int time = int.Parse(arr[1]);
            lefttime = time;
            this.timer1.Start();

this.label7.Text = "剩余时间" + lefttime.ToString() ;
            lefttime--;
            if (lefttime == 0)
            {
                Randomnew b1 = new Randomnew();
                string answer = b1.compute(label2.Text, label3.Text, label4.Text, label5.Text);
                MessageBox.Show("time out,正确答案是" + answer);

level2图片如下:



             level3则是关于局域网互联的知识,主要是socket编程方面的应用,可以下载这个作为参考,这个代码写的很好http://download.csdn.net/detail/gshengod/5738067

嗯,就是这些吧,我还在改一些小bug,过两天会吧代码完整版发上来分享。



ps:大家有什么问题可以留言一起讨论哈!!!大笑






  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值