2020年01月20日

師匠TのチャレンジARSゲーム!~第拾八回:萌しむ~グロス・ぱいッ!チュラント⊂彡~【しるふ・わーくす】

ars2001-00.JPG

うむ、師匠Tである!

今回は、久しぶりにシミュレーションゲームを紹介するぞ!
紹介するのは、『萌しむ~グロス・ぱいッ!チュラント⊂彡~』。フリーゲームながらも、かなりできたSLGじゃ。
タイトルに、『萌』と気になる字があるものの、気にせず挑んでいくぞ。

ではいくぞ!

どんなゲームも完全制覇じゃっ!!

【 本編 】

ars2001-01.JPG
高笑いをあげるこいつが、かの有名な独裁者、アドルフ・ヒトラー。今回の主人公じゃ。
有名な独裁者な彼じゃが、まさかあんな性癖があろうとは……このわしの目を持っても見抜けなんだわ!
(性癖については、萌しむ内だけの設定であり、史実というわけではありません。ご注意ください)

ars2001-02.JPG
そして、こいつが腹心にして黒幕のエリカ。おちびじゃが、毒舌鋭く、頭脳明晰なおなごじゃ。
こやつとヒトラーの漫才はなかなか面白いぞ。

ars2001-03.JPG
さて、ゲームを進めていくとしようぞ。ゲームはいくつかのフェイズに分かれる。
まず軍備フェイズでは、兵器の生産や、工場の増設などを行っていく。戦力を増強させるために必要なことを考えながら、進めていくのじゃぞ。

ars2001-04.JPG
続いて作戦フェイズ。ここでは、部隊をどこに進めていくかを決めるのじゃ。
進軍するのもいいが、気をつけぬとがら空きになった自領を攻められることもあるから気を付けるのじゃ!

ars2001-05.JPG
そして、敵部隊のいるエリアに侵入すると戦闘になる。隊列などを決めたら、後は部隊の能力を信じるのじゃ!
さて、この後どうなるかは……。

ここから先は、キミの目で確かめるのぢゃっ!!
健闘を祈っておるゾ!!

※このゲームの著作権は、しるふ・わーくす 様にあります。
※この記事に使われている画像の二次創作を禁じます。

==========
※次の更新は、特集『言語ソフトMysticSLを紹介!』です。お楽しみに!
posted by 裏編 at 09:53| Comment(0) | チャレンジARS | 更新情報をチェックする

2020年01月16日

師匠のVB.NETどたばた塾~第5回

sisyo.gif
師匠T:さて、今回はいきなり謝らねばならぬことがある。

deshi.gif
弟子D:

sisyo.gif
今回は『クラスについて話す』と予告しておいたが、その前に、VB.NETのプログラミングに置いて欠かせぬ要素『関数とサブルーチン』について話すのを忘れておった。なので、クラスについては次回に回し、今回はその関数とサブプロシージャについて説明することとする。了承していただきたい、すまぬ。

deshi.gif
師匠が謝るなんて珍しい。

sisyo.gif
おぬしも一度、謝ってみるか?

deshi.gif
謹んでご遠慮申し上げます。

sisyo.gif
……。
こほん、それでは始めていくとしようぞ。

【まずは概要からじゃ!】

sisyo.gif
まずは、サブルーチンからじゃな。とはいっても、関数もサブルーチンも基本は同じ。特定の処理をまとめたものじゃ。例えば、VB.NETに基本で備わっているVal関数は、文字を数値に変換するための処理をまとめたもの、という具合じゃな。

deshi.gif
確か、値(戻り値)が返されるものが関数、でしたっけ。

sisyo.gif
うむ。その通りじゃ。対して、戻り値が返されぬものをサブルーチンと区別しておる。そしてそれらを総称して、プロシージャと呼ぶのが一般的じゃ。
詳しくは、以下の図を見るべし。

プロシージャ-+--関数(戻り値が返されるもの)
       |
       +--サブルーチン(戻り値が返されないもの)

deshi.gif
ふむふむ。

sisyo.gif
そして、このプロシージャを使うことによって、メインの処理をすっきりさせることができる。だらだらと処理を書き連ねるより、その関数やサブルーチンの名前だけを書けば済むことを想えば、一目瞭然じゃろ?

deshi.gif
そうですね。

sisyo.gif
そして、プロシージャの利点はそれだけではないぞ。汎用性のあるプロシージャを一つ作っておけば、それをプログラムのあちこちで使いまわすことができる。これは、プログラミングをするうえで、大いに助けになるであろう。

deshi.gif
はい。

sisyo.gif
それでは、いよいよプロシージャの作り方、使い方についてレクチャーしていくぞ!

【サブルーチンを作るのじゃ!】

sisyo.gif
さて。まずはサブルーチンの作り方について説明していくぞ。といっても簡単。

[Public] Sub サブルーチン名([引数1 As 引数1の型, ……])

End Sub

sisyo.gif
このSub~とEnd Subの間に、目的の処理を書けばいいだけじゃ。なお、[ ]で囲まれている部分は、省略できることを表しているぞ。例としてはこんなところじゃ。

