bu yüzden bu kod parçasındaki amacım rastgele iki zar atmak ve hepimizin bildiği gibi sizin normal kalıbınızın sadece 6 yüzü var, bu yüzden arc4random_uniform'a (UInt32) erişim için Foundation'ı ithal ettim. Rastgele 0 almaktan kaçınmak için (1..7) aralığını kullanmaya çalıştım, ancak bu çok hoşuma gitmeyen bir hata döndürdü. Bunu yapmaya çalıştım:
dice1 = arc4random_uniform(UInt32(1..7))
ancak geri döndü
Sağlanan bağımsız değişkenleri kabul eden 'init' için bir aşırı yükleme bulunamadı
Umarım bu, bana yardımcı olacak harika borçlar için yeterli bilgidir :)
Lütfen bunu bir oyun alanında hızlı pratik yapmak için yapıyorum. Bunu nasıl yapacağımı öğrenmem zorunlu değil; gerçek uygulamaları geliştirmeye başlamadan önce sadece ben kurcalayan benim: D
//imports random number function
import Foundation
//creates data storage for dice roll
var dice1: UInt32 = 0
var dice2: UInt32 = 0
//counter variable
var i = 0
//how many times snake eyes happens
var snakeeyes = 0
//how many times a double is rolled
var `double` = 0
//rolls dice 100 times
while i < 100{
//from here
//sets dice roll
Bu, 'Aralık $ T3' hatası, UInt32'ye dönüştürülemiyor
dice1 = arc4random_uniform(1..7) dice2 = arc4random_uniform(1..7)
//checks for snake eyes
if dice1 == 1 && dice2 == 1 {
snakeeyes = snakeeyes + 1
}
//checks for doubles
if dice1 == dice2{
`double` = `double` + 1
}
//increases counter
i = i + 1
//to here
}
println("You got Snake Eyes \(snakeeyes) times.")
println("You got Doubles, \(`double`) times.")
u_int32_t arc4random_uniform(u_int32_t upper_bound);
dice1 = arc4random_uniform(6) + 1
1 - 6 aralığına ulaşmak için yapmanız gerektiğine inanıyorum. İOS hedefi C'yi yapmıyorum ve yine de hızlı dil hakkında herhangi bir bilgim yok. Rastgele yöntem size 0 - 5 döndürmeli ve + 1 1 - 6 olacaktır.