訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:2021-07-10 09:49

類型:電腦應用
作者:羽山
文章時間:2021-07-10 09:49:52
瀏覽人數:2190人
標題: 網頁版嘸蝦米輸入法研究
網址:https://3wa.tw/blog/blog.php?id=1918
內容:
 

昨晚跟朋友出去買宵夜,聊到線上版的嘸蝦米好像十幾年前就有

https://boshiamy.com/hliu.php

印象好久以前有玩過,今早花了點時間找到連結,試玩看看

完成度很高,打起來也很順,有點好奇他的字庫有多少字

研究看看有沒有機會讓肥米輸入法也能支援^^"

 

 

從網頁原始碼中找到了主程式,跟二個字庫檔

hliu.js 主程式

liu-uni.js 嘸蝦米字庫

phonetic.js 注音字庫

 

 

點入 嘸蝦米字庫表 liu-uni.js 

註冊了 TableIndex、TableWord 到 global

 

 

點入 注音字庫表 phonetic.js

是一行已分好頁的注音陣列

 

 

Web 版嘸蝦米主程式,看到作者 Luke Chang

 

 

程式碼精簡,800多行,慢慢捲一路看下來,都是 function

這樣很方便debug,把想看的 function copy 出來,在裡面塞些

console.log 再複寫一次,或是下中斷點邊打邊試

 

 

加了一行監看 function 拿到什麼值,在網頁打個 肥 (ucl)

 

 

發現了~ 出現了剛才加 console.log 感覺就是最多 五個字根,不足會補零

數值不太明白是什麼

[21, 0 , 0, 0, 0]

[21, 3, 0, 0, 0]

[21, 3, 12, 0, 0]

 

 

打其他字看看,對 (a)

 

 

變成 [1, 0, 0, 0, 0]

所以 A = 1

剛才的

U = 21

C = 3

L = 12 

 

那麼刻一個 function 測試看看

 

function stoa(c){
  var o = new Array();  
  for(var i=0;i<5;i++)
  {
    if(i>c.length-1) o.push(0);
    else{
    var k = c.charCodeAt(i);
    //console.log(k);
    if(k<97) o.push(k-17);
    else o.push(k-97+1);
    }
  }
  return o;
}

這個 stoa(c) 可以輸入一個字根,如

stoa("ucl")

就會輸出

[21, 3, 12, 0, 0]

a 的 ascii = 97 所以 97->1  要減掉 97 再加 1

a = 97-97+1 = 1


u = "u".charCodeAt(0); //117 - 97 + 1= 21

c = "c".charCodeAt(0); //99 - 97 + 1 = 3

l = "l".charCodeAt(0); //108 - 97 +1 = 12

 

如果輸入小於 97 ,如輸入「,」似乎是 -17,不確定

我只嘗試修正「,」

 

 

所以如果是一行輸入的字

var testArr=["pns","gz",",","ix","dez","eee","ei","enhp","ovz","odo","oqe","xlu"]; 

//你好,我是羽山愛吃咖哩飯

for(var i=0;i<testArr.length;i++)

{

  //GetWord(stoa("ucl")); console.log(WordList);

  GetWord(stoa(testArr[i])); console.log(WordList);

}

字根轉出的中文,結果就會在 WordList 出現

 

 

花了點時間看看15年前Web版嘸蝦米輸入法的源始碼

驚覺…簡單易懂功能又完整~完成度也很高~~好厲害啊!

 

 

 

 

 

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【2】
其他分類
當月訓練
(2021-07-26)
【NSR 150】NSR 照片

(2021-07-21)
【電腦應用】fiddler 、vpn 連不上,無法撥接

(2021-07-11)
【3WA日常】NSR 卡鉗備料整理

(2021-07-10)
【電腦應用】網頁版嘸蝦米輸入法研究

(2021-07-07)
【FZR 150】FZR化油器混合比螺絲滑牙(Hank)

最新訓練
(2024-03-09)
【HONDA CBR1000RR】CBR1000RR 原廠管

(2024-02-24)
【NSR 150】NSR150 整理後卡鉗

(2024-02-14)
【機車綜合相關】買了牧田的打氣機與心得

(2024-02-10)
【NSR 150】NSR150 整流器接頭重作

(2024-02-09)
【機車綜合相關】鋰電、鋰鐵電池、電源充電器

(2024-01-07)
【NSR 150】NSR150 貨架耳朵斷裂維修

(2024-01-06)
【KTM 390】KTM Duke390 維修發電問題 電盤內仁

(2023-12-29)
【NSR 150】NSR150 改可調拉桿

(2023-11-20)
【遊戲 / 生活】防盜洗手罐

(2023-11-17)
【KTM 390】KTM Duke390 製作鋰鐵電池