NSUserDefaultsで背景色を保存する方法とゲームクリア条件のコードの書き方を教えてください。
プログラミング初心者です。
今趣味でゲームを作っていてわからないことがいくつかあり質問させていただきました。
下の4色はボタンになっています。(今度5色に増やす予定です。)
各色ボタンを押すごとにタッチしたマス目に押したボタンの色を反映できます。
1
アプリのタスクを切るとまた初めからになってしまいます。
NSUserDefaultsでマス目の色をスマホ本体に保存して、アプリのタスクを切っても続きから始められるようにしたいです。
その場合マス目をタッチするたび保存にすれば大丈夫ですか?
また、色を保存する時はどのようなコードを書けばよろしいでしょうか?
2
すべてのマス目を埋めた時、隣り合ったマス目の色が違う場合のみゲームクリアにしたいです。
隣り合ったマス目の色が一致した場合は何も起こらず、すべての隣り合うマス目の色が違う場合のみ
画面移行し「ゲームクリア」にしたいです。
この場合マス目ごとにTagを振ればよろしいでしょうか?
またこの条件のコードはどのように書けばいいでしょうか?
以上の2点です。
1度に2つもしてしまい申し訳有りません。
この2点は今の自分ではわからないので教えてもらいたいです。
どちらもコードを書いていただくと非常に助かります。
一応今書いてあるコードと画像を載せておきます。
質問がわかりにくくて申し訳有りません。
回答お待ちしています。
myImageA = UIColor.redColor();
myImageB = UIColor.greenColor();
myImageC = UIColor.blueColor();
myImageE = UIColor.yellowColor();
myImageView.backgroundColor = myImageD
myImageView2.backgroundColor = myImageD
myImageView3.backgroundColor = myImageD
myImageView4.backgroundColor = myImageD
myImageView5.backgroundColor = myImageD
myImageView6.backgroundColor = myImageD
myImageView8.backgroundColor = myImageD
myImageView9.backgroundColor = myImageD
myImageView10.backgroundColor = myImageD
myImageView11.backgroundColor = myImageD
myImageView12.backgroundColor = myImageD
myImageView13.backgroundColor = myImageD
myImageView14.backgroundColor = myImageD
myImageView15.backgroundColor = myImageD
myImageView16.backgroundColor = myImageD
myImageViewa.backgroundColor = myImageD
myImageView2a.backgroundColor = myImageD
myImageView3a.backgroundColor = myImageD
myImageView4a.backgroundColor = myImageD
myImageView5a.backgroundColor = myImageD
myImageView6a.backgroundColor = myImageD
myImageView7a.backgroundColor = myImageD
myImageView8a.backgroundColor = myImageD
myImageView9a.backgroundColor = myImageD
myImageView10a.backgroundColor = myImageD
myImageView12a.backgroundColor = myImageD
myImageView14a.backgroundColor = myImageD
myImageView13a.backgroundColor = myImageD
myImageView15a.backgroundColor = myImageD
myImageView16a.backgroundColor = myImageD
myImageViewb.backgroundColor = myImageD
myImageView2b.backgroundColor = myImageD
myImageView3b.backgroundColor = myImageD
myImageView4b.backgroundColor = myImageD
myImageView5b.backgroundColor = myImageD
myImageView6b.backgroundColor = myImageD
myImageView7b.backgroundColor = myImageD
myImageView8b.backgroundColor = myImageD
myImageView9b.backgroundColor = myImageD
myImageView10b.backgroundColor = myImageD
myImageView11b.backgroundColor = myImageD
myImageView13b.backgroundColor = myImageD
myImageView14b.backgroundColor = myImageD
myImageView15b.backgroundColor = myImageD
myImageView16b.backgroundColor = myImageD
myImageView2c.backgroundColor = myImageD
myImageView3c.backgroundColor = myImageD
myImageView4c.backgroundColor = myImageD
myImageView5c.backgroundColor = myImageD
myImageView6c.backgroundColor = myImageD
myImageView7c.backgroundColor = myImageD
myImageView8c.backgroundColor = myImageD
myImageView9c.backgroundColor = myImageD
myImageView10c.backgroundColor = myImageD
myImageView11c.backgroundColor = myImageD
myImageView12c.backgroundColor = myImageD
myImageView13c.backgroundColor = myImageD
myImageView14c.backgroundColor = myImageD
myImageView15c.backgroundColor = myImageD
myImageView16c.backgroundColor = myImageD
}
func onClickMyButton(sender: UIButton){
myImageD = myImageA
}
func onClickMyButton2(sender: UIButton){
myImageD = myImageB
}
func onClickMyButton3(sender: UIButton){
myImageD = myImageC
}
func onClickMyButton4(sender: UIButton){
myImageD = myImageE
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first as UITouch?
if let touchedImageView = touch!.view as? UIImageView {
touchedImageView.backgroundColor = myImageD
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
保存する色が4つあるのでその分forkeyも4つ用意したほうがいいですか?
forkeyが1つだと保存した場所の色がすべて同じ色になってしまいませんか?