コードを学ぼう2>⑥配列>⑥島を作る(大苦戦)

「コードを学ぼう2>⑥配列>⑥島を作る」のスクリーンショット画像
コードを学ぼう2>⑥配列>⑥島を作る
ここで大苦戦しました。

配列になってから、配列そのものの概念よりもその応用が多いような気がします。
そのため、このPlaygroundsの世界特有の難しさが際立って感じられます。
この1問で丸4日かかりました。

いや、4日半だったかもしれません。

苦心の結果ですが、答えをそのまま書いてしまってはあまりにも無粋なので「コードを学ぼう1」のアルゴリズムの右手法などで出てきた「疑似コード」にしてみました。
日本語にしただけなんですけどね。
それではまた。


//  2-6-6島を作る
//  コードを学ぼう2>⑥配列>⑥島を作る
//  7月20-24日深夜2時半過ぎ(25日)、やっとこの難問が解けた!飯もほとんど食わず酒も飲みたいと思わなかった。ただひたすら今日こそはこの問題を解きたかった。自分で作ったスケジュールより2日遅れている昨今、今日こそは解きたかった。
// 決め手は「コードを学ぼう2>⑥配列>⑤配列に追加する」を2回復習したことだった。答えはそこにあった。
定数 全座標 = 世界.全ての可能な座標
// 空の[座標]タイプの配列を2つ作成せよ
変数 島: [座標] = []
変数 海: [座標] = []
for 座標ループ配列 in 全座標 {
    if 座標ループ配列.列 > 2 && 座標ループ配列.列 < 9 && 座標ループ配列.行 > 2 && 座標ループ配列.行 < 9 {
        // I(blockSet) love(append) you(coordinate).
        島配列.追加(座標ループ配列)
    } else {
        // I(blockSet) love(append) you(coordinate).
        海配列.追加(座標ループ配列)
    }
}
// 島配列にブロックを設置せよ
for 座標ループ配列 in 島配列 {
    世界.設置(ブロック(), at: 座標ループ配列)
}
// 海配列に水を設置せよ
for 座標ループ配列 in 海配列 {
    世界.アイテム撤去(at: 座標ループ配列)
    世界.設置(水(), at: 座標ループ配列)
}

コメント

このブログの人気の投稿

Swift Playgrounds、便利な物理キーボードのショートカットキー

iPad、Swift Playgroundsのコーディング用キーボードとVoiceOver