Bulls and Cowsという英語版のゲームBulls and Cowsのバージョンを作成します。 ここで2人間のオリジナルゲームのルールを読むことができます 。
ゲームのルール:
- エンジンは数字を偽造します。これはnであり、数字は繰り返せません。 エンジンはプレーヤープログラムに番号nを伝えます
- プレーヤープログラムは特定の番号を想定し、そのエンジンに通知します
- エンジンは、プレーヤープログラムの数のうち、考えられる位置に何桁あるか(Bulls)、および位置に入れないが何個あるか(牛)をプレーヤープログラムに通知します。
- 番号が推測されない場合は、手順2に戻ります
プレーヤープログラムは、stdin / outを介してエンジンと通信します。 仕様では、エンジンは引数として渡されたプレーヤープログラムを実行すると想定しています。
エンジン
最初に、機能部分を作成します。
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
Copy Source | Copy HTML #!/usr/bin/python import random class Game (object): def __init__ (self, number= 6 ): if number > 10 : exit() self .number = number self .secret = self . make_secret ( self .number) self .main() def is_right_secret (self, secret): """check all digits are different""" dct = {} for digit in secret: try : if dct[digit]: return False except KeyError: dct[digit] = True return True def make_secret (self, number): """generate number-counted secret""" while True: result = "" for i in range (number): result += "%d" % random .randint( 0 , 9 ) if self . is_right_secret (result): return result
ここで、プレーヤープログラムが推測する数を考えます。 また、番号内のすべての番号が異なることを確認します。 次に、メインプログラムループであるGame.mainを起動します。
また、牛と牛を数える機能を追加する必要があります。
Copy Source | Copy HTML
- def count_bulls_cows (self、number、secret):
- 「」「牛と牛の数を数える/秘密にする」「」
- 牛、雄牛= 0、0
- dct = {}
- 範囲内の i( len (秘密)):
- 秘密[i] ==数[i]の場合:
- 雄牛+ = 1
- その他 :
- dct [secret [i]] = True
- 試してください :
- if dct [number [i]]:
- 牛+ = 1
- KeyError を除く :
- 合格する
- 雄牛、牛を返す
次に、プレーヤーや他のいくつかのユーザーとプログラムと通信するためのコードワードを示す定数を紹介します。
Copy Source | Copy HTML
- MESS_NUMBER_DIGITS = "number_digits"#開始 メッセージ
- MESS_GUESS = 「推測!」
- MESS_COWS = "cows:" #一致する数字が異なる位置にある場合、それらは "cows"
- MESS_BULLS = " bulls :" #一致する数字が正しい位置にある場合、それらは「bulls」です
- MESS_BULLS_COWS_SPLIT = "|" #牛と雄牛の間のスプリッターメッセージ
- MAX_TURN_NUMBER = 1000
次に、メイン()でゲームプレイについて説明します(デバッグメッセージを引用)
Copy Source | Copy HTML
- def main (自己):
- 自己 .playersのプレーヤーの場合:
- player.connect()
- player.send( "%s%d" %(MESS_NUMBER_DIGITS、 自己 .number))
- 印刷 ( 「%s%d」 %(MESS_NUMBER_DIGITS、 自己 .number))
- starttime = time 。 時間 ()
- Trueの場合:
- player.turns> MAX_TURN_NUMBERの場合 :
- print ">>>>プレイヤー '%s'はタイムアウトになります" %player.name
- player.disconnect()
- 破る
- answer = player.recieve()
- print ">>>> Answer is%s" %answer
- len ( self .secret)!= len (答え):
- self .stop_game( "間違った番号" )
- 雄牛、雌牛= self .count_bulls_cows(答え、 self .secret)
- bulls == self .numberの場合 :
- player.time = time 時間 ()-開始時間
- player.send( "%s" %MESS_GUESS)
- player.disconnect()
- 「>>>> Player disonected」を 印刷
- 破る
- その他 :
- player.turns + = 1
- player.send( "%s%d%s%s%d" %(MESS_BULLS、bulls、\
- MESS_BULLS_COWS_SPLIT、MESS_COWS、牛))
- print ( ">>>>%s%d%s%s%d" %(MESS_BULLS、ブル、\
- MESS_BULLS_COWS_SPLIT、MESS_COWS、牛))
- 勝者= self .players [ 0 ]
- 自己 .playersのプレーヤーの場合:
- player.turns <winner.turnsの場合 :
- 勝者=プレーヤー
- print ">>>>勝者名:%s" % 勝者名
ここではすべてが明確です。 各プレイヤーと交互にプレイします。 まず、隠し番号の桁数を送信します。 時間に注意してください。 推測していない場合は、プレイヤーの推測数を受け入れます(雄牛の数は数字の桁数に等しくありません)-雄牛/牛の数を送信し、動きの数を増やします。次のものに行きます。
最後に、勝者を選択します。
Playerクラスのプレーヤープログラムのプロセスとの接続方法を説明しましょう。
Copy Source | Copy HTML
- クラス Player (オブジェクト):
- def __init__ (self、name、progname):
- self .name = name
- self.turns = 0
- self .time = -1
- self .progname = progname
- def connect (self):
- self .__ proc = subprocess .Popen( self .progname、stdin = subprocess .PIPE、\
- stdout = サブプロセス .PIPE)
- def send (self、sendstring):
- self .__ proc.stdin.write(送信文字列+ '\ n' )
- def recieve (self)
- self .__ proc.stdoutを返します。 readline ().strip( '\ n' )
- def disconnect (自己)
- self .__ proc.terminate()
Game .__ init__を少し書き換えて、プレーヤーを初期化します。
Copy Source | Copy HTML
- def __init__(self、number、players_progs):
- 数値> 10の 場合 :
- 終了()
- self .number = number
- self .secret = self .make_secret( self .number)
- self .players = []
- players_progsのplayernameの場合:
- self .players.append(プレーヤー(playername、players_progs [playername]))
- 自己のメイン()
ダムボット
次に、結果をテストする必要があります。 テストには、最も単純なプレーヤープログラムが必要です。 api-実際のプレーヤープログラムが継承されるクラス
プロジェクトフォルダーにapiサブフォルダーを作成し、その中にmooapi.pyファイルを作成します。
Copy Source | Copy HTML
- #!/ usr / bin / python
- ランダムにインポート
- インポートシステム
- MESS_NUMBER_DIGITS = "number_digits"#開始 メッセージ
- MESS_GUESS = 「推測!」
- MESS_COWS = "cows:" #一致する数字が異なる位置にある場合、それらは "cows"
- MESS_BULLS = " bulls :" #一致する数字が正しい位置にある場合、それらは「bulls」です
- MESS_BULLS_COWS_SPLIT = "|" #牛と雄牛の間のスプリッターメッセージ
- クラス MooPlayer (オブジェクト):
- ##技術的な機能
- def send (self、st):
- sys .stdout.write( "%s \ n" %st)
- sys .stdout.flush()
- def recieve (self):
- sys .stdinを返します。 readline ().strip( "\ n" )
- def number_split (self、st):
- num = st.split( '' )
- num [ 0 ] == MESS_NUMBER_DIGITSの場合:
- return int (num [ 1 ])
- その他 :
- 終了()
- def answer_split (self、st):
- 試してください :
- ブルスト、カウスト= st.split(MESS_BULLS_COWS_SPLIT)
- ValueError を除く :
- 終了()
- 雄牛、牛= bullst.split( '' )、cowst.split( '' )
- 雄牛[ 0 ] == MESS_BULLS および雌牛[ 0 ] == MESS_COWSの場合:
- 雄牛[ 1 ]、牛[ 1 ]
- その他 :
- 終了()
- def main (自己):
- self .number = self number_split ( self。recieve ())
- Trueの場合:
- 試してください :
- self .oldguess = guess
- guess = self 。 推測 (牛=牛、雄牛=雄牛、firstrun = False)
- NameError を除く :
- guess = self 。 推測 (firstrun = True)
- 自己 。 送信 ( 推測 )
- answer = self 受け取る ()
- 回答== MESS_GUESSの場合 :
- 終了()
- その他 :
- 雄牛、牛= 自己 。 answer_split (回答)
- ##いくつかの機能
- def is_right_secret (self、secret):
- 「」「すべての数字が異なることを確認」「」
- dct = {}
- 秘密の数字:
- 試してください :
- dct [数字]の場合 :
- 偽を返す
- KeyError を除く :
- dct [digit] = True
- 真を返す
- def generate_number (self、number):
- 「」「数えられた秘密を生成する」「」
- Trueの場合:
- 結果= ""
- 範囲内の iの場合(数値):
- result + = "%d" % random .randint(0、9)
- 自己の 場合 。 is_right_secret (結果):
- 結果を返す
- #############主な推測関数############
- def guess (self、firstrun、bulls = 0 、cows = 0 ):
- "" "これは主要なAPI関数です。Firstrunは、初回実行であることを意味します。 <br/> 雄牛/雌牛は、前回からの雄牛と雌牛の数です。 <br/> また、次のものがあります 。 -桁数 <br/> self.oldguess-古い推測は <br/> "" "を 試してください
- 自己を 返す 。 generate_number ( self .number)
- __name__ == "__main__"の場合 :
- mooplayer = MooPlayer ()
- mooplayer。 メイン ()
ここではすべてが単純です。コードの一部はエンジンモジュールからコピーされ、分析は行われず、乱数によって推測されます。
プレーヤープログラムを作成する場合は、mooapiモジュールをインポートし、MooPlayerからクラスを継承し、MooPlayer.guess()関数をオーバーライドする必要があります。
エンジンモジュールをインポートしなかった理由-明確にするために、他のプログラミング言語のapiを作成するユーザーに。
これで、プレーヤープログラムを実行し、それを使って雄牛と牛を再生できます。
>>number_digits 4
5032
>>bulls: 0|cows: 0
4123
>>bulls: 0|cows: 0
2890
>>bulls: 0|cows: 0
2691
>>guess!
(>>)はキーボード入力を示します
打ち上げ
エンジンモジュールの最後に追加します。
Copy Source | Copy HTML
- __name__ == "__main__"の場合 :
- game = Game( 2 、{ 'Player1' : "api / mooapi.py" 、 'Player2' : "api / mooapi.py" 、 'HabraMan' : "api / mooapi.py" })
これにより、2桁の数字、同じapi / mooapi.pyプログラムを持つ3人のプレーヤーでゲームが起動します。 二桁の場合-これは、私たちの愚かなプログラムが推測できるようにするためです。
エンジンモジュールを実行します。
>>>> bulls: 0|cows: 1
>>>> Answer is 67
>>>> bulls:1 cows:0
>>>> bulls: 1|cows: 0
>>>> Answer is 87
>>>> bulls:0 cows:0
>>>> bulls: 0|cows: 0
>>>> Answer is 49
>>>> bulls:0 cows:0
>>>> bulls: 0|cows: 0
>>>> Answer is 54
>>>> bulls:0 cows:0
>>>> bulls: 0|cows: 0
>>>> Answer is 82
>>>> bulls:1 cows:0
>>>> bulls: 1|cows: 0
>>>> Answer is 21
>>>> bulls:0 cows:0
>>>> bulls: 0|cows: 0
>>>> Answer is 62
>>>> bulls:2 cows:0
>>>> Player disconected
>>>> Winner name: HabraMan
うまくいく!
次の投稿では、プログラムを便利にする方法を説明します-コマンドラインの引数を解析し、xmlのすべての良さを表示するように固定します。
プログラムの全文へのリンク
エンジンの喜びは、現在作成中のマルチユーザーサイトにねじ込むことができることです。
ボットにHon。Knut アルゴリズムを最初に実装することができます。