看板 C_Sharp 關於我們 聯絡資訊
給你個程式碼吧 剛剛想了一下亂寫的 不過是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