大宮盆栽デイズ - Omiya Bonsai Days -

冗談めかす埼玉のファインマン

playgrounds

Playgrounds から Swift に移行しました

Playgrounds の「コードを学ぼう3」までをだいたい終わらせることができたので、一旦 Playgrounds から離れて書籍で Swift を学習することにしました。紙の本は、じゃまになるので、Kindle本にしました。「詳細! Swift 4 iPhoneアプリ開発 入門ノート」とい…

楽器を演奏する@コードを学ぼう3

// 楽器を演奏する@コードを学ぼう3 let blu = Graphic(image: #imageLiteral(resourceName: "Blu1@2x.png")) let theOrigin = Point(x: 0, y: 0) scene.place(blu, at: theOrigin) // Event handler for Music tool. func musicalGraphic(graphic: Graphic…

音を鳴らす@コードを学ぼう3

// 音を鳴らす@コードを学ぼう3 let blu = Graphic(image: #imageLiteral(resourceName: "Blu1@2x.png")) let theOrigin = Point(x: 0, y: 0) scene.place(blu, at: theOrigin) // Event handler for Sound tool. func soundGraphic(graphic: Graphic) { //…

ボタンに応答する@コードを学ぼう3

`iterate` って「反復」「繰り返し処理する」って意味なんだね。`Em!` は Wikipedia によると「英語の3人称複数代名詞「them」の短縮形「'em」」のようです。 it・er・ate | ɪ́tərèɪt | 動詞 他動詞 1 ⦅かたく⦆…を反復する, 繰り返す. 2 〈コンピュータの命…

グラフィックを消す@コードを学ぼう3

`squish`,`zap` という単語は、辞典によると次のような意味です。 squish | skwɪʃ | 動詞 自動詞 1 ザバザバ[ピシャピシャ]音を立てる. 2 ⦅米・くだけて⦆つぶれる. 他動詞 ⦅米・くだけて⦆…をつぶす, 圧縮する. zap | zæp | (!⦅くだけて⦆) 動詞~s; ~ped…

グラフィックを変える@コードを学ぼう3

コードを追加したのは、`Modify alpha`の部分だけです。alpha の値が0.25より大きければ、0.25に変更。そうでないならば、alpha を1.0に変更ということだけです。 // グラフィックを変える@コードを学ぼう3 // “Graphic touched” event handler. func modif…

しゃべるグラフィック@コードを学ぼう3

// しゃべるグラフィック@コードを学ぼう3 // Speak the text of graphic. func speakText(graphic: Graphic) { speak(graphic.text) } // With the Fruit tool selected, this function is called each time your finger moves. func addFruit(touch: Touc…

イベントごとにツールを作る@コードを学ぼう3

下の解答例は不正解のようです。気になりますが、次に進みます。 // イベントごとにツールを作る@コードを学ぼう3 // A “finger moved” event handler. func addAlien(touch: Touch) { if touch.previousPlaceDistance < 60 { return } let graphic = Graph…

ツールをもっと作る@コードを学ぼう3

// ツールをもっと作る@コードを学ぼう3 func addFruit(touch: Touch) { if touch.previousPlaceDistance < 60 { return } let fruit = "".componentsByCharacter() let graphic = Graphic(text: fruit.randomItem) scene.place(graphic, at: touch.positio…

ツールを作る@コードを学ぼう3

このごろ、「ムービーを収録」できなくなっています。なにが原因なんだろう。。。 // ツールを作る@コードを学ぼう3 // Event handler for “finger moved” events. func addAlien(touch: Touch) { if touch.previousPlaceDistance < 60 { return } let grap…

自分だけのプロジェクト@コードを学ぼう3

遊んでいるのか、遊ばされているのかわからなくなってきました。コードの一部をちょこちょこ入力するだけでは学習にならない気がします。とりあえず、最低限のコードを入力して、次のステージへと進みます。 // 自分だけのプロジェクト@コードを学ぼう3 // …

対称な星@コードを学ぼう3

難しいです。初めて見る手法とかがヒントになっていてとまどうばかりでした。考え方はすんなりいくんですけれど、それをコードに表現するのが難しいですね。 // 対称な星@コードを学ぼう3 let animals = [A, B, C, D, E, F] var lastPlacePosition = Point(…

絵文字ふぶき@コードを学ぼう3

// 絵文字ふぶき@コードを学ぼう3 let emoji = "✨☄️" // Split emoji into an array of single-character strings. // 文字列を、一文字ずつ分けて配列に入れる let characters = emoji.componentsByCharacter() // characters の次のアイテムを取るための…

テキストツール@コードを学ぼう3

文字化けを修正するのがたいへんなので、エディタのウィンドウを画像にして添えました。「コードを学ぼう3」では絵文字が多いので掲載しづらいです。 // テキストツール@コードを学ぼう3 let name = "blue mono" let things = ["green star", "black hole",…

パターンで置く@コードを学ぼう3

