こんにちは。
インフラエンジニアの東海ねるです。
以前作った〇×ゲームのソースコードが冗長でとても長々しくなっていました。
<前回の記事はこちら>
〇と×を盤面に置く同じ処理を2回書いていたり、初期配置の表示だけwhile文の外にあって冗長になっていました。
ソースコードは綺麗にシンプルにスマートに賢く。がおじさんの遺言です。
この言葉がもうスマートではありませんでしたが、そこは気にしませんでした。
ということで、その辺を直してインデントとか色々直したソースコードがこちら!
# 超シンプルな〇×ゲーム!
# Coding = UTF-8
# 盤面を表示する関数
def show_field():
global stage
for line in stage:
for area in line:
print(area,end="")
print()
# 駒を置く関数
def set_piece(set_piece_turn):
global stage
input_x = int(input('x軸を入力(x:1-3)'))
input_y = int(input('y軸を入力(y:1-3)'))
if set_piece_turn % 2 != 0:
stage[input_x - 1][input_y - 1] = '〇'
else:
stage[input_x - 1][input_y - 1] = '×'
# 盤面の初期作成処理(3x3)、初期値設定
stage = [["□" for i in range(3)] for j in range(3)]
battle_result = 0
turn_num = 0
# ターン交代で〇と×を置いていく
while battle_result == 0:
turn_num = turn_num + 1
show_field()
set_piece(turn_num)
控えめに言って、超見やすくなりました。
大袈裟に言うと国宝並みに美しいソースコードになりました。
プログラムはただ動けばいいのではなく、こういった無駄のないソースコードにすることが大事ですよね。
ただ動くだけのプログラムなら猿でも書けるって言ってる人もいるレベルです。
もしかしたら、猫か犬だったかもしれません。忘れました。