Basicを触ってC#との違いを知る


[【完走目指す】初心者が25日で強くなる Advent Calendar 2022](https://qiita.com/advent-calendar/2022/aruhitoganbaru)
５日目です。「プチコン3号」を使います。
この記事を書いている途中、「Visual Basic」とかいうものの存在を初めて知りました。
C#:VisualStudio 2019
BASIC:プチコン３号
# そもそもBasicとは
昔のパソコンはこれで動いてたらしいですね。
プログラミング言語のご先祖様でしょうか。
>誕生したのが1964年であり、当時普及していたプログラミング言語FORTRANにいくつかの点で似ている。構文は、FORTRANの文法が基になっているとしばしば解説されている。
BASICはインタープリタ方式で動くものと、コンパイラ方式で動くものに大別できる。現時点では、構文の様式が大きく異なる2種類のBASICが存在している。構造化前のBASICと、構造化後のBASICである。
[引用：ウィキペディア　BASIC](https://ja.wikipedia.org/wiki/BASIC)

ちょうど東京オリンピックが行われた年に生まれたみたいです。2022年現在、もう58歳になります。
## プチコン３号とは
[SMILE BASICホームページ](http://smilebasic.com/)
3dsのソフトです。500円で買えます。BASIC言語が使えます。ほかにもシリーズはあるそうです。前に買っておいたし、せっかくなので使ってみます。　
![IMG_0624[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/b9c1e51d-99f4-9acf-ccbc-f718086a4008.jpeg)
実際にプチコン３号を使います。

![IMG_0628[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/981c2c16-eb38-48f9-0df0-0aeb82a5470c.jpeg)
下画面をご覧ください。
DIRECTとEDITに分かれています。
DIRECTでロードやセーブを行い、EDITでプログラムを打っていきます。
SMILEボタンを押すと、音楽や効果音、画像などが出てきます。
サンプルのゲームもいくつか用意されていました。

# 自分的　違い10選
本題に入ります。
とりあえず適当に10個くらい挙げてみます。
### １．命令
C#では予約語と呼んでいるものを、BASICでは命令といいます。
### 2.if
C#では、
if(条件式)
{
 処理
}
else{
処理
}

でしたが、BASICでは
IF 条件式　THEN 処理 ELSE　処理
になっています。
一文であらわせます。また、（）がいらないのが便利です。
### 3.print
BASICでは、PRINTを使うことで画面に文字を出すことができます。
C#ではWriteLineというのを使うっぽいです。
ためしに、それぞれ画面に文字を出してみます。
画像 BASIC![IMG_0629.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/1174936c-fd86-0c5e-92cf-a441401dd38e.jpeg)

文字が出ました。
PRINTの後、表示したい文字を「"」でくくるようです。
ちなみに、VisualStudioで文字を表示させようと思ったらもう入ってました.
以下がコードです
```
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
```
文字が多いですね。
BASICほどシンプルではないようです。

![スクリーンショット_20221202_230606.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/dd9f8104-42d4-6ea5-8d5a-22c2c6a14830.png)
文字が見切れてますが、ちゃんと出ました。
### 4.for
basicでは、以下のようになります。![IMG_0630[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/f1c89588-13a3-13ca-7932-70d326988a51.jpeg)
C#ではforの後に(条件式)が入り、NEXTは使ってなかったと思います。
### 5.RND
何となく想像がつきます。ランダムです。
画像RND
![IMG_0631[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/70b51f2d-7719-f5b7-1d39-3b148ee4601e.jpeg)

BASICではランダムな値をこんな感じで簡単に取得できます。
C#はRandom.Range(最小値,最大値)だったかと。調べたらほかにもいろいろあるっぽいです。
### 6.LOAD/SAVE
説明は、多分書かなくてもわかると思います。
セーブとか、ロードとかも一文書かなければならないです。
C#でそんなことをした覚えがないので、多分ありません。
### 7.CLS
![IMG_0633[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/d0e43c5b-04ea-9d35-c688-d26fa532369b.jpeg)
これを実行すると
![IMG_0634[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/f9d0494b-d7b7-447f-2429-4e20b0d95b6c.jpeg)
さっきまでのやつが全部吹っ飛んで消えます。
### 8.COLOR
色が付きます。
色は数字で管理してやります。
通常はCOLOR 文字,背景,境界,描画,パレット
プチコン３号ではCOLOR　描画色,背景色で変わるようです。
試しにやってみました。
![IMG_0635[1].JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/315d0630-399c-5b69-57c9-15f217ac2e28.jpeg)
適当に色合いを選んだら見にくくなりましたが、ちゃんと色が変わります。
C#では、たぶん一文で簡単にできるやり方はないかもしれません。
### 9.STOP
動かしているものを止めるためのものです。
C#にこんなものありません。ないはずです。多分ないです。
### 10.RUN
プログラムを実行するための命令です。
BASIC専用かと思われます。
# 調べた結果
BASIC限定、C#限定のものもある。
でも、見た目が変わったけど中身が同じなもの（例えばif文とか、for文とか）もあった。
ここでは紹介しきれなかったけど、三角関係のsin,cos,tanなんかはどっちでも使える。
# 感想
BASIC、思ってたよりよかった。
どっちも楽しい。

5日目終わり。