Vì vậy, mục tiêu của tôi trong codebit này là ngẫu nhiên tung hai con xúc xắc và như tất cả chúng ta đều biết cái chết thông thường của bạn chỉ có 6 mặt nên tôi đã nhập Foundation để truy cập arc4random_uniform (UInt32). Tôi đã cố gắng sử dụng phạm vi (1..7) để tránh ngẫu nhiên nhận được 0 tuy nhiên điều đó đã trả về một lỗi mà tôi không thích quá nhiều. Tôi đã cố gắng để làm điều này:
dice1 = arc4random_uniform(UInt32(1..7))
tuy nhiên điều đó đã trở lại
Không thể tìm thấy quá tải cho 'init' chấp nhận các đối số được cung cấp
Tôi hy vọng rằng đây là đủ thông tin cho bạn những cuộc tranh luận tuyệt vời ngoài kia để giúp tôi :)
Xin lưu ý tôi chỉ làm điều này trong một sân chơi để thực hành nhanh chóng. Không bắt buộc tôi phải học cách làm điều này; chỉ là tôi mày mò trước khi bắt đầu xây dựng các ứng dụng thực tế: 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
Điều này trả về lỗi 'Phạm vi $ T3' không thể chuyển đổi thành 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
để đạt được phạm vi 1 - 6. Tôi không thực hiện mục tiêu iOS C cũng như không có bất kỳ kiến thức nào về ngôn ngữ swift. Phương thức ngẫu nhiên sẽ trả về cho bạn 0 - 5 và + 1 sẽ là 1 - 6.