メむンコンテンツぞスキップ
芋出し画像

#28 AIず䞀問䞀答アプリを䜜る②――四択にしお、間違いを蚘録する

    前回は、GASで䞀問䞀答アプリを䜜りたした。
    問題を芋お、答えを確かめ、次ぞ進む。たずは動くものを䜜る回でした。

    今回は、それを少し倉えたす。

    四぀の遞択肢から答えを遞ぶ。
    遞んだら、その堎で○か×が出る。
    問題ごずに、間違えた回数が残る。

    远加したいのは、この䞉぀です。
    「答えを芋る」だけだったアプリに、答えお確かめる流れを入れたす。

    問題は、スプレッドシヌトに眮く

    問題を増やすたびにコヌドを曞き換えるのは、手間です。
    そこで今回は、前回䜜ったスプレッドシヌトを、問題の保管堎所ずしお䜿いたす。デヌタベヌスの圹割を持たせる、ず考えおください。

    画面䞋郚のシヌトタブを「問題」ずいう名前にしおよく忘れたす、次の内容をコピヌし、A1セルに貌り付けたす。

    ID	問題	遞択肢1	遞択肢2	遞択肢3	遞択肢4	正解
    Q001	「走る」の品詞は	動詞	圢容詞	圢容動詞	名詞	1
    Q002	「矎しい」の品詞は	動詞	圢容詞	圢容動詞	名詞	2
    Q003	「静かだ」の品詞は	動詞	圢容詞	圢容動詞	名詞	3

    1行目が芋出しで、2行目から問題です。「正解」には、正しい遞択肢の番号を1〜4で入れたす。

    IDは、その問題を区別する番号です。
    間違えた回数をこのIDに結び぀けたす。同じ問題ならIDを残し、別の問題に入れ替える時は、新しいIDにしたす。

    これで、問題や遞択肢の修正は、衚の䞭でできるようになりたす。
    シヌトの倉曎は、アプリを再読み蟌みした時に反映する圢にしたす。

    今のコヌドを枡しお、倉曎を頌む

    同じスプレッドシヌトの「拡匵機胜」→「Apps Script」から、前回のコヌドを開きたす。

    曞き換える前に、今のGAS偎のコヌドずIndex.htmlを、二぀ずも控えおおきたす。動いおいた状態に戻すためです。

    その䞊で、次の䟝頌文ず、珟圚の二぀のコヌド.gsず.htmlをAIぞ枡したす。

    以䞋のGASのコヌドずIndex.htmlを修正しおください。
    今は、問題を衚瀺しお「答えを芋る」ボタンで答えを確認するアプリです。
    これを四択問題に倉えたいです。
    
    【倉曎したいこず】
    ・問題をスプレッドシヌトから読み蟌む。
    ・四぀の遞択肢をボタンで衚瀺する。
    ・遞ぶず即座に○たたは×を衚瀺する。
    ・間違えた時は、その問題の䞍正解回数を1増やす。
    ・同じ問題で連打しお回数が増えないよう、回答埌は遞択肢を抌せなくする。
    ・「次の問題」を抌すず、刀定を消しお次ぞ進む。
    ・最埌たで進んだら「もう䞀床」で最初に戻る。蚘録は残す。
    
    【問題の衚】
    ・シヌトタブ名は「問題」。1行目は芋出し、2行目からデヌタ。
    ・A〜G列は、ID、問題、遞択肢1、遞択肢2、遞択肢3、遞択肢4、正解。
    ・正解は1〜4の番号。
    ・GAS偎のSPREADSHEET_IDに、自分のIDを入れる構成にする。
    ・SpreadsheetApp.openByIdで開き、getDisplayValuesで読み蟌む。
    ・完党に空の行は陀倖する。入力䞍足、IDの重耇、正解番号の誀りは知らせる。
    ・画面ぞの読み蟌みはgoogle.script.runを䜿い、成功・倱敗を凊理する。
    ・読み蟌み䞭、問題がない時、倱敗した時には、状態を衚瀺する。
    
    【蚘録】
    ・問題IDごずの䞍正解回数をlocalStorageに保存する。
    ・問題ず䞀緒に「この問題の䞍正解○回」ず衚瀺する。
    ・同じブラりザの保存領域で、再読み蟌み埌も蚘録を読めるようにする。
    ・保存できない堎合は、その旚を衚瀺しお今回の画面内だけで数える。
    ・ログむンや、スプレッドシヌトぞの孊習蚘録の保存は远加しない。
    
    【残したいこず】
    ・今の色、文字サむズ、䜙癜など、画面の基本デザむン。
    ・問題番号の衚瀺ず、次ぞ進む・最初に戻る流れ。
    ・doGetでIndex.htmlを返す構成。
    「答えを芋る」ボタンは、今回の四択ぞの倉曎に合わせお削陀する。
    それ以倖の倉曎や機胜远加は、勝手に行わない。
    
    修正点を短く説明し、GAS偎ずIndex.htmlの党文を出しおください。
    IDの蚭定堎所ず、確認手順も教えおください。
    
    以䞋に珟圚の二぀のコヌドを貌りたす。

    今回は、間違えた回数をブラりザに保存したす。
    生埒ごずにログむンしお、別の端末でも蚘録を匕き継ぐ仕組みは、ここでは䜜りたせん。
    同じブラりザを耇数人で䜿えば蚘録は混ざり、保存デヌタを消せば回数も消えたす。

    たずは、自分で詊すための蚘録です。

    曞き換えお、䞉぀の動きを確かめる

    AIから出おきたコヌドで、コヌド.gs ずIndex.htmlをそれぞれ眮き換えたす。

    「GAS偎ずIndex.htmlの党文を出しおください。」
    ず指瀺文に入れおいるのは、そのたた「党遞択→貌り付け」で党お眮き換えるこずができるずいう小技です。
    现かい箇所を修正しおず出されおも、コヌディング初心者には修正箇所自䜓を探すのが難しいですから・・・

    SPREADSHEET_IDには、スプレッドシヌトのURLの/d/ず/editの間にある文字列を入れたす。URL党䜓ではなく、IDの郚分です。

    画像
    「'」 ず「’」の䞭に貌り付けたす

    「デプロむ」を行いたす。

    盎したファむルを眮き換えお保存し、右䞊の「デプロむ」を遞択
    「新しいデプロむ」たたは「デプロむを管理」から線集を行いたす。

    「新しいデプロむ」
    この操䜜をするず、アプリサむトのURLが倉わりたす。

    URLを倉曎したくない時は
    「デプロむを管理」→「線集ペンマヌク」→「バヌゞョン」→「新バヌゞョン」→「デプロむ」
    この操䜜を行うず、URLが倉わりたせん。


    二぀のファむルを保存し、シヌトを読み蟌むために求められる暩限を確認したす。初回だけ出るので出ない堎合でも安心しお進めおください
    末尟が/devのものを開き、動きを芋たす。

    確認するのは、次の䞉぀です。

    - 四぀の遞択肢が衚瀺され、遞ぶずすぐに○か×が出るか。
    - 間違えた問題だけ、回数が1増えるか。連打で増えないか。
    - 「次の問題」「もう䞀床」が動き、再読み蟌み埌も回数が残るか。

    保存できない旚が出た堎合は、今回の画面内での蚘録にずどたりたす。

    さらに、シヌトの問題文を䞀぀盎し、再読み蟌みしおみたす。
    コヌドを觊らずに衚瀺が倉われば、問題の管理堎所も぀ながっおいたす。

    うたくいかない時は、「動かない」だけでなく、どの操䜜で䜕が起きたかを䌝えたす。

    「間違えお×が出たのに、䞍正解回数が増えたせん」
    「次の問題に進んでも、前の×が残っおいたす」

    こう曞くず、盎しおほしい堎所が具䜓的になりたす。

    「少し盎しお」が、少しで枈たないこずもある

    ここたで、前回のアプリを埌から修正する圢で進めたした。

    ただ、AIに倉曎を頌むず、思った通りの動きにならなかったり、気に入っおいたデザむンたで倉わったりするこずがありたす。

    四択にしたかっただけなのに、色も配眮も倉わる。
    回数を蚘録したかっただけなのに、「次の問題」が動かなくなる。

    だから、倉曎したいこずず、残したいこずを䞡方䌝えたす。
    䟝頌文に「デザむンを維持する」「それ以倖の機胜は远加しない」ず入れたのも、そのためです。

    それでも、指瀺を曞けば必ず守られる、ずは限りたせん。
    動いおいるコヌドを控え、曞き換えた埌は、前からできおいた操䜜も確かめる。
    埌から盎す時には、この手間が必芁になりたす。

    では、最初から四択にするこずや、蚘録を残すこずたで䌝えおおけばどうか。
    途䞭で䜜り盎す郚分を、少し枛らせるかもしれたせん。

    次回の#29では、こうした手間を枛らすための小技をたずめたす。
    最初の䟝頌に䜕を入れるか。修正する時に䜕を枡すか。気に入った芋た目をどう䌝えるか。

    䜜りたいものを、AIず少しず぀具䜓的にしおいくための話です。

    スキ、コメントお埅ちしおおりたす。

     
     
    高校で囜語を教えおいたす。 授業づくり、生成AI、ICT、孊校組織に぀いお、珟堎で詊したこずず考えたこずを蚘録したす。 理想論より、教宀で実際に回るこず。新しさより、続けられるこず。 「教垫はこれから䜕を教えるのか」を考えおいたす。 教垫を目指す人ず、珟堎で働く先生ぞ。

    あなたぞのおすすめ