作者lamda (恍惚)
看板C_Sharp
标题Re: [问题] C#猜数字程式
时间Mon Jun 8 10:28:30 2009
给你个程式码吧 刚刚想了一下乱写的 不过是VB的版本 自己转换去
Public Class Form1
Dim a As String = "1234"
'产生一个不重复的固定变数 可以自己改成乱数
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
lbl1.Text = "设定的数字是" & a
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'将产生的乱数存到阵列中以待比对
Dim aa(a.Length - 1) As String
For i = 0 To a.Length - 1
aa(i) = a.Substring(i, 1)
Next
'将输入的四位数字 存放到B阵列
Dim b = input.Text.ToString
Dim bb(b.Length - 1) As String
For i = 0 To b.Length - 1
bb(i) = b.Substring(i, 1)
Next
Dim ta As Integer = 0 '设定一个变数承接几A
Dim tb As Integer = 0 '设定一个变数承接几B
'比对两个阵列 同样阵列索引位置存放相同的值 代表是A
'反之 若阵列存放值相同 但索引不同 代表是B
For i = 0 To b.Length - 1
For j = 0 To a.Length - 1
If i = j Then
If bb(i) = aa(j) Then ta += 1
ElseIf i <> j Then
If bb(i) = aa(j) Then tb += 1
End If
Next
Next
MsgBox("你输入的数字有" & ta & "A" & tb & "B")
End Sub
End Class
这个程式 是针对出题目的数字是四位不同数字 且猜的数字四位都不同的情况下描述
如果待比对数字是 1234 你猜 1111 就会变成1A3B
接下来的问题就交给你解决吧......
※ 引述《cloudialove (cloudia)》之铭言:
: 游戏的玩法是先设定好一组数字,例如1428,然後让玩家去猜。
: 例如玩家猜了 8479 ,则输出 1A1B,其中A表示有这个数字,且数字是在正确的位置, B表示有这个数字,但位置不对;
: 因为数字4被猜对了位置也正确,而数字8被虽猜对了但位置不正确,所以得到1A1B。
: 请写一个程式,读入一个玩家猜数字的阵列(例如:1632、8614、8479、1428),然後分别输出其结果为几A几B。
: 老师出了这题目
: 看了很多例子
: 还是写不出来
: 拜托了大大们
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.21.161.253
1F:推 MMAXo:推 06/09 04:04
2F:推 MMAXo:提供一个,判断输入是否为数字,在 TextBox 档掉即可 06/09 04:12