質問編集履歴

5

題名追記

2015/09/20 00:53

投稿

zukain5
zukain5

スコア8

test CHANGED
@@ -1 +1 @@
1
- xcodeで乱数がおかしい
1
+ xcodeで乱数がおかしい・デッキ制限ありのときのトランプランダム配布の処理
test CHANGED
File without changes

4

デッキ制限ありのときの処理追記

2015/09/20 00:53

投稿

zukain5
zukain5

スコア8

test CHANGED
File without changes
test CHANGED
@@ -191,3 +191,211 @@
191
191
  ![ランダムに](4120834727b96ae7c157ffb42a0ee26b.png)
192
192
 
193
193
  ミスを修正した結果、ちゃんとランダムになりました!やった!回答してくださったお二方、本当にありがとうございました。
194
+
195
+
196
+
197
+ ####複数のデッキを使った時のシャッフル
198
+
199
+ ```swift
200
+
201
+ import UIKit
202
+
203
+
204
+
205
+ class ViewController: UIViewController {
206
+
207
+
208
+
209
+ var w = UIScreen.mainScreen().bounds.size.width
210
+
211
+ var h = UIScreen.mainScreen().bounds.size.height
212
+
213
+ var imageView :Array<UIImageView> = []
214
+
215
+ var n = 0
216
+
217
+ ☆var deckCount = 6 //デッキ数
218
+
219
+ var tefuda = [Int](count: 21, repeatedValue: 0)
220
+
221
+
222
+
223
+ override func viewDidLoad() {
224
+
225
+ super.viewDidLoad()
226
+
227
+ // Do any additional setup after loading the view, typically from a nib.
228
+
229
+
230
+
231
+ ☆var card = [Int](count: 52*deckCount, repeatedValue: 0)
232
+
233
+
234
+
235
+ //シャッフルされた配列
236
+
237
+ ☆var shuffledCard :Array<Int> = []
238
+
239
+
240
+
241
+ //1~52がデッキ数並んだ配列card
242
+
243
+ ☆for i in 0...52*deckCount-1 {
244
+
245
+ ☆ card[i] = i % 52 + 1
246
+
247
+ ☆}
248
+
249
+
250
+
251
+ //シャッフル
252
+
253
+ ☆for i in 0...52*deckCount-1 {
254
+
255
+ ☆ var index = Int(arc4random()) % card.count
256
+
257
+
258
+
259
+ ☆ shuffledCard.append(card[index])
260
+
261
+ ☆ card.removeAtIndex(index)
262
+
263
+ ☆}
264
+
265
+
266
+
267
+ for i in 0...20 {
268
+
269
+ ☆ tefuda[i] = shuffledCard[i]
270
+
271
+ }
272
+
273
+ }
274
+
275
+
276
+
277
+ override func didReceiveMemoryWarning() {
278
+
279
+ super.didReceiveMemoryWarning()
280
+
281
+ // Dispose of any resources that can be recreated.
282
+
283
+ }
284
+
285
+
286
+
287
+ @IBOutlet weak var imageButton: UIButton!
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+ @IBAction func buttonAction(sender: AnyObject) {
302
+
303
+
304
+
305
+ var color = "c"
306
+
307
+ var number = 0
308
+
309
+ var show = "c01"
310
+
311
+
312
+
313
+
314
+
315
+ //println("\(tefuda[n])")
316
+
317
+
318
+
319
+ switch tefuda[n] {
320
+
321
+
322
+
323
+ case 1...13:
324
+
325
+ color = "c"
326
+
327
+ case 14...26:
328
+
329
+ color = "d"
330
+
331
+ case 27...39:
332
+
333
+ color = "h"
334
+
335
+ case 40...52:
336
+
337
+ color = "s"
338
+
339
+ default:
340
+
341
+ break
342
+
343
+
344
+
345
+ }
346
+
347
+
348
+
349
+ if tefuda[n] % 13 == 0 {
350
+
351
+ number = 13
352
+
353
+ } else {
354
+
355
+ number = tefuda[n] % 13
356
+
357
+ }
358
+
359
+
360
+
361
+ if number < 10 {
362
+
363
+ show = color + "0" + String(number)
364
+
365
+ } else {
366
+
367
+ show = color + String(number)
368
+
369
+ }
370
+
371
+
372
+
373
+ imageView.append(UIImageView(frame: CGRectMake(CGFloat(10+20*n), CGFloat(9*h/10-150), CGFloat(100), CGFloat(150))))
374
+
375
+
376
+
377
+ self.view.addSubview(imageView[n])
378
+
379
+
380
+
381
+ imageView[n].image = UIImage(named: show)
382
+
383
+
384
+
385
+ n++
386
+
387
+
388
+
389
+ }
390
+
391
+ }
392
+
393
+
394
+
395
+ ```
396
+
397
+ ☆の部分を変更、及び追記しました。
398
+
399
+ 良いプログラムではないと思いますが、正常に動作するのを確認できました。
400
+
401
+ シャッフルの処理は[こちら](http://hiramatch.hatenablog.com/entry/2015/01/25/212505)より丸コピさせていただきました。勝手に使ってごめんなさい。

3

解決報告

2015/09/20 00:52

投稿

zukain5
zukain5

スコア8

test CHANGED
File without changes
test CHANGED
@@ -126,7 +126,7 @@
126
126
 
127
127
  } else {
128
128
 
129
- number = tefuda[0] % 13
129
+ number = tefuda[0] % 13 //←ここの0がnでした
130
130
 
131
131
  }
