以下是使用 SwiftUI 生成一个随机数独内容并空出 20 格子的代码示例:\n\nswift\nimport SwiftUI\n\nstruct SudokuView: View {\n @State private var sudokuBoard: [[Int?]] = [[Int?]](repeating: [Int?](repeating: nil, count: 9), count: 9)\n \n func generateRandomSudoku() {\n // 生成随机数独内容\n let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]\n let shuffledNumbers = numbers.shuffled()\n \n for row in 0..<9 {\n for column in 0..<9 {\n let randomIndex = Int.random(in: 0..<9)\n sudokuBoard[row][column] = shuffledNumbers[randomIndex]\n }\n }\n }\n \n var body: some View {\n VStack {\n Button(action: {\n self.generateRandomSudoku()\n }) {\n Text("生成随机数独")\n .font(.title)\n .padding()\n .background(Color.blue)\n .foregroundColor(.white)\n .cornerRadius(10)\n }\n \n Spacer()\n \n VStack(spacing: 0) {\n ForEach(0..<9, id: \.self) { row in\n HStack(spacing: 0) {\n ForEach(0..<9, id: \.self) { column in\n Text(self.sudokuBoard[row][column] != nil ? "\(self.sudokuBoard[row][column]!)" : "")\n .frame(width: 30, height: 30)\n .background(Color.gray.opacity(0.2))\n .border(Color.black, width: 0.5)\n }\n }\n }\n }\n .padding()\n \n Spacer()\n }\n }\n}\n\nstruct SudokuView_Previews: PreviewProvider {\n static var previews: some View {\n SudokuView()\n }\n}\n\n\n这个例子中,我们使用了一个二维数组sudokuBoard来表示数独的内容。在generateRandomSudoku函数中,我们首先生成一个1到9的随机数组,并将其打乱顺序。然后,我们使用嵌套循环遍历数独的每个格子,并从打乱后的数组中随机选择一个数字填入格子中。最后,我们使用Text视图显示数独内容,如果格子中有数字,则显示该数字,否则显示空字符串。在视图的最上方,我们添加了一个按钮,点击该按钮会调用generateRandomSudoku函数来生成随机数独。整个视图使用了垂直布局,并使用Spacer来使数独内容位于视图的中间。

SwiftUI 生成随机数独:完整代码示例 - 空出 20 格

原文地址: https://www.cveoy.top/t/topic/pTwt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录