ดังนั้นเป้าหมายของฉันในโค้ดบิตนี้คือการสุ่มทอยลูกเต๋าสองลูกและอย่างที่เราทุกคนรู้ว่าการตายปกติของคุณมีเพียง 6 ด้านดังนั้นฉันจึงนำเข้า Foundation เพื่อเข้าถึง arc4random_uniform (UInt32) ฉันพยายามใช้ช่วงของ (1..7) เพื่อหลีกเลี่ยงการสุ่มรับ 0 อย่างไรก็ตามมันส่งคืนข้อผิดพลาดที่ฉันไม่ชอบมากเกินไป ฉันพยายามทำสิ่งนี้:
dice1 = arc4random_uniform(UInt32(1..7))
อย่างไรก็ตามที่กลับมา
ไม่พบโอเวอร์โหลดสำหรับ "init" ที่ยอมรับอาร์กิวเมนต์ที่ให้มา
ฉันหวังว่านี่จะเป็นข้อมูลที่เพียงพอสำหรับคุณที่น่าทึ่งที่จะช่วยฉัน :)
โปรดทราบว่าฉันกำลังทำสิ่งนี้ในสนามเด็กเล่นเพื่อฝึกความรวดเร็ว ฉันไม่จำเป็นต้องเรียนรู้วิธีการทำสิ่งนี้ เป็นเพียงแค่ฉันซ่อมแซมก่อนที่จะเริ่มสร้างแอพจริง: 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
สิ่งนี้ส่งคืนข้อผิดพลาดของ 'Range $ T3' ไม่สามารถแปลงเป็น UInt32 ได้
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 ฉันไม่ได้ใช้ iOS วัตถุประสงค์ C และไม่มีความรู้ใด ๆ เกี่ยวกับภาษาที่รวดเร็ว วิธีการสุ่มควรส่งคืนคุณเป็น 0 - 5 และ + 1 จะเป็น 1 - 6