2024年06月12日

数当てゲーム

プロンプト:
次のような数字当てゲームのプログラムをPythonで作成して下さい。
ルール:
3けたの数字を当てるゲーム。
 それぞれの桁の3つの数字は重複してはいけない
 プログラムは、乱数で特定の3桁の数字を保持する。
 ループ:
  ユーザーは、プログラムの保持する数字を予想して入力する。
  もしユーザーの入力した3桁の数字がプログラムの保持する数字と一致していたら、ループをぬける。
  プログラムは、その予想した3桁の数字で
   桁と数字が合致しているものの数nと
   数字はあっているが桁が違うものの数mを
   「nストライクmボール」と表示する。
    # 例えば、プログラムの保持する数字が432でユーザの入力が402なら「1ストライク1ボール」
    # それぞれ312と321なら「1ストライク2ボール」
 
 「おめでとう!正解です。」と表示して終了する。

-------
Python

import random

# ランダムな3桁の数字を生成
secret_num = [str(random.randint(0, 9)) for _ in range(3)]

# ゲームループ
strike = 0
ball = 0
while True:
  # ユーザー入力を3桁のリストに変換
  user_num = [str(num) for num in input("3桁の数字を入力してください: ")]
  # ストライクとボールをカウント
  for i in range(3):
  if user_num[i] == secret_num[i]:
  strike += 1
  elif user_num[i] in secret_num:
  ball += 1

  # ゲーム結果を表示
  print(f"{strike}ストライク {ball}ボール")
  # 正解判定
  if strike == 3:
    print("おめでとう!正解です。")
    break

Use code with caution.
説明:
random モジュールをインポートして、ランダムな数字を生成するための機能を使います。
secret_num リストに、ランダムに生成された3桁の数字を文字列として格納します。
ゲームループに入ります。
ユーザーに3桁の数字を入力させ、user_num リストに格納します。
strike と ball 変数を初期化します。
for ループで、ユーザー入力と正解数字を比較します。
一致すれば strike を1増やします。
一致しなくても、正解数字の中に含まれていれば ball を1増やします。
strike と ball の値を使って、"nストライクmボール" の形式でゲーム結果を表示します。
strike が3になったら、ユーザーが正解したことを示すメッセージを表示してループを抜けます。
補足:
このプログラムは、基本的な機能のみを実装しています。
より高度な機能を追加するには、以下のような改良が可能です。
制限回数を設けて、制限回数内に正解できなければゲームオーバーにする。
ヒント機能を追加する。
過去のプレイ履歴を記録する。
このプログラムは、初心者向けに分かりやすく記述されています。
ご参考になれば幸いです。
--------
使用AI:Google Gemini / 画像生成:Microsoft Designer

(注釈)
仕様書からプログラムを作成することができるかを、簡単な数当てゲームを例に試しました。
結論、どのAIも動くソースコードを作成しました。
今回採用したのはGoogle Geminiのものですが、その理由は「動くがバグがある」からです。
ストライクとボールの変数に0を代入する場所が間違っていて、くり返し数字を入力するごとにストライク数とボール数が加算されてしまいます。AIの生成したプログラムはまだ発展途上のようですが、ほとんど正解のプログラムを作ってくれるのは時間節約の点から助かります。
何故かこの対話を英訳した英語版では、しれっとソースコードのバグが修正されていました。
また、ChatGPTもMicrosoft Copilotも、関数を多用したソースコードだったのに対してGoogle Geminiは初心者でもわかりやすいソースコードでした。

参考までに英語版はこちら
posted by くまのおっさん at 07:00| Comment(0) | TrackBack(0) | AIに書かせてみた | 更新情報をチェックする

2024年06月11日

ピザ太郎

昔々、ある小さな村に、仲睦まじい老夫婦が住んでいました。夫は穏やかで心優しい男、妻は料理の腕が抜群で、村中の人々に愛されていました。ある日、妻が特製のピザを焼いていると、突然そのピザが光り輝き始めました。驚いてピザを見つめると、その輝きの中から一人の男の子が生まれました。
「おお、なんということだ!」と夫は驚き、「この子をピザ太郎と名付けよう!」
ピザ太郎はすくすくと成長し、その異常な力と俊敏さから村中の注目を集めました。彼はやがて冒険の旅に出ることを決意し、旅立ちの日、老夫婦は彼に大きなピザを持たせました。
「これを持っていきなさい。お供を見つけるためのものですよ」と妻は微笑みました。
ピザ太郎はまずイタリアへと向かいました。そこで彼はクマにまたがり、名高い武道の師匠から修行を受けました。彼の技はますます磨かれ、強さは一層際立ちました。修行の途中、彼はピザの香りに誘われた犬、サル、そしてキジと出会い、彼らをお供として仲間に迎え入れました。
ある日、ピザ太郎とその仲間たちは海岸を歩いていると、一匹の亀がいじめられているのを見つけました。ピザ太郎はすぐさま駆け寄り、亀を助けました。感謝した亀は、「お礼に竜宮城へお連れします」と言いました。
亀に導かれ、ピザ太郎たちは竜宮城へと向かいました。竜宮城は美しく、豪華な宴が続く日々でした。ピザ太郎はその生活に心から楽しんでいました。しかし、ある夜、彼は偶然に恐ろしい真実を知ることになりました。竜宮城は実は海賊行為を行う鬼のアジトだったのです。
ピザ太郎は鬼の悪事を許すことができませんでした。彼は仲間たちと共に立ち上がり、壮絶な戦いを繰り広げました。鬼たちは次々と倒され、ついに竜宮城は平和を取り戻しました。鬼から奪った金銀財宝を持ち、ピザ太郎は誇らしげに故郷の村へ帰ることにしました。
しかし、故郷に戻った彼を待っていたのは驚愕の事実でした。ピザ太郎が竜宮城で過ごした時間は、実に300年もの歳月が経っていたのです。村はすっかり様変わりし、彼が知っている人々はすでにこの世にいませんでした。老夫婦も、彼の思い出の場所も、すべてが消え去っていました。
失意の中、ピザ太郎は村の端に佇みました。彼は自分の存在意義を問いかけました。すべてを失い、孤独な彼の目に涙が溢れました。どんなに強くても、どんなに財宝を持っていても、彼の心の空虚さは埋められませんでした。
夕暮れの村の風景を見つめ、ピザ太郎は静かに立ち去りました。彼が向かう先は誰も知りません。彼の冒険は終わりを迎え、彼の心には悲しみだけが残りました。
--
ピザ太郎の冒険は、華やかでありながらも哀しみに満ちたものでした。彼の存在は村の伝説として語り継がれ、彼の勇敢さと悲劇的な結末は、後世に深い教訓を与えました。


