2011年11月28日

とにかく、Small Basicを始めてみます

 「Microsoft Small Basic プログラミング入門」

(ダウンロードしたチュートリアル)を一通り終えて、さっそく何か作ってみたいのですが、何せド素人なので何一つ良いアイデアが浮かびません。
 そこで、山田昌良さんの書かれている、

 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)
 山田さんはSmall Basic の日本語化にも携われたようです。
 全部で5ページありますが、最初のページはSmall Basicの紹介、導入法ですので飛ばして、2ページ目のサンプルをやってみたいと思います。全く同じではあまりにも芸がないし勉強にもならないので、ほんの少ーしだけ改造してます。

 <サンプル1:ボールが転がる>

GraphicsWindow.Width=480 …ウィンドウの幅を指定
GraphicsWindow.Height=320 …ウィンドウの高さを指定
GraphicsWindow.BackgroundColor="White" …バックの色を指定
GraphicsWindow.Title="ボールが左から右に動く 2011.11.22" …ウィンドウのタイトル指定
GraphicsWindow.DrawLine(0,210,480,210) …地面のラインを描く
x=0 …ボールのx座標
y=160 …ボールのy座標
ball=Shapes.AddEllipse(50,50) …直径50の円をballと定義
For x=0 To 430 …ボールのx座標を1ずつ増やす
  Shapes.Move(ball,x,y) …ボール(ball)を座標(x,y)に動かす
  Program.Delay(10) …ほんの少し待ち時間を作る
EndFor …繰り返して右の壁にぶつかってお終い









 もう一度やってみる場合は、ブラウザで記事の更新をしてください。(要Microsoft Silverlight) -----------------------------
 まったくプログラミングを初めての方へ
 何だか難しそう、と思われるかも知れませんが、とにかく、その通り打ち込んでください。チュートリアルもやってみてください。とにかくコピペじゃなくて、自分で打ち込むことが大切だと思います。私も50歩100歩で変わりませんので、偉そうなことはいえませんが…。
 
posted by Shindo Izo at 20:58| Comment(0) | プログラム練習 | 更新情報をチェックする

2011年12月01日

ラケットを動かす Small Basic

 今日も、山田昌良さんの書かれている、

 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)

 <サンプル2:ラケット自由自在>
 サンプルプログラムの2番目は、図形(四角形)をマウスの動作に従って動かせるようにするものです。


GraphicsWindow.Title="ラケット自由自在 2011.12.1" …ウィンドウのタイトル指定
'
Mouse.HideCursor() …マウスカーソルを隠す
raketto=Shapes.AddRectangle(100,20) …横100縦20の大きさの四角形をrakettoと定義
'
Kurikaesi: …場所指定(番地の看板のようなもの)
  Shapes.Move(raketto,GraphicsWindow.mousex,GraphicsWindow.mousey) …rakettoで定義された形をマウスの位置(x,y座標)に描くよう指示
    If Mouse.IsLeftButtonDown Then …もしマウスの左ボタンを押されたら、…
      Goto Owari …Owariに行くよう指示
    EndIf …If〜の終了宣言
Goto Kurikaesi …Kurikaesiに行くよう指示
'
Owari: …場所指定(番地の看板のようなもの)


 Kurikaesi:とOwari:(私が勝手に定義したもの)は場所を表しているので、何も起こりません。
 プログラムをブログに貼り付けるとどうしても重たくなるのでやめました。こちらのサイト(マイクロソフトのサイトです)に行けば見られます。
ラベル:Small Basic
posted by Shindo Izo at 18:24| Comment(0) | プログラム練習 | 更新情報をチェックする

2011年12月07日

ボールキャッチゲームを作る Small Basicの練習

今日も、山田昌良さんの書かれている、


 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)


<サンプル3:ボールキャッチゲーム>
 サンプルプログラムの3番目は、上から落ちてきたボールを下のラケットで受け取る、という簡単なゲームです。非常に簡単なゲームなので、面白いというのは無理ですが(笑)、少しはまりました。
 プログラムはこちらへ。上部のList Program をクリックすると何回でもできます。(要Silverlight)


