QuickBasic程序版本。
Randomize Timer '随机化
Cls '清屏
Dim a(4),b(4) '定义数组
10 a = Int(Rnd * 9000)+1000 '产生一个数
aa = a '替身变量
a$ = Mid$(Str$(a),2) '去首部空格
For i = 4 To 1 Step -1 '此循环截位
a(i) = a Mod 10
a = a \ 10
Next
For i = 1 To 3 ’此循环判断是否有数字重复
For j = i + 1 To 4
If a(i) = a(j) Then 10 '若有数字重复,重新产生
Next j, i
For i = 10 To 1 Step -1 '有十次机会
s = 0 '"A"次数清零
v = 0 '"B"次数清零
Print i '打印还剩几次机会
20 Input"Input a number ", b '输入你的数
If b = 0 Then Print "The answer is";aa: End '若直接敲回车显示答案,同时游戏结束
For j = 4 To 1 Step -1 '截位
b(j) = b mod 10
b = b \ 10
Next
For j = 1 To 3
For k = j + 1 To 4
If b(j) = b(k) Then 20 '若有数字重复,重新输入
Next k, j
For j = 1 To 4
If a(j) = b(j) Then s = s + 1 '若条件满足,"A"加1
Next
For j = 1 To 4 '找"B"的个数
b$ = Mid$(Str$(b(j)), 2) '去首位的"0"
z = Instr(a$, b$) '寻找在你的数中和它的数相同的数字
If z <> 0 And a(z) <> b(z) Then v = v + 1 '找"B"
的个数
Next
If s = 4 Then Print "You are right!":End '如"A"=4表明全对,结束游戏
Print s;"A";v;"B" '打印"A"以及"B"的个数
Next
Print "Sorry, you are lost!" '没猜出来,结束
End |