コードを学ぼう3は難しい。ステージを進めていっても、「なんだったけ?」と思う場面が多いです。それなので、コードを学ぼう3の途中からですが、また解答例を掲載することにしました。iPadはやっぱり画面が小さく、過去の問題を振り返るのがちょっと面倒な…

次々と消していく@コードを学ぼう3

// 次々と消していく@コードを学ぼう3 // a - e はそれぞれ動物の emoji let animals = [a, b, c, d, e] func addImage(touch: Touch) { if touch.previousPlaceDistance < 80 { return } // Get a random image and place it. let index = randomInt(from:…

配列の項目をランダムに取り出す@コードを学ぼう3

// 配列の項目をランダムに取り出す@コードを学ぼう3 // a - e はそれぞれ動物の emoji let animals = [a, b, c, d, e] func addImage(touch: Touch) { if touch.previousPlaceDistance < 80 { return } // インデックスにランダムな値を入れる let index =…

配列を反復処理する@コードを学ぼう3

// 配列を反復処理する@コードを学ぼう3 // a - e はそれぞれ動物の emoji let animals = [a, b, c, d, e] var index = 0 func addImage(touch: Touch) { if touch.previousPlaceDistance < 80 { return } let chosenImage = animals[index] index += 1 // …

グラフィック間にスペースを挿入@コードを学ぼう3

// グラフィック間にスペースを挿入@コードを学ぼう3 func addImage(touch: Touch) { // touch.PreviousPlaceDistance // グラフィックが最後に配置された位置から、指がどのくらいの距離を動いたかを示す値が入る // 「30」未満だと、return になりaddImag…

イメージツール@コードを学ぼう3

// イメージツール@コードを学ぼう3 func addImage(touch: Touch) { // XXX は emoji let graphic = Graphic(image: XXX) // touch.position(タッチ位置) scene.place(graphic, at: touch.position) }

楕円起動@コードを学ぼう3

// 楕円起動@コードを学ぼう3 var images = [#imageLiteral(resourceName: "soccerball@2x.png"), #imageLiteral(resourceName: "rugbyball@2x.png"), #imageLiteral(resourceName: "tennisball@2x.png"), #imageLiteral(resourceName: "baseball@2x.png"),…

配列の技@コードを学ぼう2

ここまでのステージに来ている人ならば和訳は必要ないと思いました。ただ、せっかくなのでいくつかの単語を紹介します。inColumns: 複数の行数内なら「in Columns」 intersectingRows: 複数の列なら「横切る」を意味する「intersect」 coor: 「coordinate」…

違う方法で配列を作る@コードを学ぼう2

// 違う方法で配列を作る@コードを学ぼう2 // ステージの座標情報を配列 allCoordinates に代入する let allCoordinates = world.allPossibleCoordinates for coordinate in allCoordinates { // Change height to be the sum of the column and row for ea…

ランダムな地形@コードを学ぼう2

創作の課題なのに、遊び心、楽しむ気持ちが全くないコードになりました。今は早く Playgrounds のコンテンツを制覇したい気持ちだけが強いです。 // ランダムな地形@コードを学ぼう2 let allCoordinates = world.allPossibleCoordinates var heights: [Int]…

地形を作る@コードを学ぼう2

// 地形を作る@コードを学ぼう2 var heights: [Int] = [7,6,9,2] let allCoordinates = world.allPossibleCoordinates var index = 0 for coordinate in allCoordinates { if index == heights.count { index = 0 } for i in 0...heights[index] { // Place…

配列の範囲外エラーを直す@コードを学ぼう2

// 配列の範囲外エラーを直す@コードを学ぼう2 var teamBlu: [Character] = [] // Note how many instances of Blu are in your array. // (訳:配列の中に、いくつの Blu インスタンスがいるかに気をつけて) for i in 1...9 { teamBlu.append(Character(…

取り除いた値を追加する@コードを学ぼう2

徐々に Playgrounds の日本語説明でも、「この課題で何がしたいのか」が理解できなくなってきた。 今回も、まったくゴールが見えないが、説明文を何度か読んで(それでもよくわからなかった)、コード内のコメント(ヒント)を頼りにコードを作成した。完成…

島を作る@コードを学ぼう2

変数や関数の名前を付けるのがヘタクソだと思い続けています。Playgrounds が一通り終わったら、コードについての本を読みたいと思います。プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則作者: 上田勲出版社/メーカー: …

配列に追加する@コードを学ぼう2

コラムやロー、行、列についてこんがらがってきました。今回の問題は、日本語の説明でもよく理解できず、時間がかかってしまいました。それなので、写真も添えることにしました。完成されたモデルを見れば、「ああ、この問題はこういうことをしたかったのね…

順番に並べる@コードを学ぼう2

// 順番に並べる@コードを学ぼう2 characters = [ Character(name: .blu), Portal(color: XXX), Character(name: .hopper), Gem() ] // Remove the portal. // (ポータルを取り除く) // ポータルの位置(インデックス)は「1」(「0」はblu) characters.…