[英]Python - Sikuli & Hangman Game
我一直在嘗試制作a子手游戲,如果啟動“!hangman”命令,則將執行以下代碼:
def cmdHangman(event):
print("!hangman") #this print works
type("Game: Hangman")
type(Key.ENTER, Key.SHIFT)
Hangman.Playing()
Hangman.Playing()
會導致:
listOfWords = ["example", "says", "python", "rocks"]
guessWord = random.choice(listOfWords)
board = [" * " for char in guessWord]
alreadySaid = ""
class Hangman():
def Playing():
print("Playing") #print not showing
global guessWord, board, alreadySaid
whatplayersaid = hangmanRegion.text()
hangmanRegion.stopObserver()
if whatplayersaid in guessWord:
board = [char if char == whatplayersaid or char in alreadySaid else " * " for char in guessWord]
board = "".join(board)
type(board)
type(Key.ENTER)
else:
type("Nope")
type(Key.ENTER)
alreadySaid = alreadySaid + whatplayersaid
Hangman.PlayBuffer()
def gotoPlaying(event):
print("gotoPlaying") #print not showing
Hangman.Playing()
def PlayBuffer():
print("PlayBuffer") #print not showing
wait(1)
hangmanRegion.onChange(Hangman.gotoPlaying)
hangmanRegion.observe(FOREVER)
它應該使用hangmanRegion.text()掃描下一個聊天輸入中的字母,因此,如果該群組聊天中的某人鍵入:“ A”,則whatplayersaid
應該等於“ A”
奇怪的是,它甚至無法正常工作。 完全沒有 沒有錯誤日志或其他任何內容。 我嘗試將打印內容放置在class Hangman()
,但在日志中沒有看到任何打印內容。
有人可以找出我的代碼中的缺陷嗎? 是否未執行或Sikuli IDE是否出現故障? 還是我真的很累?
鍵入命令后登錄:
!hangman
[log] TYPE "Game: Hangman"
[log] ( Shift ) TYPE "#ENTER."
看來您的班級有兩件事是導致班級無聲地死亡。 當您調用Playing函數時,您嘗試直接調用它,而不是從類的實例中調用它。
另外(而且我可能還不喜歡這個,因為我仍在學習python我自己),一個類中的函數應該傳遞至少1個參數,通常是self。
如果您看下面的示例,可以看到我是否嘗試直接調用Hangman.Playing(),但出現錯誤,因為它不是實例。
相反,如果我創建一個實例x並從中調用它,則print語句成功執行。
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class Hangman:
... def Playing(self):
... print "Playing"
...
>>> Hangman.Playing()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method Playing() must be called with Hangman instance as first argument (got nothing instead)
>>> x = Hangman()
>>> x.Playing()
Playing
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.