初めてのプログラム 3日目 SmallBASICで足し算プログラム

2010/3/16 読まれた回数1023
このエントリーを含むはてなブックマーク |  このページを Google Bookmarks に追加 | Yahoo!ブックマークに登録 | このエントリの Delicious history

3日目は変数について
昨日作った挨拶プログラムを改良して足し算計算機を作るよ

Small Basicを起動したら
昨日保存した挨拶プログラムを開く
「開く」をクリックして「ファイルを開く」が表示されたら
2_HelloNameを開く。
次にHelloNameが消えてしまわないように別の名前で保存する。

名前を付けて保存をクリックし、
名前を「3_Tashizan」にして保存する。


TextWindow.WriteLine("名前を入れてね")



TextWindow.WriteLine("元の値を入れてね")

へ書き換えて最初の値の入力を促そう。

挨拶プログラムでは文字列を取得するためにTextWindow.Read()を使用したけれど、
今回は数字を取得したいのでTextWindow.ReadNumber()を使用する。
2行目の

name = TextWindow.Read()



x = TextWindow.ReadNumber()

に書き換えよう。

これでxの値が入力された値となる。
このxのように、値を格納するモノのことを変数という。
変数に値を入れることを代入という

変数を使うことで、値を一時的に保存して後で使うことが出来る。
変数の値を格納するには
変数名 = 変数に入れる新しい値
と記載する。

数学で「=」と言えば、右辺と左辺が同一なことを意味するけれど、変数の代入の場合、
左辺の変数が右辺の値と同一になることを意味する。

足される値を入力する部分を作る。
3行目の

TextWindow.WriteLine("Hello "+name+"!")



TextWindow.WriteLine("足す値を入れてね")

に変更しよう。

4行目でキー入力の値を変数Yに代入する

y = TextWindow.ReadNumber()


二つの値を加算した値を変数aに代入する。

a = x + y


最後に計算結果を表示する。
TextWindow.WriteLine(x + "+" + y + "=" + a)

式が難しいので解説すると、
xは最初にユーザーが入力した値が代入されている。
yは次にユーザーが入力した値が代入されている。
aはxとyを足した値が代入されている。
ダブルクォーテーション「"」で囲まれた"+"と"=" は それぞれ、文字「+」と文字「=」を意味する。
それらを、+で繋ぐので
最初に入れた値 + 次に入れた値 = 足した値
が出力される。


プログラム全体は

TextWindow.WriteLine("元の値を入れてね")
x = TextWindow.ReadNumber()
TextWindow.WriteLine("足す値を入れてね")
y = TextWindow.ReadNumber()
a = x + y
TextWindow.WriteLine(x + "+" + y + "=" + a)


入力し終わったら実行ボタン
値を2度入力すると2つの値を足した結果が出力される。
何かキーを押して画面を終了されたら保存を押してプログラムを保存しよう
初めてのプログラム 4日目 SmallBASICで四則演算プログラム



関連キーワード

[簡易言語][SmallBasic][IT]

コメントを投稿する

名前URI
コメント

トラックバック URL(β)

SmallBasicで倉庫番風ゲームを作ったよ

2010/3/15 読まれた回数917
このエントリーを含むはてなブックマーク |  このページを Google Bookmarks に追加 | Yahoo!ブックマークに登録 | このエントリの Delicious history

ちょっと地味なプログラムが続いたので
初めてのプログラムを少し休憩して、SmallBasicで倉庫番風ゲームを作ったよ
ボール転がし
荷物ではなく、ボールを転がして穴に埋めていくゲームです。
けれどルールはあのゲームと同じです。

前回はGraphicWindowで作ったので今度はTextWindowで作ってみた。
正直地味なのでGraphicWindowで作った方が愉快だったかもしれん・・・

ソースコードの解説は割愛
「初めてのプログラム」で、紹介できたらいいな
GraphicWindowへの移行とかも紹介したい

ソース全文はこちら


STAGE1:
width = 7
mapx = ""
mapx = mapx + "XXXXXXX"
mapx = mapx + "X XX_X"
mapx = mapx + "X O_OYX"
mapx = mapx + "X X X"
mapx = mapx + "X_O X"
mapx = mapx + "XXXXXXX"
SETSTAGE:
count = Text.GetLength(mapx)
SHOWMAP:
userIndex = 0

For i=1 To count
maps[i] = Text.GetSubText(mapx,i,1)
EndFor
While "True"
ballCount = 0
For i=1 To count
If maps[i] = "X" then ' Wall'
TextWindow.ForegroundColor="White"
ElseIf maps[i] = "Y" Then 'User'
TextWindow.ForegroundColor="Red"
userIndex = i
ElseIf maps[i] = "v" Then 'UserInHall'
TextWindow.ForegroundColor="DarkRed"
userIndex = i
ElseIf maps[i] = "O" Then 'Ball'
TextWindow.ForegroundColor="Yellow"
ballCount = ballCount + 1
ElseIf maps[i] = "o" Then 'BallInHall'
TextWindow.ForegroundColor="DarkYellow"
ElseIf maps[i] = "_" Then 'Hall'
TextWindow.ForegroundColor="Green"
EndIf
TextWindow.Write(maps[i])
If math.Remainder(i,width) = 0 Then
TextWindow.WriteLine("")
EndIf
EndFor
If ballCount = 0 Then
Goto Clear
EndIf
TextWindow.WriteLine("")
TextWindow.WriteLine("move")
TextWindow.WriteLine(" 8")
TextWindow.WriteLine("4 6")
TextWindow.WriteLine(" 2")
TextWindow.Write(" >")

