VB.NET猜数字游戏例子思路和源码

偶然在贴吧看到有个学编程的学生说老师给出了个编程题,寻求帮助,
大致的题目:用一个按钮、一个文本框来实现一个猜数字的游戏,要求是电脑自己想出一个数字,然后玩的人输入自己想到的数字,然后软件来判断输入的数字和电脑想出的是否一致,如果输入的大了就提示大了,输入的小了就提示小了。
看到这个入门级的题,正好符合我这种刚学习的人,自感觉应该分分钟的事,无非就是几个判断嘛,于是随手写了出来;
也确实,这种题表面太简单了,就几句代码的事,但是写好后发现个小问题,就是如果是在一个按钮事件里,那么让系统给出的随机数就会随着点击按钮触发事件而重新定义,这样的话当玩家输入一个数字,软件给出提示的同时,电脑想出的随机数就又变了,这样就没有意义了;虽然这种情况可以用别的控件来产生随机数,然后让按钮调用,不过这样的话就不符合要求了,怎么在一个按钮中实现这个呢,其实很简单,就是用一个变量作为判断,最后轻松的写好了;
思路:定义一个整数型变量作为玩家输入到文本框的值,再定义一个静态变量作为记录猜数字的次数为-1,然后让这个次数在每次点击按钮后+1,再然后判断猜数字的次数是否大于0,如果大于0,就执行玩家输入的数字和电脑想出的数字的大小进行判断,如果猜的次数小于0,则给出一个随机数字,然后直接跳到按钮事件中默认执行一次,而玩家第一次点击按钮,次数就是-1+1,也就是等于0,那么就是给出一个随机数,然后自动再次触发按钮事件,这时候次数就会是0+1,那么就执行的是玩家和电脑的数字判断了;

20141223181729 20141223181814 20141223181824
代码如下:

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

VB.NET猜数字游戏例子思路和源码:目前有2 条留言

  1. 0楼
    尚吾网:

    爱你不是两三天,每月看你很多遍。

    2014-12-25 上午 9:21 [回复]
  2. 0楼
    久发网:

    再次来访,希望每次都有新鲜感。

    2015-01-19 下午 2:20 [回复]

发表评论


快捷键:Ctrl+Enter