pythonで本当に動くマルバツゲーム 48行
AI対戦のマルバツゲームのコードです。
文頭のスペースに注意してください。Pythonなので文頭のスペースにも意味があります。本当に動くコードを打ち切りましょう!
コードはこちらのブログに記載しました。
https://itoshi.main.jp/tech/2026/04/12/ai_typing/
コードはこちらのブログに記載しました。
https://itoshi.main.jp/tech/2026/04/12/ai_typing/
| 順位 | 名前 | スコア | 称号 | 打鍵/秒 | 正誤率 | 時間(秒) | 打鍵数 | ミス | 問題 | 日付 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | mako | 3597 | 情報学部生 | 3.7 | 96.7% | 286.0 | 1065 | 36 | 48 | 2026/04/12 |
関連タイピング
-
イカイカイカイカイカイカイカイカイカ
プレイ回数10万 短文3打 -
なんとあのキャラが出てくるんです・・
プレイ回数4895 305打 -
マイクラのいろいろな武器や物を超ーーー連打するよ!?
プレイ回数9874 長文211打 -
プレイ回数23万 歌詞かな138打
-
何かを長押ししてください。(隠し要素あり)
プレイ回数22万 長文442打 -
ウォーデンでも強いのに、超超超超巨大ウォーデンなんて......
プレイ回数14万 かな254打 -
悪魔執事と黒い猫の公式テーマソングです。
プレイ回数3818 歌詞かな658打 -
カリスマックスサビだけ
プレイ回数1233 歌詞かな117打
問題文
ふりがな非表示
ふりがな表示
(import sys, random)
import sys, random
(def p(b):)
def p(b):
( for i in (0,3,6):)
for i in (0,3,6):
( r=[b[i+j] if b[i+j]!=" " \)
r=[b[i+j] if b[i+j]!=" " \
( else "." for j in (0,1,2)])
else "." for j in (0,1,2)]
( print(" | ".join(r)))
print(" | ".join(r))
( if i<6: print("-" * 9))
if i<6: print("-" * 9)
(def main():)
def main():
( b=[" "]*9)
b=[" "]*9
( t="O")
t="O"
( w=[(0,1,2),(3,4,5),(6,7,8),)
w=[(0,1,2),(3,4,5),(6,7,8),
( (0,3,6),(1,4,7),(2,5,8),)
(0,3,6),(1,4,7),(2,5,8),
( (0,4,8),(2,4,6)])
(0,4,8),(2,4,6)]
( for i in range(9):)
for i in range(9):
( p(b))
p(b)
( try:)
try:
( if t=="X":)
if t=="X":
( v=None)
v=None
( for k in ("X","O"):)
for k in ("X","O"):
( for a,c,d in w:)
for a,c,d in w:
など
( L=[b[a],b[c],b[d]])
L=[b[a],b[c],b[d]]
( if L.count(k)==2 \)
if L.count(k)==2 \
( and " " in L:)
and " " in L:
( ix=L.index(" "))
ix=L.index(" ")
( v=[a,c,d][ix])
v=[a,c,d][ix]
( break)
break
( if v!=None:break)
if v!=None:break
( if v==None:)
if v==None:
( e=[j for j in \)
e=[j for j in \
( range(9) if \)
range(9) if \
( b[j]==" "])
b[j]==" "]
( v=random.choice(e))
v=random.choice(e)
( print(f"CPU(X): {v+1}"))
print(f"CPU(X): {v+1}")
( else:)
else:
( print("123/456/789(q:Quit)"))
print("123/456/789(q:Quit)")
( u=input(f"{t}:"))
u=input(f"{t}:")
( if u=="q":return)
if u=="q":return
( v=int(u)-1)
v=int(u)-1
( if b[v]!=" ":continue)
if b[v]!=" ":continue
( except:continue)
except:continue
( b[v]=t)
b[v]=t
( if any(b[a]==b[c]==b[d]==t \)
if any(b[a]==b[c]==b[d]==t \
( for a,c,d in w):)
for a,c,d in w):
( p(b);print(f"Win:{t}!");return)
p(b);print(f"Win:{t}!");return
( t="X" if t=="O" else "O")
t="X" if t=="O" else "O"
( p(b);print("Draw!"))
p(b);print("Draw!")
(if __name__ == "__main__":)
if __name__ == "__main__":
( main())
main()