move = TextWindow.ReadNumber()
If move = 8 Then 'Move up'
onePoint = userIndex-width
twoPoint = onePoint-width
ElseIf move = 4 Then 'Move left'
onePoint = userIndex-1
twoPoint = userIndex-2
Elseif move = 6 Then 'Move right'
onePoint = userIndex+1
twoPoint = userIndex+2
Elseif move = 2 Then 'Move down'
onePoint = userIndex+width
twoPoint = onePoint+width
EndIf

If (maps[onePoint] = "O" Or maps[onePoint] = "o") And (maps[twoPoint] = " " Or maps[twoPoint] = "_") Then
'Move stone'
If maps[twoPoint] = " " Then
maps[twoPoint] = "O"
Else
maps[twoPoint] = "o"
EndIf
If maps[onePoint] = "O" Then
maps[onePoint] = " "
Else
maps[onePoint] = "_"
EndIf
EndIf
If maps[onePoint] = " " Or maps[onePoint] = "_" Then
'Move user'
If maps[onePoint] = " " Then
maps[onePoint] = "Y"
Else
maps[onePoint] = "v"
EndIf
If maps[userIndex] = "Y" Then
maps[userIndex] = " "
Else
maps[userIndex] = "_"
EndIf
EndIf

TextWindow.Clear()
EndWhile
Clear:
For i=1 To 20
TextWindow.Clear()
If math.Remainder(i,2) = 0 Then
TextWindow.Write(" ")
EndIf
TextWindow.ForegroundColor = "Blue"
TextWindow.Write("v(^_^)v ")
TextWindow.ForegroundColor = "Cyan"
TextWindow.Write("v(^_^)v ")
TextWindow.ForegroundColor = "Green"
TextWindow.Write("v(^_^)v ")
TextWindow.ForegroundColor = "Magenta"
TextWindow.Write("v(^_^)v ")
TextWindow.ForegroundColor = "Red"
TextWindow.WriteLine("v(^_^)v")
Program.Delay(300)
EndFor
TextWindow.ForegroundColor = "White"
TextWindow.WriteLine("Clear")


関連キーワード

[簡易言語][SmallBasic]

コメントを投稿する

名前URI
コメント

トラックバック URL(β)

初めてのプログラム 2日目 SmallBASICで挨拶プログラム

2010/3/14 読まれた回数770
このエントリーを含むはてなブックマーク |  このページを Google Bookmarks に追加 | Yahoo!ブックマークに登録 | このエントリの Delicious history

2日目はデータの入力について
昨日作ったHelloWorldを改良して挨拶プログラムを作るよ

Small Basicを起動したら
無題が表示されるので無題の右側にあるxを押して閉じてしまおう。

次に昨日保存したHelloWorldを開く
「開く」をクリックする


「ファイルを開く」が表示されたら1_HelloWorldを開こう
今日はこのプログラムを改造して別のプログラムにしてしまうので、
HelloWorldが消えてしまわないように別の名前で保存する。

名前を付けて保存をクリックしよう


名前を「2_HelloName」にして保存する。


これで、これから「保存」を押しても「2_HelloName」に保存されるようになる。


TextWindow.WriteLine("HelloWorld!")



TextWindow.WriteLine("名前を入れてね")

へ書き換えて名前の入力を促すメッセージにしよう

キーを受け付けるには

TextWindow.Read()を使用する。

2行目に


name = TextWindow.Read()

と入力する。
こうするとキーで入力した内容がnameに格納される。

入力した内容を元に入力した人へ挨拶しよう。
文字を繋ぐには + を使う
3行目に

TextWindow.WriteLine("Hello "+name+"!")

と入力する。

プログラム全体は

TextWindow.WriteLine("名前を入れてね")
name = TextWindow.Read()
TextWindow.WriteLine("Hello "+name+"!")



入力し終わったら実行ボタン
「名前を入れてね」と表示されるので
名前を入れてエンターキーを押す。


Hello 入力した名前!
Prease any key to continue...

と表示されたら成功

何かキーを押して画面を終了されたら保存を押してプログラムを保存しよう

初めてのプログラム 3日目 SmallBASICで足し算プログラム

関連キーワード

[簡易言語][SmallBasic]

コメントを投稿する

名前URI
コメント

トラックバック URL(β)

RSSで読むRSSフィードを購読

プロフィール

kenz

新しいものが大好き
仕事ではクラウドをプライベートではAndroidアプリを作ってます。
最近、プログラムしている人が減っているのでSmallBasicの紹介記事でプログラム好きな人が増えてくれたら嬉しい

FriendFeed

日記の一覧

follow me

☆最新コメント

近況報告 
kenz:うん、タイムライン組...

近況報告 
Take:写真をiphotoに...

音楽が異常にいいゲー 
kenz:思った以上に曲数が増...

最近の日記

kenz 9月2日
Apple新製品発表

kensei 8月26日
次の

京 7月28日
postgresでクエリ結果をファイルに書き出し。 (1)

jyun 6月30日
いよいよ福岡へ (1)

あわせて読みたいブログパーツ