programming」カテゴリーアーカイブ

Speakedraw(4) – 追跡せよ(私の足跡?)


関数move内で進行方向が変わったときにオブジェクトの軌跡を辿る線を描きます。と言っても始点に想定される壁の位置から終点と想定される反対側の壁の位置を結ぶ線です。壁に当たる以外にもオブジェクト同士が接触した時にも描くのでちょっと面白く描かれる時もあります。(オブジェクト接触時は想定外の振る舞いもありますがこれも偶然の産物ということで。)

まずは関数setFromToです。
進行方向と逆に向かって壁に接触するところを始点として設定して
進行方向に向かって壁に接触するところを終点とします。

続いて実際に始点と終点を算出する関数getCanvasEdgeです。
現時点のXY座標と角度から壁に接触する座標を取得します。

動作するプログラムはこちらです。
ちょっと図解もしておきます。
続きを読む

javascriptシリーズまとめ(プログラ民シリーズ第一弾)

IMG_4446
って書いてみたけど、私の第一回javascript復習シリーズみたいな感じでしたね。と言うことでリンクをまとめてみました。タイトルはどれも本当にひどいね!はい、セコいですが広告も付けちゃいましたよ。。。小銭稼げたらなぁなんて。さて、プログラムな話は違うテーマで今後もやりたいけどどんなのがいいのかなぁ?と模索中です。多分。。。ですが、SQLかなぁ。それ用のWebアプリも作りながらやってみようかと思っています。と言っても予定は予定。それ以外にもいろいろ面白いことあったら投稿して行きます。あとSNSもよろしくと言うことで。

  1. プログラミングで新しい世界を探す

    このシリーズのパイロット版です。なにげに色んな要素を詰め込みんでいました。。。。

  2. 変数な話

    変数のお話です。オブジェクトの参照とか本当にめんどうですよね。

  3. もしもな話

    if文です。論理演算本当に面倒な場合もあるけど、プログラ民の基本はシンプルに書く。

  4. アレーな感じ
    • サンプルプログラム
    • 解説1
    • 解説2
    • 配列です。プログラ民にはとても重要なんだけど使ってみないとホント何のためにあるの?って最初は思いますよね。
      でもやればやるほど本当にその重要性がわかります。
      あとは繰り返し。繰り返し学習することが大事です。ってそう言うことじゃないか。。。

繰り返してみるってことは?

スクリーンショット 2016-06-10 17.58.57
前回の続きで今回は繰り返し。
サンプルプログラム
前回もforEach, forを使って配列の要素を繰り返しをしましたが今回はもうちょっとシンプルに。
数値を選んで「how many times shall I call you?」ボタンをクリックした時の動きです。

これはそのまま何回あなたの名前を呼びますか?と言うことをしています。
最初に「what is your name?」に入力した値を見て、
入力されていない場合は「教えてよ!」と叫んで処理を終了します。
名前が入力された場合は名前そして繰り返しの回数を変数に代入します。
表示するテキストを初期化して、選択した回数分繰り返してあなたの名前を叫びます!
前回も説明したとおりfor(i = 0; i < times; i++) はiが変数timesより小さい間、 すなわちiが選択した数より小さい間処理を繰り返してくださいと命令しています。 i++は一回の処理の度にiに1を加算してくださいと命令しています。 はい、そうですわかりやすく言うと6回繰り返してくださいと言うことです。 その結果、選択した数だけあなたの名前を呼んでくれます! 動きは一緒ですが違う繰り返しの書き方もあります。

これは回数を選択して「while I call you how many counts do you need?」を押した時の処理です。 while(i < times) iがtimesより小さい間は処理を継続してくださいと命令しています。 前述のforと何が違うのかと言うと、for文は前もって繰り返しの回数が指定されていると言うことです。 whileの場合は繰り返しの処理中に何らかの条件を変わったことを検知して繰り返しの処理を停止します。 ここでは繰り返しのたび、iに1を加算してその値がtimeより小さい場合は繰り返しているので前述の処理と同じような感じになっていますが、大きな違いは繰り返しを停止する条件を常に処理の間確認していると言う点です。 いい例は学校の進級試験ですかね。試験で一定の点数を超えない限りは何度も繰り返して試験を受けなければならないとかもう一年おなじ学年繰り返さなければならないと言うことです。 もし条件から外れない限り永久にループです。そう一生その学年を繰り返さなければなりません。 え?脱出方法はないかって?う〜ん、プログラムを強制的に停止するか、コンピュータが勝手に停止するか、コンピュータを強制的に停止しないとダメですね。 こんな感じですがイメージできますかね?ここまで理解できればほぼプログラムは書けるようになります。 とにかく書くだけであれば本当になんとなります。が更なる飛躍のためにはもうちょっといろいろ知っていた方がいいですよね。 でも今シリーズはこれにて終了。次はまた違うことを考えます。ブログ自体はプログラムの話はちょっとお休みするかもしれませんが懲りずに今後ともお付き合いください。