ブラウザChromeのメニューにGeminiを使ってみないかとのお誘いがあり、お誘いに乗ってみました。GeminiはGoogleの生成AIです。
Geminiではモデルを選択できるようになっていたので推論、数学、コーディングを得意とする「2.5 Pro」を選びました。
以下の4つの質問や依頼をしてみました。
- Small Basicのプログラミングはできますか?
- 800×600ドットの画面に方眼用紙のような格子を描くSmall Basicプログラムを作って。
- 9路の碁盤を表示するSmall Basicのプログラムを作って。
- いままでの会話をドキュメントにまとめられますか。
3. までの質問や依頼にはかなり的確に答えてくれました。3. に関しては配列の初期化に誤りがあったのですが、誤りについて指摘すると、正しいプログラムを再度出力してくれました。そのコードが以下のコードです。
' --- 設定 ---
boardSize = 600
gridCount = 9
margin = 50
boardColor = "BurlyWood"
lineColor = "Black"
' --- ウィンドウの準備 ---
GraphicsWindow.Title = "9路盤プログラム (オンライン版)"
GraphicsWindow.Width = boardSize
GraphicsWindow.Height = boardSize
GraphicsWindow.PenWidth = 2
GraphicsWindow.BrushColor = boardColor
GraphicsWindow.FillRectangle(0, 0, boardSize, boardSize)
' --- 線の計算 ---
gridAreaSize = boardSize - (margin * 2)
spacing = gridAreaSize / (gridCount - 1)
' --- 線の描画 ---
GraphicsWindow.PenColor = lineColor
For i = 0 To gridCount - 1
pos = margin + i * spacing
GraphicsWindow.DrawLine(pos, margin, pos, boardSize - margin) ' 縦線
GraphicsWindow.DrawLine(margin, pos, boardSize - margin, pos) ' 横線
EndFor
' --- 星(ホシ)の描画 ---
' 配列として星の座標を定義 (オンライン版で推奨される方法)
hoshiPoints[1] = "2,2"
hoshiPoints[2] = "2,6"
hoshiPoints[3] = "6,2"
hoshiPoints[4] = "6,6"
hoshiPoints[5] = "4,4"
hoshiRadius = 5
GraphicsWindow.BrushColor = lineColor
For i = 1 To 5
point = hoshiPoints[i]
x_index = Text.GetSubText(point, 1, 1)
y_index = Text.GetSubText(point, 3, 1)
px = margin + x_index * spacing
py = margin + y_index * spacing
GraphicsWindow.FillEllipse(px - hoshiRadius, py - hoshiRadius, hoshiRadius * 2, hoshiRadius * 2)
EndFor
コメントも的確、変数名の付け方もまずまず、ロジックも分かりやすく、とても優秀なプログラマーだと思いました。このコードはSmall Basicのオンライン版で実行すると、GraphicsWindow.WidthとGraphicsWindow.Heightの設定のところでエラー表示されるものの、正しく碁盤が表示され、9路盤の星も打ってくれます。

Gemini 2.5 Pro はプログラムを生成するだけでなく、コードの説明や、デバッグや学習の手伝いもしてくれるそうなので、このAIとともにプログラミングを学ぶのもありだと思いました。ただ、無料版では4番目の依頼については1日後に可能とのことでした。

