avg32 -> nscripter シナリオコンバーター

https://nyanonon.hatenablog.com/entries/2006/04/18#p2

 試してみました。Bless が ONScripter で動けばチャットの問題も解決するかなと思ったんですけど。

 動きませんでした。変換後の 0.txt には変換できなかった命令がコメントになっていいますが、かなーーりあります。動画とかは再生されず、真っ黒な画面。2 回クリックすると一瞬メニューが表示されて終わってしまいました。

 ソースを見ると・・・。う、if else if の嵐です。あーー、だめだこれ。自分のスタイルと合わないです。 

 プログラムの書き方にはいろいろありますが、ロジックの実現の仕方には2種類あると思っています。

  • 1つ目は、ロジック通りに制御文を使ってプログラムすること。
  • 2つ目は、テーブルを使ってロジックを実現すること。

 どちらがいいか悪いかということではありません。

 前者はロジックがそのままプログラムになっているのでプログラムを追いかければ良いのです。ただ、プログラムが長くなる傾向があり、修正もプログラム自体を直す必要があります。

 後者は、プログラムは非常にスッキリしますが、テーブル(データ)の意味がわからなければロジックを理解していたとしてもどうなっているのか分かりづらいです。

 そして、自分は後者のスタイルなのです。

 よく「データ構造とアルゴリズム」といいます。プログラムは、アルゴリズム(ロジック)だけで成り立っているのではなく、もう一方にはデータ構造があるのです。

 コンピューターは計算機です。計算するには対象となるデータが必要です。そして計算させるには計算させたいデータがあるはずです。

 自分はまず、データありき。だと思っています。処理したいデータがあり、そしてどういう結果を望むのか。データと結果の間にあるのがプログラムです。データが無いのであれば、プログラムも結果もないのです。

 結局、プログラムを書くには、まずデータ分析が必要になります。そして、そのデータをまとめていくと、テーブルが出来上がります。あとはそのテーブルを使ってプログラムを組み上げていくだけです。

 もっとも、はじめに十分なデータ分析ができるかといえば、自分はそこまでデータにこだわっていません。というか、完璧なデータ分析は無理です。世の中例外が多すぎます。

 また、すべての必要なデータを考えるのも無理です。はじめにデータをちょっとまとめて、プログラムします。そして、あ、このデータも必要だわ -> またデータをまとめてプログラムします。

 「データをまとめそのデータに対するプログラム」この繰り返しです。

 そして、if else if が多くなったり、switch だったりすると、データをまとめてテーブルにします。これが私のプログラムスタイルです。

 ONScripter で avi を再生できるようにしたのは、Bless がこのコンバーターでうまく行くかなと思って、それなら avi も再生したいと思ったからなんですけどね。

 ああ、それから、動かそうと思って、Bless の画像を bmp に変換したら、やっぱりあった。Kanon の画像。笑ってしまいました。あ、これに関しては、Basil と Key の間で話はついているようなので、突っ込んじゃだめです。

Raspberry Pi

Posted by sirius