Sub Sisyo1(A As Integer)
End Sub
-----
Sub Sisyo2()
End Sub

deshi.gif
引数というのは、確か呼び出し先から渡された数が入る変数みたいなもののことですよね。

sisyo.gif
うむ。その通り。例えば……

Sub Sisyo3(hiki1 As Integer)
End Sub

sisyo.gif
というサブルーチンがあったとして……

Sisyo3(5)

sisyo.gif
呼び出し元のほうで上のように呼んでやると、hiki1に5が入る、というわけじゃ。なお、引数を入れる変数として宣言したものは、Dim文で宣言することはできぬ。ここには気を付けること。

deshi.gif
はい。それで、頭にPublicとつけることができるようですが、これをつけるとどうなるのですか?

sisyo.gif
うむ。これをつけると、そのサブルーチンは、そのプロジェクト(プログラム全体のようなものと思うがよい)のどこからでも呼び出すことができるようになるのじゃ。

deshi.gif
ふむふむ。

sisyo.gif
今回は、Module1という一つのソースファイル内で完結しておるから、Publicを使う機会はあまりないが、この先、複数のソースファイルで構成されるプログラムを組むさいには必要になってくる。覚えておくようにな。

deshi.gif
はい!

sisyo.gif
なお、引数についてじゃが、複数の引数がある場合は、『引数名 As 引数の型』をコンマで区切る。こんなようにの。

Sub Sisyo4(hiki1 As Integer, hiki2 As Integer)

deshi.gif
ふむふむ。

sisyo.gif
また、引数の指定にはちょっと難しい使い方がある。それがOptionalじゃ。

deshi.gif
おぷしょなる?

sisyo.gif
うむ。Optionalをつけた引数は、省略することができるようになるのじゃ。Optionalを使う時は、このように書く。

Optional 引数名 As 引数の型=初期値
例:Sub Sisyo4a(Optional hiki1 As Integer=0)

sisyo.gif
例の場合、引数を渡さずに呼び出した場合は、hiki1には0が入るのじゃ。

deshi.gif
なるほど、これは便利ですね!

sisyo.gif
そうじゃろう。さて、呼び方だが、とても簡単。こう書けばいいだけじゃ。

サブルーチン名([引数1, ~])

例:
Sisyo5()
Sisyo6(5)
Sisyo7(4, 2)

sisyo.gif
こちらも、引数が複数ある場合は、コンマで区切って書く。また、引数を必要としないサブルーチンの場合は引数を書かなくてよい、というか書いてはならぬ。無理に書くと、ビルドエラーが起こるので気を付けるようにの。

deshi.gif
はい!

sisyo.gif
では次は、関数について説明していくことにするぞ!

【関数を作るぜ!】

sisyo.gif
さて、関数とはプロシージャの中でも、呼び出し元に値を返すものだと話したな。

deshi.gif
はい!

sisyo.gif
では、それを踏まえたうえで、関数の宣言について教えよう。これじゃ!

[Public] Function 関数名([引数1 As 引数1の型, ……]) As 戻り値の型

End Function

sisyo.gif
Publicや引数については、サブルーチンと同じだから、ここでは割愛するぞ。

deshi.gif
Subではなく、Functionを使うところと、戻り値の型をつけるところがサブルーチンと違うんですね。

sisyo.gif
うむ、その通り。さて、戻り値の返し方だが、二つの方法がある。まず一つは、このように書くこと。

関数名=戻り値
例:Sisyo8=5

sisyo.gif
そしてもう一つは、Return文を使うことじゃ。

Return 戻り値
例:Return 5

sisyo.gif
ここで注意点を一つ。先の引数の注意点と同じく、関数の中では、関数と同じ変数をDim文で宣言することはできぬ。宣言しようとするとビルドエラーが出るので気を付けることじゃ。

deshi.gif
はい。

sisyo.gif
さて使い方じゃが、このように作られた関数は、VB.NETに標準で供えられておる関数と同じように使うことができる。つまり、ただ変数に入れるだけではなく、式の一部として使ったり、表示させたりできるわけじゃな。

