GitHubのコパイロットで5歳児もコーディング可能? テトリスゲームを作ってみよう!

すでにIT開発者はコパイロットを使ってAIと一緒にプログラミングをしています。それがGitHubのコパイロットというツールです。

コパイロット、月給10万円のコーディング先生

GitHubコパイロットとは?

2018年にGitHubというオープンソース共有プラットフォームを8兆ウォンで買収したMSが2021年10月にGitHubコパイロットをリリースしました。 GitHubコパイロットはコメントを書くと自動的にソースコードを作成してくれます。チャットGPTを作ったオープンAIのコーデックス(Codex)をベースに、世界中の開発者のソースコード倉庫であるGitHubのデータを学習して作ったので、コードがとても良くなります。

注釈は元々、開発者がコンピュータ言語でソースコードを組む時、他の人が分かりやすいように説明をつけたものです。 実際にプログラムを実行しないコードなので、元々コンピュータは注釈の部分はスルーしていました。 しかし、Co-Pilotがコードデータを丸ごと学習しているため、逆に人がどのような注釈の説明を書けば、自動的に次に来るべき適切なコードを推薦し、作成もしてくれるのです。注釈をつけるだけで、コパイロットが勝手に書いてくれるので、コードをいちいち書く必要がなくて楽でしょう。 アメリカのあるプロンプトエンジニアがこれと似たようなコードGPTの使い方を教えたら、5歳の娘がボールの大きさ、ボールの遊び方などの注釈を書いてボール遊びのプログラムをすぐに作ったそうです。 これでコーディングを人の言語でできるようになったのです。 GitHubのコパイロットは最初の1ヶ月は無料で使うことができ、個人の場合は月使用料が10ドルです。月に1万円くらいで最高のコーディングの先生、コーディングパートナーができるわけです。

Pythonのインストールと開発環境の準備

ここでは私たちがプログラミングコードを一つも知らない状態でPythonという言語で簡単なゲームを作ってみます。

1.まず、パソコンにPythonをインストールしてみます。 Pythonサイト(python.org)からPythonのインストールプログラムをダウンロードすることができます。Downloadsメニューを押して現在のバージョンのPythonをダウンロードしてください。

2.ウェブブラウザでグーグルクロームを使う場合、下の画面のように右上にダウンロードしたファイルが表示されます。このファイルをクリックしてインストールします。基本的なインストールをするため、<Install Now>をクリックした後、手順通りにインストールしてください。

3.GitHubサイト(www.github.com)にアクセスして会員登録をしてください。

4.ビジュアルスタジオコード(Visual Studio Code)という開発者がよく使うエディタプログラムをインストールしてください。グーグルで’Visual Studio Code’で検索するとダウンロード後、インストールすることができます。

5.Visual Studio Codeを実行した後、画面左側の’Extentions’アイコンをクリックして、キーワード検索欄で ‘github’を検索してGithub Copilotをインストールします。 6.5番と同じ方法で’Extensions’アイコンを押して’Python’を検索してインストールしてください。

コパイロットを使ってテトリスゲームを作ります。

Python IDEを開いてファイルを保存します。

1.メニューでFile→New Text Fileを押してください。

2.何もコードがない状態ですが、一旦File→Save Asを押して保存します。テトリスゲームを作るのでファイル名は’tetris’とし、ファイル形式はPythonを選択して<保存>を押してください。 tetris.pyとして保存されます。

コパイロットにコメントで指示する方法

