【ランダムに取得したい。でも取得したものは重複しない】アプリ開発日記(12/09)【cocos2d】


今日のテーマ
【算数?数学?】

自分でこんな感じのことソースを考えてたのですが
なんか数学でこんな授業あったなぁって
実に20年近く前のことを思い出しながらソースを考えてました。

そしてタイトルの件、意外と悩んだのでメモを残します。



結論から言うと、私のスキル不足で悩んでいたのですが
まず、「配列から要素を消せること」を知らなかった。
これが一番大きいです。

【悩み】
ランダムに取得出来るけど、、、
次のタイミングでまた出てくるなぁ
重複はさせたくないんだよなぁ
フラグでもたてて取得する判定処理作るか、、、

多分これでも書けたのですが

最近、名前だけ覚えた”リファクタリング”というもののせいで
「そんな面倒な処理書いて大丈夫?」
と、一度立ち止まりました。

今回は一番ひっかかってたのは
「一度つかった配列の中身が削除できないこと」
(※配列の中身は【要素】と言います。昨日調べw)
今回の問題だったので、一応検索。
そしたらObjective-Cの配列はどうやら
“removeObjectAtIndex”で簡単い削除できるようで

問題解決しました。

1.配列にデータを格納
2.配列にデータが入っていることを確認
3.ランダムに配列からデータを取得
4.使用したデータを配列から削除
5.2に戻る

で簡単に出来ました。

プログラマさんからすると簡単なことなんだろうなって
ずっと思いながらやってたのですが
独学だと、実装出来そうだ!の時点で実装しちゃうので
アルゴリズム?的な発想ってもっと勉強しないといけないなと痛感しました。
まぁ今回は、配列の知識が薄かったのが原因ですけど