例:
a = Sisyo9(5, 2)
b = Sisyo10(1000, 0.3) + 1000
Console.WriteLine(Str(Sisyo11(4, 2))

deshi.gif
なるほど、わかりました、師匠。

sisyo.gif
プロシージャをうまく使えば、プログラミングがとても楽になる。精進することじゃ。
さて、次回は改めて、クラスについて説明していく。予習、復習を忘れてはならぬぞ!

deshi.gif
でも、師匠が学生時代のころは……?

sisyo.gif
はあっ!!(飛び蹴り

==========
※次の更新は、『師匠TのチャレンジARSゲーム!』の予定です。お楽しみに!

posted by 裏編 at 12:43| Comment(0) | 師匠のVB.NETどたばた塾 | 更新情報をチェックする

2020年01月14日

昔のBASICをWindowsで!~PC-6001用互換BASICを使ってみよう!

 あけましておめでとうございます!
 今年も、B-Magaをよろしくお願い致します!

 さてさて、今月の特集、そして令和2年最初の記事は、Windows上で昔のBASICを使ってみようというお話です。
 昔『風』のBASICを使うソフトといえば、N88互換BASICや99BASICなどがありますが、今回紹介するのはそれとは違い、昔のPCのエミュレータで、昔のPCのBASICを使ってみよう、というものです。
 おっと、エミュレータと聞いて、腰が引けた方もいるかもしれませんが……

 大丈夫です!

 今回紹介する方法は、著作権法に一切触れることはありません。安心して試してみてください。

~まずはエミュレータ!

 まずはエミュレータをダウンロードしましょう。今回使うのは、PC-6001のエミュレータ。その中でも、機能がシンプルで使いやすい、iP6 Plusを使ってみます。このエミュレータは、こちらからダウンロードすることができます。


 『旧版ダウンロード』の下にある、『2019/9/18 4.9 β1 Windows のバイナリー 32ビット版 (zip アーカイブ)』をクリックしてダウンロードします。
 なお、他のPC-6001エミュレータがいい、という方は、そちらを使ってもOKですよ。
 さて、ダウンロードしたら、それを解凍しましょう。それで、エミュレータの準備はOKです。

~続いてはBASICのROMとCGROM!?

 続いて、BASICのROM(BASICのシステムが入ったファイルと思ってください)をダウンロードします。使うのは、こちらの『PC-6001用互換BASIC』です。


これは、フリーソフトでありながら、N60-BASICをかなり高度に再現した優れものです。公式サイトによれば、ROM内ルーチンもかなり再現してあるとのこと。すごい!
 さて、ダウンロードしたら、これを解凍しましょう。すると、BASICROM.60、BASICROM.62というファイルがありますので、これを先ほどエミュレータを解凍したのと同じフォルダにコピーします。
 そして最後に、CGROMを入手します。これは、BASIC上で使われるフォントがまとめて入ったものです。こちらも著作権的に問題ない、フリーのものがありますので、そちらを使いましょう。こちらからダウンロードできます。お好きなのをどうぞ。


 ダウンロードしたら、やっぱり解凍し、その中のCGROM60.60というファイルを、エミュレータを解凍したのと同じフォルダにコピーしましょう。これで準備はOKです!
 あとはエミュレータを起動させれば、あの懐かしいHOW MANY PAGES?の画面が出てくるはずです。
 ただ、時にフリーズしてしまう場合がありますが、その時は、一度エミュレータを強制終了させて、ip6kai.iniというファイルをメモ帳などで開き、

P6Version=〇
とあるところを
P6Version=0
に書き換えましょう。これで動くはずです。

tk2001-01.JPG
▲ ごかんBASICが動いたぞ!

 あ、そうそう。それと、エミュレータがWindowsのセキュリティに引っかかってこんな画面が出てくることがあります。

tk2001-02.JPG
▲ セキュリティに引っかかるとこんな画面が出る

その時は、ここをクリックして……

tk2001-03.JPG
▲ ここをクリック!

このボタンをクリックすればOKですよ。

tk2001-04.JPG
▲ このボタンを押すのだ!

~実力のほどはいかに?

 さて、このPC-6001用互換BASICの再現度ですが、かなりのものでした。
 今回は、オールBASICのプログラムと、マシン語を使ったプログラムを動かしてみたのですが、どちらも問題なく動きました。
 まさかマシン語を使ったプログラムまで動くとは。このBASIC、なかなかのものです。

~PC-6001しかないの?

 さて、今回紹介したPC-6001用互換BASICは、PC-6001のデフォルトのBASICであり、上位機種であるPC-6001mk2が持つ5つのBASICのうち、一番低機能なN60-BASICを再現したものです。
 では、例えば5つのBASICの中でも最も新しく性能もいいN60m-BASICはできないのか、というと、さにあらず!
 配布サイトではなんと! PC-6601のN66-BASIC(このN66-BASICは、一部の機能が追加されたほかは、N60m-BASICと同等のものです)を再現した互換BASICも配布されています。
 ただし、こちらを使う場合には、CGROMを色々工夫する必要があります。それについては、これまた配布サイトにて紹介されているので、興味がある方は、挑戦してみてはいかがでしょうか?

~最後に

 ここまで、エミュレータで合法的に昔のBASIC(互換ですが)を使う方法を説明してきましたが、いかがでしたでしょうか?
 イマドキの言語でプログラミングをするのもいいですが、昔のBASICで、あの頃に想いを馳せてプログラミングをするのもオツなものかもしれません。
 もちろん、B-Magaでは、このPC-6001用互換BASIC(PC-6601用互換BASICも)用のプログラミングの投稿も、お待ちしていますよ!

※次の更新は、『師匠のVB.NETどたばた塾』の予定です。お楽しみに!
posted by 裏編 at 09:10| Comment(0) | 特集 | 更新情報をチェックする