--------
使用AI:ChatGPT-4o / 画像生成:Microsoft Designer

(注釈)
AIの書く物語は今まで全てハッピーエンドでした。そこで、前日の「すし太郎」のプロンプトと内容は全く一緒で、最後に「但し結末は悲劇にすること」と指示した物語を書いてもらいました。
この結果、採用したChatGPTを含め、生成AIも悲劇を書けることが分かりました。ただし、どのAIも悲劇的な結論に対して「愛と勇気」とか「伝説」「教訓」などのポジティブなフォローを入れています。
この辺が「ポジティブ強迫症」的で私は好きではありませんが、もしかすると何らかの自主規制なのかもしれません。

posted by くまのおっさん at 07:00| Comment(0) | TrackBack(0) | AIに書かせてみた | 更新情報をチェックする

2024年06月10日

すし太郎

昔々、ある山里に心優しい老夫婦が住んでいました。ある日のこと、おばあさんがちらし寿司を作っていると、そのちらし寿司が突然光り輝き始めました。驚いた老夫婦が見守る中、光の中から元気な男の子が現れました。彼らはその男の子を「すし太郎」と名付け、大切に育てることにしました。
すし太郎は日々成長し、力強く賢い少年になりました。ある日、すし太郎は武道を学ぶために築地に行くことを決意しました。築地には伝説のクマがいて、そのクマに武道を教わることができると言われていました。すし太郎は老夫婦に別れを告げ、冒険の旅に出ました。
築地に到着したすし太郎は、巨大なクマに出会いました。最初は恐れていたすし太郎でしたが、クマが武道の達人であり、彼の師となることを知ると、すぐに学び始めました。すし太郎はクマにまたがり、厳しい修行を重ね、やがて武道の達人となりました。
武道の技を身につけたすし太郎は、再び旅に出ることにしました。彼はちらし寿司を作り、それを食べた犬、サル、キジがお供になりました。彼らはすし太郎の力強さと優しさに感動し、一緒に冒険することを誓いました。
ある日、すし太郎たちが海岸を歩いていると、亀が数人の悪者にいじめられているのを見つけました。すし太郎はすぐに駆けつけ、悪者たちを追い払い、亀を助けました。助けられた亀は深く感謝し、すし太郎に竜宮城へ連れて行くことを提案しました。
すし太郎とそのお供たちは、亀に連れられて海の中の竜宮城へ向かいました。竜宮城は美しく、楽しい音楽と踊り、美味しい料理がいつも用意されていました。すし太郎は竜宮城での日々を楽しみ、時の経つのも忘れて過ごしました。
しかし、すし太郎は次第に竜宮城の異常さに気づき始めました。夜になると城の中から奇妙な音が聞こえ、住人たちの動きが不自然に思えました。ある晩、すし太郎はこっそりと城内を調べることにしました。そして、彼は驚くべき真実を知ることになりました。竜宮城は実は鬼たちのアジトであり、海賊行為を行っていたのです。
すし太郎は、お供の犬、サル、キジと共に、鬼を退治することを決意しました。彼らは力を合わせて戦い、ついに鬼たちを打ち倒すことに成功しました。すし太郎は鬼たちが隠していた金銀財宝を見つけ、これを持って故郷の村に帰ることにしました。
竜宮城を後にし、すし太郎たちは再び地上へ戻りました。すし太郎は得意顔で村へ戻りましたが、そこには見知らぬ風景が広がっていました。村の人々も知らない顔ばかりでした。驚いたすし太郎が周囲に尋ねると、なんと彼が竜宮城にいた間に300年もの時が流れていたのです。
すし太郎は失われた時間に愕然としましたが、それでも村のためにできることを考えました。彼は持ち帰った金銀財宝を使って村を再興し、かつてのように繁栄させることを決意しました。すし太郎の強い意志と行動力で、村は再び活気を取り戻し、人々は幸せに暮らすようになりました。
こうして、すし太郎は新たな時代でも英雄として語り継がれる存在となりました。彼の冒険と勇気、そして愛情深い心は、村の人々に永遠に記憶されることとなったのです。

--------
使用AI:ChatGPT-4o / 画像生成:Microsoft Designer

(注釈)
今回は、日本の昔話を寄せ集めた物語を書いてもらいました。
なお、プロンプトでは「すでに300年が経過していた。」までしか指示していませんが、AIが勝手にハッピーエンドを作っています。
この特性は紛れもなくアメリカ的だとおもいました。
なぜか画像で指示した「サル」の画像が入っていません。もしかすると差別的な素材に使われる可能性を考えて規制されているのかもしれません。
posted by くまのおっさん at 07:00| Comment(0) | TrackBack(0) | AIに書かせてみた | 更新情報をチェックする