こんにちは、キカガクでエンジニアをしている高橋です!
近ごろ、生成 AI の進化が凄まじくプログラミングのコードを生成してもらうことが増えてきました。人間がコードを書かなくなる時代が本当にくるんだろうなと実感しています。
もはや人間が FizzBuzz(プログラミングで有名な初心者課題) するプログラムを書くのではなく、人間が FizzBuzz して頭を柔らかくする時代がきているのではないでしょうか。
そこで今回、話題になっている Claude の Artifact で人間が FizzBuzz させられるアプリケーションを作ってみました!
※注 プログラミングの入門課題として FizzBuzz は適切だと筆者は認識しています。
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。
FizzBuzz について
プログラミングの入門で使われる簡単な課題で、基本的なルールは以下のとおりです。
- 1から順番に数を数えていきます。
- 3の倍数のときは「Fizz」と言います。
- 5の倍数のときは「Buzz」と言います。
- 3と5の両方の倍数のときは「FizzBuzz」と言います。
- それ以外の数のときは、その数をそのまま言います。
例えば Python で FizzBuzz を実装する場合、以下のようになります。
def fizzbuzz(n):
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)
fizzbuzz(100)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
FizzBuzz アプリ
今回、人間が FizzBuzz するということで、ランダムな数字を提示、それに対して Fizz、Buzz、FizzBuzz、数字なのかを選択するアプリケーションを Claude に作ってもらいました。
ぜひ以下から遊んでみてください。
https://claude.site/artifacts/9b00cfca-c029-41fe-8739-b07bae1629e8
いざやってみると結構難しくて、10 秒以内に 10 回以上正解できたらすごいです!
※ 今回使用している Claude の Artifact は有料プラン限定です(2024 年現在 20 ドル / 月)
プロンプトを紹介
作ってみました、遊んでください!で終わってしまうと全然中身がないので、この FizzBuzz アプリケーションを作ったプロンプトを公開したいと思います。
正直、そんな大げさなテクニックなんてものもなく、そこまで難しくはないのですが、まだあまり Claude をはじめとした生成 AI を使ったことがない方にとって「そんな感じで作れるんだ」という発見につながれば嬉しいです。
1
FizzBuzzって知っていますか?
もうプログラムは生成AIが書いてくれるようになったので、人間がAIにFizzBuzzさせられてみようと思います。
Artifactでアプリケーションを作ってください。
この段階でこちらが入力した数字に対して Fizz、Buzz などの結果を返してくれるものを作ってくれました。
2
提示された数字に対してこちらが回答するようにしたかったので、以下のように返しました。
逆に数字を提案してくれて、それに対してFizzなのかBuzzなのか、数字なのかを選択するアプリケーションとかどうでしょうか?
かなりイメージと近くなってきました。
3
右下の選択肢が文字列の「数字」となっているので、FizzBuzz のルールからすると提示された数字がいいなと思い、以下のように返しました。
選択肢は「数字」ではなく、問題となる数字にできますか?
それ以降のプロンプト
アプリケーションの土台ができたので、それ以降はルールの記載やデザインについて投げかけました。
いいですねー、ありがとう。Fizzの条件、Buzzの条件など、ルールを書いていてくれたら嬉しいな。
10秒以内にいくつ正解できるか、とかどうですか?
おもしろい!見た目をもっとおしゃれにできる?
余談ですが、Claude におしゃれにしてというと紫色のグラデーションになりがちです。
プロンプトのコツについて
生成 AI 活用のコツは「対話すること」です。
ChatGPT を使ってみたけどよくわからなかった…という方にお話を聞くと大体 1 ラリーしかしていないといったことが多いです。
Google 検索などは基本的にその形式ですが、生成 AI はぜひ対話することを意識してみましょう!
出力コードについて
Claude の Artifact でアプリケーションを作るとき、React(JavaScript のライブラリ)のコードで出力されます。
Python を扱っている方からすると見慣れないコードかと思いますが、関数の作り方など参考になります。
執筆裏話
この記事を書いた後に、記事構成を Claude に相談してみました。(ちょっとこっち方面で書きたかった…)
なるほど、ネタ記事だったのですね。その場合、むしろユーモアや皮肉を強調する方向で改善できそうです。以下のようなアプローチはいかがでしょうか:
- タイトルのインパクトを強める:
例:「AIに仕事を奪われた人間、最後の砦はFizzBuzzだった」 - 導入部分をより面白く:
AIの進化を誇張して描写し、人間の仕事がどんどんなくなっていく様子を滑稽に表現する。 - FizzBuzzの説明をオーバーに:
「かつて人類最高の知性を誇る者だけが解けたFizzBuzz」などと大げさに紹介する。 - アプリの紹介を劇的に:
「ついに人類は、AIに与えられたFizzBuzzに挑戦する時代に突入した」といった具合に。 - プロンプトのやり取りをコメディタッチで:
AIとの会話を、まるで最後の希望にすがるような人間の姿として描く。 - 結論部分でオチをつける:
例えば「結局、人間にはFizzBuzzしか残されていなかった…が、それすらもAIの方が上手かった」といったオチ。 - 擬似的な統計を入れる:
「2025年には、人間の97%がAIにFizzBuzzさせられる社会が来る」など、明らかに作り話だとわかる統計を入れる。 - 架空のエキスパート意見:
「FizzBuzz研究の第一人者」などといった架空の専門家のコメントを入れる。 - 未来予想図:
FizzBuzzが人類最後の仕事になった世界を、コミカルに描写する。 - 読者参加型の要素:
「あなたはまだAIに負けていない?FizzBuzzチャレンジに参加して、人類の誇りを守ろう!」といった呼びかけ。
これらの要素を取り入れることで、記事全体がより明確にネタ記事として読者に伝わり、笑いを誘うことができるでしょう。重要なのは一貫して面白おかしい調子を保ちつつ、実際に作成したアプリケーションの紹介も織り交ぜることです。そうすることで、ユーモアを楽しみながら、読者に実際にアプリを試してもらうきっかけにもなります。
まとめ
今回の FizzBuzz アプリ作りは単なる遊びでしたが、近ごろの生成 AI の発展をみていると「人間らしさ」について日々考えさせられます。AI がコードを書いてくれる時代、私たち人間に求められるのは、むしろ豊かな想像力かもしれません。
AI が得意な論理的な部分は任せつつ、人間は「こんなのどう?」「もっとこうしたら?」と、クリエイティブな部分で力を発揮するのが重要なのかなと。
生成 AI はあくまでもツールで、それを使って何を作り出すかは、私たち次第だと感じています。FizzBuzz を「人間がやらされる」ゲームに変えてしまうような、ちょっとひねくれた発想だったり、そういう「AI の意表を突く」アイデアを出せるのは、今のところ人間だけの特権です。
これからのエンジニアに必要なのは、コードを書く力よりも、AI と協働して新しいものを生み出す想像力かもしれません。ぜひ AI と遊び心のある対話をしてみてはいかがでしょうか?
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。