AI に仕事を奪われそうなので、一周まわって人間が FizzBuzz する

AI に仕事を奪われそうなので、一周まわって人間が FizzBuzz する

こんにちは、キカガクでエンジニアをしている高橋です!

近ごろ、生成 AI の進化が凄まじくプログラミングのコードを生成してもらうことが増えてきました。人間がコードを書かなくなる時代が本当にくるんだろうなと実感しています。

もはや人間が FizzBuzz(プログラミングで有名な初心者課題) するプログラムを書くのではなく、人間が FizzBuzz して頭を柔らかくする時代がきているのではないでしょうか。

そこで今回、話題になっている Claude の Artifact で人間が FizzBuzz させられるアプリケーションを作ってみました!

※注 プログラミングの入門課題として FizzBuzz は適切だと筆者は認識しています。

FizzBuzz について

プログラミングの入門で使われる簡単な課題で、基本的なルールは以下のとおりです。

  • 1から順番に数を数えていきます。
  • 3の倍数のときは「Fizz」と言います。
  • 5の倍数のときは「Buzz」と言います。
  • 3と5の両方の倍数のときは「FizzBuzz」と言います。
  • それ以外の数のときは、その数をそのまま言います。

例えば Python で FizzBuzz を実装する場合、以下のようになります。

Python
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

Prompt
FizzBuzzって知っていますか?
もうプログラムは生成AIが書いてくれるようになったので、人間がAIにFizzBuzzさせられてみようと思います。
Artifactでアプリケーションを作ってください。

この段階でこちらが入力した数字に対して Fizz、Buzz などの結果を返してくれるものを作ってくれました。

2

提示された数字に対してこちらが回答するようにしたかったので、以下のように返しました。

Prompt
逆に数字を提案してくれて、それに対してFizzなのかBuzzなのか、数字なのかを選択するアプリケーションとかどうでしょうか?

かなりイメージと近くなってきました。

3

右下の選択肢が文字列の「数字」となっているので、FizzBuzz のルールからすると提示された数字がいいなと思い、以下のように返しました。

Prompt
選択肢は「数字」ではなく、問題となる数字にできますか?

それ以降のプロンプト

アプリケーションの土台ができたので、それ以降はルールの記載やデザインについて投げかけました。

Prompt
いいですねー、ありがとう。Fizzの条件、Buzzの条件など、ルールを書いていてくれたら嬉しいな。
Prompt
10秒以内にいくつ正解できるか、とかどうですか?
Prompt
おもしろい!見た目をもっとおしゃれにできる?

余談ですが、Claude におしゃれにしてというと紫色のグラデーションになりがちです。

プロンプトのコツについて

生成 AI 活用のコツは「対話すること」です。

ChatGPT を使ってみたけどよくわからなかった…という方にお話を聞くと大体 1 ラリーしかしていないといったことが多いです。
Google 検索などは基本的にその形式ですが、生成 AI はぜひ対話することを意識してみましょう!

出力コードについて

Claude の Artifact でアプリケーションを作るとき、React(JavaScript のライブラリ)のコードで出力されます。

Python を扱っている方からすると見慣れないコードかと思いますが、関数の作り方など参考になります。

執筆裏話

この記事を書いた後に、記事構成を Claude に相談してみました。(ちょっとこっち方面で書きたかった…)

なるほど、ネタ記事だったのですね。その場合、むしろユーモアや皮肉を強調する方向で改善できそうです。以下のようなアプローチはいかがでしょうか:

  1. タイトルのインパクトを強める:
    例:「AIに仕事を奪われた人間、最後の砦はFizzBuzzだった」
  2. 導入部分をより面白く:
    AIの進化を誇張して描写し、人間の仕事がどんどんなくなっていく様子を滑稽に表現する。
  3. FizzBuzzの説明をオーバーに:
    「かつて人類最高の知性を誇る者だけが解けたFizzBuzz」などと大げさに紹介する。
  4. アプリの紹介を劇的に:
    「ついに人類は、AIに与えられたFizzBuzzに挑戦する時代に突入した」といった具合に。
  5. プロンプトのやり取りをコメディタッチで:
    AIとの会話を、まるで最後の希望にすがるような人間の姿として描く。
  6. 結論部分でオチをつける:
    例えば「結局、人間にはFizzBuzzしか残されていなかった…が、それすらもAIの方が上手かった」といったオチ。
  7. 擬似的な統計を入れる:
    「2025年には、人間の97%がAIにFizzBuzzさせられる社会が来る」など、明らかに作り話だとわかる統計を入れる。
  8. 架空のエキスパート意見:
    「FizzBuzz研究の第一人者」などといった架空の専門家のコメントを入れる。
  9. 未来予想図:
    FizzBuzzが人類最後の仕事になった世界を、コミカルに描写する。
  10. 読者参加型の要素:
    「あなたはまだAIに負けていない?FizzBuzzチャレンジに参加して、人類の誇りを守ろう!」といった呼びかけ。

これらの要素を取り入れることで、記事全体がより明確にネタ記事として読者に伝わり、笑いを誘うことができるでしょう。重要なのは一貫して面白おかしい調子を保ちつつ、実際に作成したアプリケーションの紹介も織り交ぜることです。そうすることで、ユーモアを楽しみながら、読者に実際にアプリを試してもらうきっかけにもなります。


まとめ

今回の FizzBuzz アプリ作りは単なる遊びでしたが、近ごろの生成 AI の発展をみていると「人間らしさ」について日々考えさせられます。AI がコードを書いてくれる時代、私たち人間に求められるのは、むしろ豊かな想像力かもしれません。

AI が得意な論理的な部分は任せつつ、人間は「こんなのどう?」「もっとこうしたら?」と、クリエイティブな部分で力を発揮するのが重要なのかなと。

生成 AI はあくまでもツールで、それを使って何を作り出すかは、私たち次第だと感じています。FizzBuzz を「人間がやらされる」ゲームに変えてしまうような、ちょっとひねくれた発想だったり、そういう「AI の意表を突く」アイデアを出せるのは、今のところ人間だけの特権です。

これからのエンジニアに必要なのは、コードを書く力よりも、AI と協働して新しいものを生み出す想像力かもしれません。ぜひ AI と遊び心のある対話をしてみてはいかがでしょうか?