読者です 読者をやめる 読者になる 読者になる

文系でもアプリが作れるのか〜Swift Playgroundsを使って学ぶ〜

バリバリの文系がアプリを作るブログです。

Four by Four ~繰り返しのことを繰り返して書きます~

 

このステージはWhile loopsfor loopsを使って解いていきます。

私は!を使うのが好きなので、!を使ってコードを書きました。

同じ形の繰り返しは、WhileのほうがForと比べて作りやすいです。

Whileは真であり続ける限り続くので、Forは回数を考慮しないといけない機能より、今回のように繰り返しが必要なのにはWhileがおすすめです。

 

最近、同じようなことを繰り返して書いているような気がします。

同じことを書くということはまだまだ勉強が足りないということなのだとおもい、がんばります。

 

Creating Smarter While Loops ~新しいことは取り入れないと~

 

Creating Smarter While Loops

今回からWhileに入りました。

Whileは条件が真であり続ける限り続くようになっています。

今回からWhileを使うとわかっているのに、私はForを使いました。

なぜかというと、ただ単に、Whileの使い方がよくわからなかったからです

 

Forで作るとどうなるかというと、成功するときと成功しない時があります。

今回はたまたま、一回目で成功しました。

 

しかし、これでは意味がないと思いWhileを使いうことにしました。

 

Whileだけだと真の場合繰り返し続けるのでForと組み合わせるとうまくいくので使ってみてください。

 

Logical Labyrinth ~最後のまとめは一発で行きたい~

 

 

今回のステージは繰り返しのステージとなっています。

ここのステージは今まで勉強してきたことを組み合わせてクリアしてください。

私の今回の失敗は、

初めにIsOnGem && IsOnClosedeSwitch の中身をCollectGemだけを入れていたので、ジェムをとるだけしかしないという失敗をしました。

 

Logical Opersteorの最後のステージなので、ミスなくやりたかったのですがまぁミスしました。しかも初歩的なミスでした。

 

cheaking this or that ~間違わない日はネタがない~

AndとOrの違いは、Andはどちらか正しければ発動しますが

Orはどちらとも正しくないといけません。

例えば

And 昼休みか放課後ならスマホが触れる

Or 昼休みでかつ先生がいないならスマホが触れる

このようにスマホを触るにはAndのほうがOrより条件が緩くなっています。

 

今回はすんなりとクリアすることができました。

一つ気が付いたことがありまして、まったくクリアできないときは悩んでいろいろと考えることがあるのでネタに困らないですが、

つまづくことなくできてしまうと書くことがないんですね。

次からは悩むことを願います。

Cheaching This AND That ~諦めのその先に~

 

今回のは、初めに言いますと納得できる結果ではなかったです。

でも、それなりにあがいてみてわかったことを書いていきたいと思います。

まず、失敗の内容としてはタイトルにANDとあるように&を使わないといけないのに1回も使わなかったことです。

それで、コードを書いていったらなんとか出来てしまいました。

ここまでは、自分の間違いがわかっているのですが、&を使っていないので

作り直したときにコードをランしてくれない(読み取ってくれない)。

何回か作り直したのですがうまくいきませんでした。

諦めてはならぬと思いやっているのですが、他に収穫があったので諦めます!

 

forの文の中で繰り返される文からifの文に移ったらifの文の中でforの文まで戻す必要があるということです。

例えば、IsBlockedになったら曲がって進みジェムをとるというような命令にしたいときはとるまでを文の中に入れるのではなく、ジェムをとって戻ってifの文になる前の状態に戻す必要があります。

そうしないと、ジェムをとるまでをifの文に入れていると、ジェムをとったらそこからforの文が始まってしまいます。

 

 

 

Sprial of Not ~単語の意味は調べましょう~

今回は Sprial of Not での話をしたいと思います。

正直、ここでの記事は私の能力の低さを露呈させた記事になっています。書くことが恥ずかしい!だけどさらしだします!

一言でいうと単語の意味を勘違いしていました。

isBlocked というコードのコマンドがあるのですが私はこのコードの意味を「ブロックがある」と思っていました。普段の生活やゲームしててもブロックっていったら邪魔な石とか壁とかそんなイメージでした。

しかし、このisBlockedは「進みことができない」という意味でした。

私の間違いはisを存在の意味の「ある」と思っていたのですが、ここでのisは受動態のisでした

もうね、恥ずかしい...これからは英語できますとか言いません。バイト先でも偉そうに中学生に教えません。

 

では、どのようにミスが影響したかというと「進めないならば回ってもどってきなさい」という命令をしなければならないのに「壁があるなら回ってもどってきなさい」という命令をしてしまいました。

一見同じようにどちらも進めない状況なので回って戻ってくると思うのですが、私の間違いのほうは「壁」がなければもどってこないという意味で作っているので条件が「進めないなら」より厳しくなっています。

実際のステージの写真がないのでわかりにくいのですが、このステージは壁がなくてどうすればよいかわからなく、コードが書けなくなりました。

 

今回の重要ポイントは「単語の意味大事」です!

 

Using The Not Operator ~わからないけど逃げださないことが大切~

初めの投稿でいきなり、途中からの投稿となります。初めからしてもよかったのですが、そうなると時間が結構かかってしまうので、全く更新できないと思ってまずは途中から書きます。 

 

今回はUsing The Not Operator のことを書いていこうと思います。

このステージをクリアするまでに45分くらいかかりました. . .

今回のステージは Not を勉強することが目的でした。SwiftNotは!です。

この!が私を迷宮に迷わせたのです。まず、!の入れ方がわからない。Playgloundsの特徴であるコードのコマンドに!がないので自分で入れないといけません。キーボードをだして入れたらいいのですが、タッチパネルは文字と文字の間に文字が入れにくいのでコードを入れた後に!を入れにくい

isOnGem ()の前に!を入れたいのですがなかなかうまくisOnGemの前に!がはいってくれない(!isOnGemといれたいけどis!OnGemみたいになってしまう)。これはまだ

迷宮の入り口です

 

さらに、うまく!isOnGemとなってもコードエラーが出てしまいました。

ここから30分程度いろいろ試してみました(コードをコマンドを使わずに入れたり、!とコマンドの間にスペースをいれたり)。

しかし、全く改善されません。ダメもとでもう一度初めから入れたらエラーが出ずにコードがランし始めました。

ここで投げ出そうかと思ったのですが、検証しなければこのブログの存在価値がないと

思い、検証しました。

 

結果として!をひらがな入力をしてしまっていたことが原因でした。半角英数でいれなければなりません。はい、もう基礎中の基礎です。

では、なぜこれが起きたのかというと、playgroundsでキーボードを出すとひらがな入力になっているからです。なので、入力するときは半角英数に変えて打ちましょう。