iT邦幫忙

0

VB20008猜數字(0A0B)

不太了解怎寫猜數字..
規則如:
輸入數字為 4位數
數字不能重覆
1A:為數字正確且位置正確
1B:為數字正確但位置有錯
結果可以顯示在Textbox裡,條列式輸出

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

8
wiseguy
iT邦超人 1 級 ‧ 2013-02-06 15:40:42

亂數產生4碼不重覆數字
迴圈開始
讀入 user 輸入四碼不重覆數字
A=0, B=0
比對 user 輸入與答案,是否有相同的數字,有則 B = 相同的個數
排序 user 輸入與答案之後再比對,是否有相同數字且位置一樣,有則 A++,B--
若 A = 4,則 user 猜中,跳出迴圈。否則秀出幾 A 幾 B
迴圈結束

看更多先前的回應...收起先前的回應...

強者如斯
也寫出不程式碼
因為所使用的開發工具是
VB20008
汗汗汗

總裁 iT邦好手 1 級 ‧ 2013-02-06 18:22:16 檢舉

想當年,這是我組合語言的作業...汗

有程式碼可以比對嗎?
寫了差不多了,還是想不出來=. =!

slime iT邦大師 1 級 ‧ 2013-02-06 22:58:47 檢舉

大家都沒有 VB 20008 , 所以可以拿您寫的給大家看看, 就邏輯上看看合不合理.

2
iverson68214
iT邦新手 4 級 ‧ 2013-02-22 03:59:07
<pre class="c" name="code">
#Python
import random
count = 0
digit = ('0123456789')
ans = ''.join(random.sample(digit, 4))
word = ''
print "*" * 5 + "猜數字遊戲" + "*" * 5
while 1:
    count += 1
    a, b = 0, 0 # 0A0B
    while 1:
        word = raw_input("請輸入一個4位數數字:")
        if len(word) == 4:
            break
        else:
            print "輸入錯誤!請重新輸入!"
    for i in range(4):
        if word[i] == ans[i]:
            a += 1
        elif word[i] in ans:
            b += 1
    print "%sA%sB" % (a, b)
    if word == ans:
        print "你答對了,總共輸入了%s次" % count
        break

我要發表回答

立即登入回答