コパイロットを使う時はコメントを使ってコマンドを入れることができます。 Pythonではコメントを書く方法が二つあって、一つはショップ(#)を入力した後コメント文を書く方法、もう一つは引用符3つの間にコメント文を入れる方法です。 引用符3つの間にコメントを入れてみます。 テトリスゲームをパイゲーム(pygame)というライブラリを利用して実装することを宣言して<Enter>を打ってください(英語でも大丈夫です)。pygameは通常ゲームを可視化する時に使うライブラリです。

“Implementing a tetris game using the pygame library.”

“tetris gameをpygameというライブラリを利用して実装する。”となります。

コメント文の後ろに〈Enter〉を押すと、内容のない空行が出ることがあります。この時、<Enter>をもう一回押すと下記のようにグレーの文字が出ます。コパイロットがコードを推薦してくれるのです。 これを承認するという意味で<Tab>キーを押してください(もし<Tab>キーではなく<Enter>キーを押すと、コパイロットが別のコードを推薦してくれます)。その後もグレーのコードが表示されたら<Tab>キーを押してください。

コードを生成して実行します。

これでコパイロットがテトリスゲームに必要なコードを自動的に作成し始めます。グレーのコードが出たら<Tab>キーを押して、もう一度<Enter>を押して行を変えてください。行を変えたときにグレーのコードが出ない場合は、もう一度<Enter>を押して行を変えてください。コパイロットが勝手にテトリスゲームの画面サイズを決め、ブロックの色と速度も設定します。

コパイロットがコードを組んでいて止まったら、しばらく待ってください。プログラミングが終わったかどうかよく分からない場合は、<Enter>を打って新しいコードが出るかどうか確認してください。 その後、再び灰色の文字が出たら、承認の意味で<Tab>キーを押してください。プログラム内で呼び出すと、特定の機能を実行する関数のような場合は、複数の行が推奨され、<Tab>キーを押すと一度に入力されることもあります。以下は、テトリスゲームでキーボードの矢印キーが押された時、ブロックの位置をどの方向にどれだけ移動させるかなどを定義しています。

前にも言いましたが、<Enter>を打った時、グレーの文字がすぐ出てこなかったら、しばらく待ってからもう一度<Enter>を打ってください。 そうすると、コードで一行が表示されます。Pythonは文法が厳格なので、行一つ、スペース一つ一つが非常に厳密に適用されます。コードの段落一つが終わったら、一行を空ける必要があります。 そうすると、再びコードを作り始めます。 コパイロットがコードを組むのを止め、応答がないときは#を入力してください。 コパイロットが次に出てくるべきコメントを話しながら、自分で実行すべきことを見つけて推奨し、コードを書き続けます。

main()というものが出たら、コードがほぼ完成したことになります。 main()は実行される家の門のようなものを作るものですから。 コードが止まったら<Enter>を打つことを覚えていますか? <Enter>を2回以上打ってもコードが出ない場合は、プログラミングが終わったことになります。最後に明らかに終わったはずなのに答えが出ない場合は、#を打ってみてください。最後に’# end of program’または’#End of file’と表示されたら、コード作成を終えたことになります。

Visual Studio Codeの’Run Python File’アイコンを押してください。 すると、次のようにテトリスゲームが実行されます。 もし、実行エラーが発生してPygameモジュールがないというメッセージが表示されたら、Googleで’Pygameインストール’で検索してPygameを私のパソコンにインストールする必要があります。

GitHub Copilotの長所と短所

GitHubコパイロットはプログラミングを全く知らない人でもコードを組んでくれるので使えるという長所がありますが、逆にプログラミングをすることを夢見る学生がコパイロットがコーディングを段階的にどう組むのか構造を見ることができるという長所もあります。 しかし、まだ、コパイロットがたまに一回で完成度のあるプログラムを組めないこともあります。皆さんがPythonの基礎知識を持っていれば、コパイロットが作ったソースコードを分析して修正することができます。 または、ChatGPTが作ったソースコードをVisual Studioのコードの編集ウィンドウにコピーして実行しながらコードを修正、補完することもできるでしょう。

GitHubコパイロットが作ったコード、チャットGPTで簡単に修正する方法

GitHubコパイロットを利用する時、コードがうまくまとまらないと思ったらチャットGPTに聞くのが早い方法です。チャットGPTのNew Chatウィンドウにコードをコピーして「上記のコードにエラーがありますか? どのようなエラーなのか教えてください」と言うだけです。 また、あなたがプログラミングを全く知らなくても、GitHubコパイロットが組んでくれたゲームを少し修正することもできます。例えば、先ほど作ったゲームの背景色を変えたい場合は、チャットGPTのNew Chatウィンドウにコードソースをそのままコピーした後、背景色を水色に変えて作り直してもらうことができます。 また、ゲームの移動速度を少し遅くしてもらうこともできます。