背景
paizaさんから
一攫千金プログラミング〜ボットdeジャックポットというサービスが最近リリースされたんで遊んでみた。
ブラックジャックですね。
ブラックジャック
多分ルールぐらいはエンジニアの皆さんなら知ってそうですが、
21に数字を近づけるゲームです。
絵札は10としてカウントして
A(エース)は1or11としてカウントできるやつです。
二枚の手札が絵札と(10もか)Aの組み合わせの時のみ、ブラックジャックとして
他の合計21よりも強くなり、倍率も変わったりします(だっけ?)
22越えた瞬間バーストで負け。
同数値ならばディーラー(親)の勝ち。
というシンプルなやつです。
コーディング
これはpython3のサンプルコードなんですが、こんな感じ。
インプット情報が自分の手札だったり(後半は相手の手札情報だったり)する。
アウトプットで行動を決める。
# coding: utf-8
line_1 = input()
my_card = list(map(int, line_1.split(" ") ))
if my_card[0] == 0:
print("1") # 賭けチップ数
else:
if sum(my_card) < 10: # ★カードを引く条件の合計値を変えてみよう!★
print("HIT") # カード引く
else:
print("STAND") # 勝負
これにやれ、Aが来た時はどうする(1として入力される)、や相手の手札よりすでに強かったらどうする、とか、今二連勝中だから勝負にでる、やら検討してやっていくわけです。
たぶん。
感想
※最初の3ステージまでの感想です
運ゲーかよ、と思うなかれ。(最初は運の要素も強いですが)
コンピューター(相手)にはある程度の法則があり
(ただ、ステージが進むにつれ強さが変わますが)
得られる情報も多くなる。
なので、ちゃんと命令しておけば、ほっておいてもコインが増えるようになります。
楽しくプラグラミングが学べるのでいろんな言語でちょこちょこやってみるのもいいんでないでしょうか。
自分のコードが自爆したりするので楽しい。
ブラックジャックなのでできることも限られているし、
考慮することも限られているので、おそらく中堅以上のプログラマーの方には物足りなくなるんでないでしょうか。(後半ステージはすっげえのかもしれないですが)
逆にプログラマー初心者〜中堅の方は楽しく学習できるかと思います。
上位の人のコードもコインで閲覧可能なようですし。
感想(要望寄り)
- なんかもっさりすることがあるので、高速に回したいなあ。
入出力だけの表示モードとか、何戦も連続でできるモードがあったら楽なんですが。
(まあ、それだとほっとくとコイン数が跳ね上がるんで、性質上ダメですね)
100戦連続の結果で勝負、とかいいんでないでしょうか??
(勝率でランキング・・・まあ最後は運になりそうですが・・・)
入出力が常時画面上に出てると嬉しい。(試してないけど仕込めば出せるのかな?)
なんでだろう・・・・小さい数字が連続しすぎることが多い。
手札が、3,1,1,2,2,4,5
とか何回か見たぞ。
では、昼休みも終わるんでこの辺で。