mieki256's diary



2020/09/18(金) [n年前の日記]

#1 [lua] Lua用軽量IDE ZeroBrane Studio を試用

TIC-80用のスクリプトソースを Microsoft Visual Studio Code 1.49.0 (VS Code)で編集していたのだけど、どうもソースの自動整形設定が上手くいかなくて。TIC-80用のコードは、たしか64KB以内に収めないといかんので、できれば文字数は減らしたい。けれど、VS Code は読みやすいようにスペースを入れて整形してくれるから、その分文字数が増えてしまう。

自分は以前、何を使って書いてたのだろうと日記を検索してみたら、どうやら ZeroBrane Studio を使って作業していた時期があるらしい。ということで、Windows10 x64 2004上に、ZeroBrane Studio 1.90 (ZeroBraneStudioEduPack-1.90-win32.exe) をインストールして試用してみたり。

_ZeroBrane Studio - Lua IDE/editor/debugger for Windows, Mac OSX, and Linux

Download のページに飛んで、「Take me to the download page this time」をクリックすれば、DLできる。開発を支援したい場合は、いくらか払うこともできる。

各種設定は、日記を眺めながら再設定した。

_mieki256's diary - Lua用軽量IDE ZeroBrane Studio を少し試用

#2 [lua] Geany 1.36を試用

日記を検索していたら、Luaスクリプトを編集する際に Geany を使っていた時期もあるようで。一応インストールしておこうかなと…。環境は Windows10 x64 2004。

_Home | Geany

今回は、Geany 1.36 (geany-1.36_setup.exe) をインストールしてみた。

以前使った際は、文字を打ち込むと、GTK+ 32bitのバグで、何故か半角カタカナになってしまう不具合に遭遇したのだけど。今回試用した Geany 1.36 + Windows10 x64 2004 なら、その不具合は発生してないように見えた。

ていうか、日記を検索したら、以前も 1.36 をインストールして問題は起きてなかったらしい。

_mieki256's diary - Geany 1.36 をインストール

#3 [tic80] TIC-80のスクリプトがエラーを出す問題を調べてたり

自分が以前書いたTIC-80用のスクリプトが、0.70.6 ではエラーを出さないけれど 0.80beta ではエラーを出すあたりが気になって、原因を調べていたり。

どうも、0で除算をしているあたりが怪しい気がする…。
  -- adjust enable
  local vmax,vmin=0,0
  for i=1,#dt do
   if dt[i]>vmax then vmax=dt[i] end
   if dt[i]<vmin then vmin=dt[i] end
  end
  local range=vmax-vmin
  for i=1,#dt do
   dt[i]=math.floor(15*(dt[i]-vmin)/range)
   dt[i]=clamp(dt[i],0,15)
  end
range に 0 が入った時に、おかしくなるのではないか…。

以下のように書き換えたらエラーが出なくなった。
  -- adjust enable
  local vmax,vmin=0,0
  for i=1,#dt do
   if dt[i]>vmax then vmax=dt[i] end
   if dt[i]<vmin then vmin=dt[i] end
  end
  local range=vmax-vmin
  if range == 0 then
   for i=1,#dt do
    dt[i] = math.floor(15 * (0.5 * dt[i] + 0.5) + 0.5)
    dt[i]=clamp(dt[i],0,15)
   end
  else
   for i=1,#dt do
    dt[i]=math.floor(15*(dt[i]-vmin)/range)
    dt[i]=clamp(dt[i],0,15)
   end
  end

ただ、0.70.6 も、0.80beta も、0 を割ったり、0 で割ったりした際に、「そんな計算はできないよ」的な何かが入ってるっぽいのだよな…。

function TIC()
 cls(13)
 a = math.floor(15*(8-8)/0)
 print("a="..a, 0, 0)
 b = 10 / 2
 print("b="..b, 0, 8)
end

実行すると、「a=-nan(ind)」と表示される。0.70.6 も 0.80beta も結果は同じ。であれば、0.70.6 で実行した際にもエラーを出して止まりそうなものなのに、0.70.6 は動いちゃう…。何故。

以上、1 日分です。

過去ログ表示

Prev - 2020/09 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project