我試圖寫一個遊戲像井字棋或西洋跳棋/國際象棋的作品像這樣的遊戲管理器/控制器:Python腳本溝通
遊戲仲裁者:控制遊戲和繼電器對手的遊戲移動到每個玩家。還確定是否一個舉動是一個法律問題
GamePlayer.py
- 將發揮移動時仲裁者
GameArbiter.py
- 將決定哪個球員問先行
- 將決定是否合法
- 將保持到兩名球員
- 參考會詢問正確的球員轉會,並提供當前的遊戲狀態
我的問題是如何將仲裁者與玩家進行交流?我想使用PIPE.communicate(),但似乎只有當播放器在每個.communicate()請求後終止時纔有效。我的代碼是這樣:
GameArbiter.py:
import subprocess
import sys
player1 = subprocess.Popen([sys.executable, "GamePlayer.py"], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
instruction = "GetMove"
out, _ = player1.communicate(instruction.encode())
print(out.decode()) # process input from player
# do some stuff
instruction = "GetMove"
out, _ = player1.communicate(instruction.encode())
print(out.decode()) # process input from player
GamePlayer.py:
instruction = input()
if(instruction == "GetMove"):
print("Bc4xc5")
else:
print("InvalidInstruction")
課程的第二.communicate後()蟒崩潰因爲PLAYER1不再是開放文件
我的問題是我將如何寫(在Python中)一個代表誰可以積極地與多個孩子來回與異步異議?
抽象代碼來完成我的目標是一回事,但我不知道如何讓它在理論上起作用。這是第一 – Parad0x13