最近無聊上班太無聊
所以開始研究些有的沒的東西
於是想說研究看看電腦猜數字的程式的演算法是怎麼做到的
昨天大概想了一下還是不知道該如何下手
於是上Google找了一下...結果還真的是很多丫....
而且還人家還附上原始碼呢!!
參考網址:http://www.javaworld.com.tw/jute/post/view?bid=35&id=35423&sty=1&tpg=1&age=0
其實這方法的邏輯非常的簡單...
只分幾個步驟如下
Step1:
產生一個陣列存放所有可能的答案
如:{0123,0124,0125,.......,9875,9876}
Step2:
從所有可能中找出一個數來猜
如:第一個0123
Step3:
由玩家所填入的?A?B去判斷所有答案中符合這條件的所有的數
因為....由正解和你猜的數分析會是?A?B那也表示反推也是一樣的答案
然後將不符合條件的數設為-1
如:假設答案是5432
則0123得到0A2B
如果把0123當解答的話 你猜5432得到的也是0A2B
所以說你現在是反推的方式去想...只有和0123比較會得到0A2B的數才有可能是解答
也就是說其他不可能的數就可以刪除掉了
Step4:
重覆Step2~Step3就可以很快的得到答案了
所以一切就是這麼的簡單....
2008年8月22日 星期五
[Python]用DBus和Pidgin通訊
要用Python呼叫正在執行中的Pidgin其實非常的簡單
只要你的Pidgin的DBus的Function正常執行
可以用這行程式檢查
這是監聽DBus上由"im.pidgin.purple.PurpleInterface"所發出的訊號
看得到回應就是有,看不見就是沒有
如果你的DBus Function正常執行的話
你只要在Python 的前面import 進dbus
再加點設定就OK了
就像這樣
接著就能在程式中呼叫pidgin中的Dbus函式了
如以下是一個登入的function
其他的參考資訊可在Pidgin官網查到
http://developer.pidgin.im/wiki/DbusHowto
只要你的Pidgin的DBus的Function正常執行
可以用這行程式檢查
$dbus-monitor type=signal interface="im.pidgin.purple.PurpleInterface"
這是監聽DBus上由"im.pidgin.purple.PurpleInterface"所發出的訊號
看得到回應就是有,看不見就是沒有
如果你的DBus Function正常執行的話
你只要在Python 的前面import 進dbus
再加點設定就OK了
就像這樣
import dbus bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
接著就能在程式中呼叫pidgin中的Dbus函式了
如以下是一個登入的function
def login(account_protocol, account_name, account_pass):
account = purple.PurpleAccountNew(account_name, account_protocol)
purple.PurpleAccountSetPassword(account, account_pass)
purple.PurpleAccountsAdd(account) purple.PurpleAccountSetEnabled(account,"gtk-gaim",1)
purple.PurpleBlistSetVisible(1)
其他的參考資訊可在Pidgin官網查到
http://developer.pidgin.im/wiki/DbusHowto
訂閱:
文章 (Atom)