「ChatGPTはプログラムも書いてくれる」というので、BingのChatGPTにHit and Blowを書いてもらいました。
添削
Python: setでリファクタリングのコードと見比べてみます。勉強中とはいえ掘り下げが足りないなぁとか、もう少し柔軟に考えられないだろうかとか、いろいろ気付かされます。
random.sample()を使え
randomで数字作って重複チェックというやり方をしていました。
これ、
random.sample(range(10), 4)
で片付きますね。
判定処理
hitとblowの判定処理を別々に書いていました。
これ、blowを数えるときにhitも含まれてしまうからと、hitの数をわたしています。そもそも、分けて数えるのがよくなかったのでは?
for i in range(4):
if player_num[i] == com_num[i]:
hit_num += 1
elif player_num[i] in com_num:
blow_num += 1
で済みます。
エラーチェックは不十分?
本質的でないから省いた、というのはわかります。
ただ、実際に使おうとしたら、エラーチェックは重要です。結構とんでもないものを入力してくれたり、ディスクがいっぱいになっていて不可思議な異常が出たり、というのが現実です。
ChatGPTは確かにプログラムを書いてくれますが、「プログラマー不要」というのはまだまだ先なんじゃないでしょうか。
コメント