GraphicsWindow.Title="ボールキャッチゲーム 2011.12.6" …ウィンドウのタイトル指定
GraphicsWindow.DrawText(0,0,"5球のボールをラケットの中心でキャッチ(100点満点)") …ウィンドウの(0,0)にゲームの内容を表示
GraphicsWindow.DrawText(50,50,"パーフェクト(100点)を目指せ!") …同上(座標(50,50))
'
raketto=Shapes.AddRectangle(50,20) …ラケットの定義
ball=Shapes.AddEllipse(20,20) …ボールの定義
score=0 …スコアーの初期数値
'
For i=1 To 5 …5回(5球分)繰り返す
  Sound.PlayMusic("o7c8") …サウンド(オクターブ8、ド、8分音符)を鳴らす
  x=Math.GetRandomNumber(GraphicsWindow.width-20) …ボールのX座標をランダムに得る(0〜最大値:ウィンドウの幅弱)
  y=0 …ボールのY座標(常に0)
  '
  While y<GraphicsWindow.Height-40 …ボールのY座標がラケットの位置より上の場合、以下を繰り返す
    Shapes.Move(ball,x,y) …ボールを座標(x、y)に動かす
    Shapes.Move(raketto,GraphicsWindow.MouseX,GraphicsWindow.Height-20) …マウスの現在位置にラケットを動かす(横だけ動いて、縦には動かない)
    y=y+1 …ボールのY座標を1増やす(画面では1下がる)
    Program.Delay(2) …速すぎるので、少しウェイト(待ち時間)を入れる(この数値を増やせばゆっくりボールが落ちてくる)
  EndWhile …繰り返しの終了位置
  '
  If(x>=Shapes.GetLeft(raketto) And x+20<=Shapes.GetLeft(raketto)+50) then …もし、ボールのX座用がラケットの左端のX座標よりも大きく、かつ、ラケットの右端よりも小さい場合、以下のことを実行せよ
    score=score+20 …スコアを20足す
    Sound.PlayClick() …クリック音を鳴らす
    Program.Delay(300) …ウェイト(待ち時間)を入れる
  Else …上の条件以外なら、以下のことを実行せよ
    Program.Delay(300) …何もせずにただ、ウェイト(待ち時間)を入れる
  EndIf …上の条件の終わり
EndFor …繰り返しの終わり
'
GraphicsWindow.DrawText(100,100,"score : "+score) …座標(100,100)にスコアーを表示
If score=100 Then …もし、スコアーが100なら、以下のことを実行せよ
  Sound.PlayChimes() …チャイムを鳴らす
  GraphicsWindow.DrawText(200,200,"***  イェー(^_^)v、パーフェクト!!  ***") …座標(200,200)に文を表示
Else …上の条件以外なら、以下を実行せよ
  GraphicsWindow.DrawText(200,200,"***  残念!  ***") …座標(200,200)に文を表示
EndIf …上の条件終わり

 10行目の、Sound.PlayMusic("o7c8")は音楽を奏でることができるはずなんですが、ウェブ上ではだめでした。(pc上ならOKです)
 21行目から27行目までは、ラケットに当たったか外れたかの判定をしています。If文の中の、Andは2つの条件を同時に満たした場合、といった意味になります。この辺が一番難しいです。
 25行目のElseはIF文の条件を満たさない場合の処理、といった意味です。


 まったく初めてのかたは、まず付属のチュートリアルをやって(分からない部分もあるでしょうが我慢して)最低限の使い方を憶えてください。その後Webなどに出ているプログラムをとにかく打ち込んで、色々数値などをいじってみると段々分かってくると思います。
 実は私も、この辺がいっぱいいっぱいで、これ以上難しくなるとあやしくなってきます(汗)。

ラベル:Small Basic
posted by Shindo Izo at 16:02| Comment(0) | プログラム練習 | 更新情報をチェックする

2011年12月09日

画像を表示する Small Basicの練習

今日もまた、山田昌良さんの書かれている、

 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)


 <サンプル4:ピクチャー表示プログラム>
 サンプルプログラム4番目はウィンドウにピクチャーを表示する、というもの。


GraphicsWindow.Title="ピクチャーの表示 2011.12.9" …ウィンドウのタイトル指定
'
url="http://ojisan-puroguramu.up.seesaa.net/image/ojisanproguram.jpg" …絵のファイルの位置をurlと定義
e=ImageList.LoadImage(url) …上記のurlにある絵をeと定義
'
GraphicsWindow.DrawImage(e,0,0) …eを座標(0,0)に描く
 プログラムはこちらへ。  上部のList Program をクリックすると何回でも表示できます。(要Silverlight)


・フレームの大きさを指定して、ウェブにアップロードしてみたら、うまく行きませんでした。(表示されず終了してしまいました) 表示の命令だけだとうまく行きました。pc上なら問題なく動作しました。
・ 3行目のurlは、このプログラムではウェブ上のアドレスですが、自分のpc上なら

 C:\ユーザー\おじさん\マイピクチャー\おじさんの絵.jpg (例)

のように指定します。
・同じく3行目のアドレスにアンダーラインがあるかも知れませんが必要ありません。(切ってもリンクされてしまいます、汗)

ラベル:Small Basic
posted by Shindo Izo at 15:13| Comment(0) | プログラム練習 | 更新情報をチェックする

2011年12月12日

