logo.pnglogo.png

2016年3月24日

Swift 2.2になって、文法が少し変わりました。

その中で非推奨(deprecated)になった機能があります。

いずれ Swift 3になったら削除される予定なので、今はワーニングが出る状態ですが、いずれは廃止される予定なので気をつけましょう。

 

++演算子、−−演算子

C言語の頃からあった、1を足したり引いたりする、インクリメント演算子(++ )、デクリメント演算子(--)が非推奨になりました。

これから1を足すときは、「+=1」を使います。

 

【これまでの書き方】

スクリーンショット 2016-03-24 15.52.23

【これからの書き方】

スクリーンショット 2016-03-24 15.52.43

 

for文

くり返しを行うfor文の「C言スタイルの書き方」が非推奨になりました。

これからは、「for in文」を使います。

 

【これまでの書き方】

スクリーンショット 2016-03-24 15.51.19

【これからの書き方】

スクリーンショット 2016-03-24 15.51.32

for in文では、通常の昇順(小さい数から大きい数へ進む順)のときは、「範囲の始め ..< 範囲の終わり」で指定できますが、降順(大きい数から小さい数へ進む順)のときは、範囲設定ではできません。

そのようなときは「reverse()」を使います。

【降順に指定しようとするとエラーが出ます】

スクリーンショット 2016-03-24 15.53.33

【reverseを使うと降順に進めます】

スクリーンショット 2016-03-24 15.53.45

 

for in文では、1つずつ進む場合は指定できますが、1つ飛ばしで進んだり、2つ飛ばしで進むような指定はそのままではできません。

そのようなときは「stride(through: 終わり, by:進む数)」で指定します。

【これまでの書き方】

「0から始まって、5まで、2ずつ増える」ようにしたいのですが、あCスタイルの書き方は非推奨だと言われます。

スクリーンショット 2016-03-24 15.50.28

【strideを使う書き方】

strideを使って「0から始まって、5まで、2ずつ増える」ように進めることができます。

スクリーンショット 2016-03-24 15.50.45

【配列を使う書き方】

あらかじめ配列に進む数を入れておいて指定する方法もあります。スクリーンショット 2016-03-24 16.28.47

2016年3月5日


P1110114

IchigoJam BASICのゲームです。

スクリーンショット 2016-03-05 18.27.56

  • タイトル画面で、0〜9の数字を押すとゲームが始まります。
  • 選んだ「数字」はスピードで、0が一番速く、9が一番遅くなります。
    ※スピードが速いほど得点が高くなります。

P1110109

  • 「上下左右キー」で「線」をコントロールして、ぶつからないように走りましょう。
  • ぶつかるとゲーム終了です。
プログラム
1 ' LINERUN
10 LET [0],-1,0,1,0,0,-1,0,1
20 LET [8],145,145,154,152,145,145,155,153,153,152,146,146,155,154,146,146
30 CLS
40 LC 12,8:?"LINE RUN";:LC 6,18:?"[START : 0-9(SPEED)]";
50 W=INKEY()-48:IF W<0 OR W>9 GOTO 50
60 CLS:X=16:Y=15:U=0:V=-1:O=2:S=0
70 LC 0,1:?CHR$(152);:FOR I=1TO30:?CHR$(145);:NEXT:?CHR$(153);
80 FOR I=2 TO 21:LC 0,I:?CHR$(146);:LC 31,I:?CHR$(146);:NEXT
90 LC 0,22:?CHR$(154);:FOR I=1TO30:?CHR$(145);:NEXT:?CHR$(155);
100 LC X,Y:?CHR$(146);
110 LC 22,0:?"SPEED:",W
120 K=INKEY()-28:IF K<0 OR K>3 K=O:GOTO 140
130 U=[K*2]:V=[K*2+1]
140 LC X,Y:? CHR$([8+O*4+K]);
150 X=X+U:Y=Y+V:IF VPEEK(X,Y)<>0 GOTO 200
160 O=K:LC X,Y:? CHR$([8+O*4+K]);
170 WAIT W
180 LC 0,0:S=S+(10-W)*2:?"SCORE:",S
190 GOTO 120
200 LC X,Y:?CHR$(244);
210 LC 8,12:?"== GAME OVER ==";
220 GOTO 40

BASICですが高速に動き回りますよ。


クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。CC BY 森 巧尚 – Yoshinao Mori