Python(パイソン)入門3~乱数を利用した、じゃんけんゲーム作成など(生成AI・ChatGPT4も使用)
前回の2本目の記事から1ヶ月も経ってしまったが、人気のプログラミング言語「Python」(パイソン)の3本目の記事を書くことにしよう。 1本目の記事と2本目の記事は、次の通り。
Python入門1~人気プログラミング言語を高校教科書副教材とオンライン環境Bit Arrowで簡単に
Python入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用
最初から、高校の副教材『Python入門』(東京書籍,2022年)と、オンライン環境「ビットアロー」を使用。前回からは、対話型の生成AI、ChatGPT(model4)も参照。今回も、ChatGPT4を参照した。
これまでの感触だと、ネット情報の通り、GPT4のプログラミング能力は高い。というより、数ある能力の中で、プログラミングの能力が一番高いような気もする。全く間違えてないし、余裕を感じるのだ。
つい最近、GPT4は画像も扱えるようになった。試しに、Pythonの簡単なプログラムのJPEG画像を2枚見せたら、どちらも正確に説明。完全に読み取ってる。ただ、ちょっと回答のスピードが遅くなったから、まだ画像の読取は負荷が高いらしい。
☆ ☆ ☆
では、プログラミングの話に入ろう。数を1つ与えて、それが3か2の倍数なら、「3か2の倍数」と表示するプログラム。if文の条件に、論理演算子(=結合子)orを使う練習。
テキストでは、もっと半角スペースを多用してるが、面倒なので、上では少し省略。3の倍数という条件は、3で割った余りが0(x%3=0)と考えてる。x=9で実行した結果は、下の通り。
☆ ☆ ☆
次に、aとbの値をキーボードで入力して、a+bの計算結果を表示するプログラム。
普通に4とかインプットするだけだと、数ではなく文字として扱ってしまうので、足し算ができない。input関数で数字入力した後、int関数を使って、数へと変換する必要がある。入力の箇所の書き方(a->)は、おそらく色々あると思う。ここではテキストに従った。
実行して、aに5、bに8を入力すると、13という正答を表示した。
上のプログラムの画像を、ChatGPT4に入力すると、正しく説明して来た。画像の処理については、プログラミング以外も含めて、わりと近いうちに別記事を書く予定。ここでは簡単な報告に留める。
☆ ☆ ☆
続いて、1以上8未満の整数のうち、奇数をすべて表示させるプログラム。変数の範囲を示すfor文と、条件を示すif文を組み合わせる。「未満」というのがちょっと分かりにくい。この後の別のプログラムだと、「以下」になるので、余計に混乱する。
奇数は、2で割った余りが0でない(!=0)と考えた。「でない」という否定表現を使いたかっただけで、余りが1である(==1)と考えてもいいはず。1以上8未満の整数で実行すると、1、3、5、7と縦に並んだ。間を空けて横に並べる方法はまだ知らないが、GPT4に聞けばすぐ答えると思う。
上のプログラムの画像も、GPT4は正しく説明できた。
☆ ☆ ☆
そして、今回のメインである、じゃんけんゲーム。グーを0、チョキを1、パーを2で表現。相手(コンピューター)には、乱数を発生させるrandom.randint関数を使って、0以上2以下の整数のどれか1つを選ばせる(未満ではないので要注意)。自分は、どれか1つの数を入力。
まず、aite(相手)とjibun(自分)の手を示すだけのプログラムを実行して、1(チョキ)を入力。一番最初に、乱数を使うための準備として、randomモジュールという仕組みをインポートする。
上の場合、相手は2(パー)で、自分は1(チョキ)だから、勝敗は自分の勝ちとなる。この、じゃんけんの勝敗まで表示するプログラムは、例えば、次の通り。勝敗の決定には、if文を三重に使用。
勝ち負けの結果(result)は、(3+jibun-aite)%3の値で決めることが可能。最初に3をプラスするのは、マイナスを避けるため。
例えば、相手が1(チョキ)、自分が0(グー)なら、(3+0-1)%3=2%3=2で、自分の「勝ち」となる。テキストでは、結果を数で表すだけになってたので、勝敗は日本語で表示するように改良した。
3回やって、引き分けが2回続いた後、負けで終了。私は1(チョキ)、コンピューターは0(グー)だった。
☆ ☆ ☆
最後に、ChatGPT4を使用。まず、下のように、じゃんけんゲームに関して長めの説明を入力。自由にプログラミングさせてみた。この日本語の説明を素早く読み取って対応できるのは、素晴らしい能力だと感心。青・緑・赤・黄色・白・グレーの色分けも分かりやすい。「コンピューター」と「あなた」のじゃんけん。
プログラムの中に日本語の説明を加えて、グー、チョキ、パーという言葉も入れて、自分の入力が0、1、2のどれでも無い時にはエラー警告を出せる仕組みになってる。右に長く伸びてる部分はカット(省略)した。
勝ち負けの判定には、普通の場合分けを利用。勝ちは、自分が0(グー)で相手が1(チョキ)か、自分が1で相手が2(パー)か、自分が2で相手が0グーの時。・・・or・・・or・・・の形。丁寧なプログラムだが、人間にとってはやや長過ぎる気もする。
☆ ☆ ☆
上のプログラムを書かせた直後、私が書いたプログラムを入力してみた。画像ではなく、文字入力。すると、(3+jibun-aite)%3という処理まで正確に理解して、私の細かい入力ミスまで指摘して来た。やさしく、気を使いながら♪
私はうっかり、全角でプラスを入力してしまったのだ。普通のプログラミングのシステムなら、エラーとしてチェックして来る所を、優しくアドバイス。人間の先生でも、ここまでの配慮は難しい。
「注意していただきたいことがあります: 一部の環境では・・・正しく認識されないかもしれません。通常の半角の’+'を使用することをおすすめします」
☆ ☆ ☆
プログラミングの家庭教師として考えても、安くて優秀。長時間労働でも追加料金なし。円安が痛いだけ♪ 1ヶ月20ドルが、今の為替レート(1ドル、約150円)で3000円になってしまった。
というわけで、プログラミングでも画像関連でも、もっとGPT4を使って行く予定。それでは今日はこの辺で。。☆彡
(計 2636字)
| 固定リンク | 0
« 外資系FTIコンサルティングとジャニーズ事務所、「氏名」NG記者リストの感想&11km走、1km4分半バトル | トップページ | 飛び道具の駒(香・角・飛車)を後で並べる伊藤流の匠七段(20歳)、藤井七冠に完敗、風格では勝利♪~2023竜王戦・第1局 »
「プログラミング」カテゴリの記事
- Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)(2024.09.20)
- ps5.js Web Editor(Processing)のプログラミングでお絵描き、アニメーション作成~ 高校教科書『情報 II 』(東京書籍)(2024.08.22)
- Python(パイソン)入門3~乱数を利用した、じゃんけんゲーム作成など(生成AI・ChatGPT4も使用)(2023.10.06)
- Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用(2023.09.06)
- Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に(2023.02.28)
「AI」カテゴリの記事
- ノーベル物理学賞2024は人工ニューラル・ネットワークの機械学習の基礎、ChatGPT4oに感想を聞くと&秋雨ずぶ濡れラン(2024.10.09)
- 世界初(?)のミスAIはヒジャブ姿のモロッコ美女、日本ではほとんど話題にならず・・(2024.07.12)
- 株式時価総額でまもなく世界1位、AI半導体トップ企業・エヌビディアの優位性・将来性について、ChatGPT-4oと対話(2024.06.08)
- ChatGPT-4oが音声と画像認識を利用して家庭教師、三角関数(三角比)のsinを英語で教えるビデオ動画の解読(2024.05.18)
- 文章の指示(プロンプト)からリアルな動画を作成、オープンAIの生成AI「Sora(空)」をチェック(間違い探し♪)(2024.02.18)
コメント