画像をランダムに表示する Small Basicの練習

 今日もまたまた、山田昌良さんの書かれている、

 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)


 <サンプル5:ピクチャーランダム表示プログラム>
 サンプルプログラム5番目はウィンドウにピクチャーをランダムに表示する、というもの。


GraphicsWindow.Title="ピクチャーの表示2 2011.12.11" …ウィンドウタイトルの表示
tag="animal" …タグの設定
GraphicsWindow.DrawText(100,100,"ピクチャーをランダムに表示します。タグは「"+tag+"」です") …座標(100,100)にプログラムの説明表示
Program.Delay(500) …待ち時間
'
Loop: …Loopという標識を設定
  url=Flickr.GetRandomPicture(tag) …上で設定したタグで検索し、フリッカーサイトからピクチャーアドレスをランダムに得る
  image=ImageList.LoadImage(url) …上のアドレスからピクチャーをロードし、imageに格納する
  GraphicsWindow.Clear() …ウィンドウをクリアーする
  GraphicsWindow.DrawImage(image,0,0) …上のimageを座標(0,0)に表示する
  Program.Delay(2000) …待ち時間
  '
Goto Loop …Looopに戻る

プログラムはこちらから  永遠に表示し続けるので適当にウィンドウを閉じてください。


・ウェブ上とPC上では動作に少し違いがあり(かなりかも知れません)、PC上ではうまく行っていてもアップしてみるとうまく行きませんでした。その辺が難しいですふらふら
・2行目のtagに適当な単語を指定すれば、その関連のピクチャーを表示します。(例:cat とか、girlとか、Tokyoとか…)
---------

ラベル:Small Basic
posted by Shindo Izo at 11:28| Comment(0) | プログラム練習 | 更新情報をチェックする

2011年12月15日

画像をランダムに表示する2 Small Basicの練習

 今日もまた、山田昌良さんの書かれている、

 Small Basic 入門

を参考に勉強してみたいと思います。(詳しい解説はそちらをご参照ください)


 <サンプル6:ピクチャー表示プログラム2>
 サンプルプログラム6番目は"ウィンドウにピクチャーを表示する"、の改良(改悪?)版。Web上で画像がうまく表示されないので、リベンジでやってみましたが、やはり結果は同じでした。表示のタイミングがちぐはぐになってしまうのです。(PC上では全く問題なく表示されます)
 今回のは、いったんメモリー上に格納して一枚ずつ表示するようにしました。きっとうまく表示されるに違いないと思ったんですが…。まぁ、しょうがない、練習ということで…。
 サブルーチンも使ってます。


GraphicsWindow.Title="ピクチャー表示3 2011.12.15" …ウィンドウタイトル表示
tag="mountain" …タグを"山"に設定

'
For i=1 To 10 …以下のことを10回繰り返す
  Kaunto() …サブルーチンKauntoに飛ぶ
  url=Flickr.GetRandomPicture(tag) …画像のアドレスをurlに格納
  picture[i]=ImageList.LoadImage(url) …上のアドレスの写真をロードし、それをpicture[i](iは1から10までの数字)に格納
EndFor …繰り返し終了
'
For i=1 To 10 …以下のことを10回繰り返す
  GraphicsWindow.clear() …ウィンドウをクリアーする
  GraphicsWindow.DrawImage(picture[i],0,0) …座標(0,0)にpicture[i](iは1から10までの数字)を表示する
  Program.Delay(3000) …ここで3000ミリ秒待つ(3秒間表示する)
EndFor …繰り返し終了
Program.End() …プログラム終了
'
Sub Kaunto …サブルーチン Kaunto、以下のことを実行せよ
  GraphicsWindow.Clear() …ウィンドウをクリアーする
  GraphicsWindow.DrawText(100,100,"Flickerからピクチャーをロードしていますので、少しお待ちください") …座標(100,100)に上の文章を表示する
  GraphicsWindow.DrawText(140,140,11-i+" ...") …座標(140,140)に 11-i と ... を表示する
EndSub …サブルーチン終了(呼び出したところに戻る)


プログラムはこちらから

・picture[i] というのは、変数pictureに番号をふって、それぞれ違うデータを収納しています。大量のデータを処理するときなどは便利な方法です。
・サブルーチンは簡単なプログラムの場合は必要ないのでしょうが、練習のためにやってみました。将来大きなプログラムを作る場合(私の場合ないかも知れませんが…)、あるまとまった命令をサブルーチン化しておけば、プログラムを書く量が減るうえに、プログラムがスッキリし、修正し易い、といったメリットがあるようです。
 「…お待ちください」と表示しながら、10、9、8…とカウントしていくはずだったんですが、Web上ではダメでした。(PC上では問題なく表示されます)
------------------

ラベル:Small Basic
posted by Shindo Izo at 14:44| Comment(0) | プログラム練習 | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。