2014-02-22 34 views
0

我想有一個時間限制,以便在下面的代碼中輸入輸入。換句話說,應該有一個定時器跟蹤時間,如果超過了限制,代碼應該自動打印出「遊戲結束」這樣的消息,而不必按任何鍵。這是一種彈出式窗口。如何在python中設置彈出時間限制?

def human(player, panel): 
    print print_panel(panel) 
    print 'Your Turn! , Hint: "23" means go to row No.2 column No.3/nYou got 1 min to move.' 
    start_time = time.time() 
    end_time = start_time + 60 
    while True : 
     move = raw_input('> ') 
     if move and check(int(move), player, panel): 
      return int(move) 
     else: 
      if (time.time() < end_time): 
       print 'Wrong move >> please try again.' 
      else: 
       print "Game over" 
       return panel, score(BLACK, panel) 
       break 

其他question幾乎是相同的,但答案不是我所期待的。我希望代碼在沒有點擊「ENTER」的情況下返回一條消息。

+0

我檢查了這個問題及其答案。我使用了建議的答案,但它仍然需要我按下輸入以檢查時間,如果時間不足,則返回「遊戲結束」。這已經應用於代碼。我希望代碼能夠跟蹤時間,並在點擊Enter之前彈出消息。 – msc87

+0

我想我需要設置一個事件來激發超時,然後處理程序打印正確的消息。信號類只能在Unix中工作。任何建議! – msc87

回答

1

最簡單的方法是使用curses模塊。您需要設置節點佈局(1)並輪詢輸入。 http://docs.python.org/2/howto/curses.html#user-input

+0

當我閱讀文檔時,它說getstr()函數是有限的,getch()返回一個與按下的ASCII碼相對應的整數。我的輸入是一個數字,如11,24左右,表示遊戲面板上的方塊。 – msc87

+0

您需要循環getch(),轉換爲ascii,例如:chr(getch()) – user590028

+0

是不是適用於Linux? – msc87

相關問題