Apuさんと天気予報

with コメントはまだありません

Walls Ziboを作っていく上で、実は他にも重視しているところがありまして。

タイトルにも書いてあるとおり、Walls付属の人工無脳「Apu」さんです。

snapcrab_noname_2016-11-24_13-51-42_no-00

Apuさんのプログラムは、実は1年以上書き換えていません。

 

ここ最近大した進化を遂げてきていないWallsですが、さすがに1年間放置しっぱなしだと

新しい機能に対応してなかったり、仕様が変わってたり、配置が変わってたりしてバグると思うので、

この際だからついでにApuさんもバージョンアップさせてしまおうという話です。

以前のプログラムは正にスパゲッティ状態で、ソースを見てもわけわからない状態だったので

たとえば「apus」という変数に入力された言葉を代入しているとして、

//要求:「~ほしい」「~くれ」
if instr ( apus, 0, “ほしい” ) != -1 or instr ( apus, 0, “くれ” ) != -1 {

   //「~を開いてほしい」
   if instr ( apus, 0, “開いて” ) != -1 {

      if instr ( apus, 0, “エクスプローラ” ) != -1 {
         goto *explorer ; エクスプローラーへ
      }

      if instr ( apus, 0, “コントロールパネル” ) != -1 or instr ( apus, 0, “コンパネ” ) != -1 {
         goto *CP ; コントロールパネルへ
      }

      if instr ( apus, 0, “Krone” ) != -1 {
         goto *net ; Kroneへ
      }

   }

   //「~してほしい」
   if instr ( apus, 0, “して” ) != -1 {

      if instr ( apus, 0, “シャットダウン” ) != -1 {
         goto *shutdown ; シャットダウン
      }

      if instr ( apus, 0, “再起動” ) != -1 {
         goto *restarting ; 再起動
      }

   }
}

//質問:Apuに対する質問「~?」
if instr ( apus, 0, “?” ) != -1 {

   if instr ( apus, 0, “住んで” ) != -1 { ; 「どこに住んでいるの?」という趣旨の質問
      apusay = “私はあなたのパソコンの中に住んでいます。\n名目上は…”
   }

   if instr ( apus, 0, “出身” ) != -1 { ; 出身地
      apusay = “私は度井仲県の生まれです。”
   }
}

※「apusay」はユーザーの言葉に対してApuが返す文章の変数です

 

このようにすれば、前のソースコードよりは見やすくなるし、入力された言葉のヒット率も上がると思います。

次次作のWalls Luxorではこれを更に発展させて、

文法に区切って言葉の意味を理解させる人工知能もどきを作りたいんですが、

それがどうなるかはとりあえず置いといて、次作のWalls Ziboではこのような方式を取ります。

 

 

それともう一つ。天気予報とニュースです。

Apuさんに天気予報を聞いても、今のところは今日の天気予報しか教えてくれません。

snapcrab_noname_2016-11-24_14-20-15_no-00

 

ニュースは一部のニュースしか表示されません。

snapcrab_walls-zibo-devmode-startmenuhsp_2016-11-24_14-22-17_no-00

 

そこで、天気予報アプリなんかも、できれば搭載したいなぁと思っています。

そうです。今年のHSPプログラムコンテストに応募するつもりだっけど

完成度低すぎて応募できなかったあのTenki Watcherの登場です。

snapcrab_tenko_2016-10-8_15-35-35_no-00

あっ、でもこれはまだ東京までしか対応してないんだった…

これの完成を待ってたら来年の夏になっちゃうので、諦めて新しく天気予報アプリを作ります。

ニュースはスタートメニューでもっと多くの記事をカテゴリー別に表示できるようにしたいです。

Leave a Reply