RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

相互変換モジュール HSPの簡単な使い方1

過去ブログの転載です。

相互変換モジュールではプログラミング言語HSPを使用しますので、ここではHSPの簡単な使い方について説明します。

HSPとは、Hot Soup Processorの略であり、どっちかと言うとC言語などよりはBASIC寄りの言語です。

↓公式HPから無料でダウンロードでき、簡単にインストールして試せます。

https://hsp.tv/idman/download.html

このプログラムの特徴は何より色々なことが簡単であることでしょう。書くのも簡単ですし、実行するまでの過程も簡単です。ちょっとプログラミングをされたことのある方であれば、導入は秒でしょう。

ということで、相互変換のモジュールを扱う上で必要となる最低限のことについて説明を書いていきます。バージョンは3.3です。

基本的に、「HSPスクリプトエディタ」を用いて作成します。黒い画面にプログラムを打っていくわけですよ。

f:id:fermiumbay13:20190801134503p:plain

ではまず、「F5」を押してみましょう。「F5」はコンパイル+実行を行うキーで、書いたプログラムを動かすときに押します。何も書いてないけど、とりあえず実行してみましょう。

f:id:fermiumbay13:20190801134513p:plain

真っ白なウィンドウが表示されるはずです。

この言語はなんと、何も書いてなくてもウィンドウが表示されるのです。すごいことじゃないですか。Javaなどをやったことある方は、ウィンドウ出すことさえも大変だということを身に染みてご存じでしょう。何も設定しなくても、ウィンドウは出るのです。いいですねぇ。

相互変換モジュールを扱う際には、最低限のことが出来れば十分ですので、ウィンドウのことは特に説明しません。

実際に何か打ってみましょう。打ってみますよ。

mes "ひひひひひひひひひひ"

このように打ってみましょう。「mes」の直後に半角スペースを空けて、引用符("")で文字列を囲みます。実行してみましょう。F5を押すんですよ。

f:id:fermiumbay13:20190801134524p:plain

ほらほら、このようにメッセージが出ました。mesとは、messageの略らしいです。そうです。メッセージを表示する命令です。

HSPでの命令の表記は、

『命令』(半角スペース)『引数』『,』『引数』『,』『引数』『,』……

といったスタイルになっています。「引数」とは命令を実行するときに使われる値のことです。mes命令の引数は「表示させたい文字列」ということになりますね。

文字列は""で囲んで表します。他の言語をやったことのある方はきっと分かりますね。

文字列は""で囲む必要がありますが、文字列じゃなかったら囲まなくていいということになります。

mes 5
mes 3+8
mes 2-(3*5+8)/3

↑""で囲むと文字列と見なされてそのまんま表示されますが、このように""で囲まない場合、数式の計算結果が表示されるようになります。C言語とちがい、改行の際に「;」を付ける必要はありませんよ。

上のプログラムを実行すると、縦に5、11、-5と表示されるはずです。mesを連続して実行すると、順番に文字が下へ表示されていきます。

ここで、3番目の数式でどうして-5.6666……にならず-5になっているかというと、通常書かれた数は「整数」と見なされ、答えは「整数」で出てくるのです。つまり、整数÷整数の答えは、小数点以下は切り捨てられて整数になります。RPGツクールもそうですよねぇ。まあ、そういうことです。

小数点以下も扱える「実数」という型もありますが、割愛します。

【算術演算子

+ たす
- ひく
* かける
/ わる
\ あまり

※ 「*」「/」「\」が、「+」「-」より先に計算されます。

色々数式を表示させてみてくださいね。

表示だけじゃおもしろくないでしょうから、次は「変数」に参ります。変数は、RPGツクールをやっている方なら知っているでしょう。「値の入れ物」のことですね。整数だけでなく、文字列も入れることが可能です。

a = 5
mes a*2

a=5とは、「変数aに5を代入する」という意味です。等しいという意味ではありません。ですから、5=aと書いてはいけません。この「=」は、「代入」という意味になります。変数は好きなときに勝手に用意して構いません。てきとうに名前を付けて、何か値を代入すれば変数が出来上がります。

↑このプログラムではaに5を代入しましたので、a*2を表示させたいとすると、画面には「10」と表示されます。

色々試してみましょううね。

a = 8
b = 3
c = 4
d = a+b+c
mes d/3

↑「5」と表示されるはずです。変数はメモリが許す限り作れます。

r = "こんにちは。"
mes r

↑変数には、文字列も代入できます。

a = "あい"
b = "うえお"
mes a+b

↑文字列で「+」を使うと、連結という意味になります。「あいうえお」と表示されますね。「-」とか「*」は使えませんよ。

複数行の文字列を表示したいときは

mes "1行目"
mes "2行目"
mes "3行目"

とすれば良いですが、

mes {"
1行目
2行目
3行目
"}

と表記したり、

mes "1行目\n2行目\n3行目"

と表記したりもできます。「\n」は改行を意味する記号となります。「\」そのものを表示させたいときは、「\\」と書きます。ツクールと同じですねぇ。

とりあえず文字の表示と、変数の作り方だけやってみました。まだこれだけでは、わざわざ相互変換するメリットが感じられませんよね。今度から色んな便利な命令を紹介していきますね。