132
132
 
@@ -183,3 +183,11 @@
183
183
  - プログラミングは趣味でやってます。初心者ですので、とても初歩的なミスをしてるかもしれません。そうだったらごめんなさい。
184
184
 
185
185
  - 初めて質問します。何か無礼なことがあったら、申し訳ございません。もしよろしければ、分かる方、ご教授お願いいたします
186
+
187
+
188
+
189
+ ####解決
190
+
191
+ ![ランダムに](4120834727b96ae7c157ffb42a0ee26b.png)
192
+
193
+ ミスを修正した結果、ちゃんとランダムになりました!やった!回答してくださったお二方、本当にありがとうございました。

2

追記2

2015/09/19 15:19

投稿

zukain5
zukain5

スコア8

test CHANGED
File without changes
test CHANGED
@@ -176,8 +176,10 @@
176
176
 
177
177
  - 配列tehudaをprintln()で出力しようとしたのですがなぜか出力されず。。。何回再起動しても同じ数字ばっかりでます…なぜか時々挟まってくるキングが不思議です笑
178
178
 
179
+ - arc4random_uniformのところをarc4randomでやったりもしましたがダメでした
180
+
179
181
  - 内容的には、ブラックジャックを意識してます。6デッキ以上使うことを想定しているため、Aが21枚出るかも…と思ったので、tehuda[]の要素数は21個です。
180
182
 
181
183
  - プログラミングは趣味でやってます。初心者ですので、とても初歩的なミスをしてるかもしれません。そうだったらごめんなさい。
182
184
 
183
- - 初めて質問します。何か無礼なことがあったら、申し訳ございません。もしよろしければ、分かる方、ご教授お願いいたします
185
+ - 初めて質問します。何か無礼なことがあったら、申し訳ございません。もしよろしければ、分かる方、ご教授お願いいたします

1

追記

2015/09/19 14:26

投稿

zukain5
zukain5

スコア8

test CHANGED
File without changes
test CHANGED
@@ -174,7 +174,7 @@
174
174
 
175
175
  - 画像はc01.png(クローバーの1)からc13.png(クローバーの13)まで、といった感じにリソースファイル(?)に読み込んであります。ダイヤはd、ハートはh、スペードはsが数字の前についています。
176
176
 
177
- - 配列tehudaをprintln()で出力しようとしたのですがなぜか出力されず。。。
177
+ - 配列tehudaをprintln()で出力しようとしたのですがなぜか出力されず。。。何回再起動しても同じ数字ばっかりでます…なぜか時々挟まってくるキングが不思議です笑
178
178
 
179
179
  - 内容的には、ブラックジャックを意識してます。6デッキ以上使うことを想定しているため、Aが21枚出るかも…と思ったので、tehuda[]の要素数は21個です。
180
180