はじめに
前提として、
・ストライクかボールのみの判定
(ファールはとりあえずなし)
・3球目のストライクで三振!アウトになる。
・4球目のボールでフォアボール。
コード例=================
s1 = ""
sk = 0
bl = 0
import random
for N in range(1,7):
if N <= 6:
print(N)
mylist = ["strike!", "ball!"]
s1 = random.choice(mylist)
print(s1)
if s1 == "strike!":
sk += 1
else:
bl += 1
if sk > 2:
print("三振!!アウト!!")
break
if bl > 3:
print("フォアボール!!")
break
これで出来ました。
まず、randomモジュールをimportします。
これを忘れてて時間を無駄にした。。
次に繰り返しのなかで処理していくのですが、
今回の場合投球数は最大6球なので第二引数は7です。
そして、["strike!", "ball!"]の要素をいれた
mylistという配列を作り、その中身からランダムに1つ取得して
それをstring型の変数s1に代入させています。
ここまでの処理では1から6までの数字と
strikeかballどちらかが出力されるはず。
次はif文が二つ並んでいますが、一つ目のif~elseでは
strikeとballボールのカウントをそれぞれしています。
初期値が0の変数をそれぞれ+1する。
そして次のif~elseで
ストライクが3つになったら三振、
ボールが4つでフォアボールと表示させ、
breakでループから抜けました。
繰り返し処理が、6まではされるのでループから抜けないと
strike
strike
strike
三振
ball
三振
ball
三振
、、、、、
の様に続いてしまいます。
コード自体はシンプルかなと思います。
アルゴリズムの部分で苦戦しました。。
今回新しく学んだこと
randomモジュールを初めて使いました。
他にもいろんなことができるみたいなので、
もう少し調べてみる。
あとはブレイク処理も完成した~と思っていたところから
うまくいっていなくて後から足した処理。
こういうやり方があるんですね。
おわり
毎日新しい発見があったり学んだことを
生かして新しい事が出来たり
小さな積み重ねですね。
このコードを使ってファールを足したり、
バッティングの結果を追加したりしようかな。