2024年1月17日 星期三

HTML5 FUN : 找出成績記錄中錯的題目

2024年1月17日 星期三

 在「雄:HTML5 FUN : 利用 Google Form 登錄遊戲成績」中說到,目前 HTML5 FUN 的部份遊戲可以利用 Google 表單將遊戲的成績和作答歷程寫入 Google 試算表中。如果是照範例建立的表單及試算表,在試算表的 H 欄中,應該是:

  • 作答歷程(題目,使用秒數,錯的次數,回答內容)

這些記錄是一人一格,做過的題目全部記錄在一個儲存格中,如果解析出錯的哪些題目呢?

先來看看 H 欄中的內容特徵是什麼:

  • 全部是一個字串。
  • 每一題最後會有換行字元。
  • 每一題都有四項記錄,記錄跟記錄間有半形逗號:
    • 題目
    • 使用秒數
    • 錯的次數
    • 回答內容

如果答對的,「錯的次數」應該就會是 0,例如:

[Z],3,1,c
[V],9,1,T
[K],3,0,K
[P],8,0,P

這個人的第一題作答歷程是「[Z],3,1,c」,分解一下:

  • 題目: [Z] 
  • 使用秒數: 3 
  • 錯的次數: 1
  • 回答內容: c 

所以如果將答對的題目(「錯的次數」是「0」)的通通去掉,剩下的就是錯的,進一步再解析出「題目」的內容,這樣就知道錯了哪些了。

底下的試算表是已經在 J 欄中加入解析公式的,可以參考:


以 H2 的資料來說,用的公式是 (請參考J欄):

=REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(H2, "([^,]+,\d+,0,[^\n]+\n*)", "♥"), "(^[\n♥]+)", ""), "([^,]+),\d+,\d+,[^\n♥]*[\n♥]+", "$1")

主要都是利用 Google 試算表的「REGEXREPLACE」:

  • 將對的題目那行置換為「♥」。使用的規則:
    • ([^,]+,\d+,0,[^\n]+\n*)
  • 將開頭的換行及「♥」全部去掉(空字串)。使用的規則:
    • (^[\n♥]+)
  • 將錯的記錄行解析,並置換為題目內容就好,其它的資訊不保留。使用的規則:
    • ([^,]+),\d+,\d+,[^\n♥]*[\n♥]+

這個例子是因為題庫的題目是考字母,然後都用中括號括住了,所以將所有錯的題目合起來,就變成:

  • [Z][V][O][R][S][M][F]

一題一題很清楚,如果是單字的話,可能要再加個逗號、空格,或是其它符號來分開,如果想在每一個錯的題目後面加一個逗號和一個空格,公式可以改為 (請參考K欄):

=REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(H2, "([^,]+,\d+,0,[^\n]+\n*)", "♥"), "(^[\n♥]+)", ""), "([^,]+),\d+,\d+,[^\n♥]*[\n♥]+", "$1, ")

在最後面的「"$1"」中加料即可。(註:$1 就是找到的題目內容)。

關於記錄的解析公式如果有什麼問題,或是需求,歡迎在底下留言區留言討論哦!

相關連結


沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket