找回密码
 加入
搜索
查看: 3616|回复: 8

[原创] 也来个简单的游戏吧——猜数字

  [复制链接]
发表于 2012-8-3 14:18:20 | 显示全部楼层 |阅读模式
这个难度不大,应该都能写出来。源码就不贴了,想看的自己反编译吧


规则,一个0-9999之间的随机整数,各位数字不重复。8次机会猜
8次机会满够用。来测测你的智商吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-8-3 18:04:41 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-8-3 21:54:04 | 显示全部楼层
回复 2# tryhi


    我也发现了这个问题,这是因为编写程序的人没有考虑数字位数不正确的情况。
1.当输入的数字位数少于4位时会报错。
2.输入非数字也会报错。
3.输入的数字大于4位只取前4位。
4.我猜了8次才猜出来一个~呵呵,运气不好呀。

这个游戏手机上玩过,只有无聊时打发时间。

评分

参与人数 1金钱 +20 收起 理由
tryhi + 20 +1

查看全部评分

发表于 2012-8-4 00:15:11 | 显示全部楼层
本帖最后由 tryhi 于 2012-8-4 17:14 编辑

用反编译你的时间还不如自己写一个


GUICreate("Form1", 540, 427, 192, 124)
$Input1 = GUICtrlCreateInput("", 169, 42, 138, 21,8192)
GUICtrlCreateLabel("输入不重复的四位数字", 33, 47, 124, 17)
$Button1 = GUICtrlCreateButton("开猜", 350, 39, 75, 25)
$Button2 = GUICtrlCreateButton("生成随机数", 353, 80, 75, 25)
GUISetState()
GUICtrlSetState($Button1,128)
Global $suiji,$cishu = 1
Global $Label[8]
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
        Case $Button2
                Global $string = '0123456789'
                        $suiji = ''
                        For $i =10 To 7 Step -1
                                $ss = StringMid($string,Random(1,$i,1),1)
                                $string = StringReplace($string,$ss,'')
                                $suiji &= $ss
                        Next
                        GUICtrlSetState($Button2,128)
                        GUICtrlSetState($Button1,64)
                Case $Button1
                        $tian = GUICtrlRead($Input1)
                        $tians = StringSplit($tian,'')
                        If $tians[0] <> 4 Then 
                                MsgBox(0,0,'请输入4位数字')
                                ContinueCase
                        EndIf
                        If StringRegExp($tian,'(.).*\1') Then 
                                MsgBox(0,0,'请输入不重复的数字')
                                ContinueCase
                        EndIf
                        $suijis = StringSplit($suiji,'')
                        Local $n = 0,$m = 0
                        For $i = 1 To 4
                                If StringInStr($suiji,$tians[$i]) Then $n+=1
                                If $tians[$i] = $suijis[$i] Then $m+=1
                        Next
                        If $m = 4 Then
                                cls('成功','答案正确')
                                ContinueCase
                        EndIf
                        $Label[$cishu-1] = GUICtrlCreateLabel("第"&$cishu&"次:"&$m&"个位置数字都正确,"&$n-$m&"个数字正确位置不对   ("&$tian&")", 34, 133+($cishu-1)*20, 402, 17)
                        $cishu += 1
                        If $cishu = 9 Then cls('游戏结束','正确答案:'&$suiji)
        EndSwitch
WEnd
Func cls($ti,$te)
        MsgBox(0,$ti,$te)
        Global $cishu = 1
        For $i = 0 To 7
                GUICtrlDelete($Label[$i])
        Next
        GUICtrlSetState($Button2,64)
        GUICtrlSetState($Button1,128)
EndFunc
发表于 2012-8-4 11:09:53 | 显示全部楼层
大海不错 鄙视楼主

评分

参与人数 1金钱 +10 收起 理由
tryhi + 10

查看全部评分

 楼主| 发表于 2012-8-6 13:11:38 | 显示全部楼层
嗯,自己写一个我也支持,鄙视我就不必了,本身难度就不大。大海高人,都用了正则,这个俺搞不懂。发着玩,要引起民愤的话,希望删帖。谢谢
 楼主| 发表于 2012-8-6 13:11:47 | 显示全部楼层
嗯,自己写一个我也支持,鄙视我就不必了,本身难度就不大。大海高人,都用了正则,这个俺搞不懂。发着玩,要引起民愤的话,希望删帖。谢谢
 楼主| 发表于 2012-8-6 13:12:16 | 显示全部楼层
嗯,自己写一个我也支持,鄙视我就不必了,本身难度就不大。大海高人,都用了正则,这个俺搞不懂。发着玩,要引起民愤的话,希望删帖。谢谢
 楼主| 发表于 2012-8-6 13:12:28 | 显示全部楼层
嗯,自己写一个我也支持,鄙视我就不必了,本身难度就不大。大海高人,都用了正则,这个俺搞不懂。发着玩,要引起民愤的话,希望删帖。谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-23 02:55 , Processed in 0.082920 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表