VB.NET猜数字游戏例子思路和源码
偶然在贴吧看到有个学编程的学生说老师给出了个编程题,寻求帮助,
大致的题目:用一个按钮、一个文本框来实现一个猜数字的游戏,要求是电脑自己想出一个数字,然后玩的人输入自己想到的数字,然后软件来判断输入的数字和电脑想出的是否一致,如果输入的大了就提示大了,输入的小了就提示小了。
看到这个入门级的题,正好符合我这种刚学习的人,自感觉应该分分钟的事,无非就是几个判断嘛,于是随手写了出来;
也确实,这种题表面太简单了,就几句代码的事,但是写好后发现个小问题,就是如果是在一个按钮事件里,那么让系统给出的随机数就会随着点击按钮触发事件而重新定义,这样的话当玩家输入一个数字,软件给出提示的同时,电脑想出的随机数就又变了,这样就没有意义了;虽然这种情况可以用别的控件来产生随机数,然后让按钮调用,不过这样的话就不符合要求了,怎么在一个按钮中实现这个呢,其实很简单,就是用一个变量作为判断,最后轻松的写好了;
思路:定义一个整数型变量作为玩家输入到文本框的值,再定义一个静态变量作为记录猜数字的次数为-1,然后让这个次数在每次点击按钮后+1,再然后判断猜数字的次数是否大于0,如果大于0,就执行玩家输入的数字和电脑想出的数字的大小进行判断,如果猜的次数小于0,则给出一个随机数字,然后直接跳到按钮事件中默认执行一次,而玩家第一次点击按钮,次数就是-1+1,也就是等于0,那么就是给出一个随机数,然后自动再次触发按钮事件,这时候次数就会是0+1,那么就执行的是玩家和电脑的数字判断了;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim linli As Integer Static i As Integer = -1, jilu Static suiji As New Random i = i + 1 linli = TextBox1.Text If i >= 4 Then MessageBox.Show("次数已用尽,现在重新开始,系统已重新给出数字") i = -1 Else If i > 0 Then If linli > jilu Then MessageBox.Show("错误,输入的大了,你已经猜了" & i & "次") End If If linli < jilu Then MessageBox.Show("错误,输入的小了,你已经猜了" & i & "次") End If If linli = jilu Then MessageBox.Show("恭喜你,输入的正确,仅用了" & i & "次,现在重新开始") i = -1 End If Else jilu = suiji.Next(1, 10) Button1_Click(sender, e) End If End If End Sub End Class |
可能我写的代码太随便,也不太规范,不过已经能够表达出思路了,也是因为刚接触vb.net,很多函数还没去看,用的方法在专业人士眼中也许是不可取的,但编程就是如此,当你学到深处时候就会有更简单更规范的方法去实现,一个小小的功能可以有几种或几十种解法,这个简单的猜数字也是如此,也是有多种方法;
编译好的例子下载地址:http://pan.baidu.com/s/1i31iWS1
爱你不是两三天,每月看你很多遍。
2014-12-25 上午 9:21再次来访,希望每次都有新鲜感。
2015-01-19 下午 2:20