作者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
推 MMAXo:推 06/09 04:04
推 MMAXo:提供一個,判斷輸入是否為數字,在 TextBox 檔掉即可 06/09 04:12