下面是一个使用 Python 编写的 9x9 数列游戏的示例代码:

import random

def generate_random_board():
    board = [[0] * 9 for _ in range(9)]
    num_empty = random.randint(15, 26)
    
    for _ in range(num_empty):
        while True:
            row = random.randint(0, 8)
            col = random.randint(0, 8)
            if board[row][col] == 0:
                board[row][col] = ' '
                break
    
    return board

def print_board(board):
    for row in board:
        print(' '.join(str(cell) for cell in row))
    print()

def is_valid_move(board, row, col, num):
    # 检查同一行是否有相同数字
    if num in board[row]:
        return False
    
    # 检查同一列是否有相同数字
    for i in range(9):
        if board[i][col] == num:
            return False
    
    # 检查同一个3x3方格是否有相同数字
    start_row = (row // 3) * 3
    start_col = (col // 3) * 3
    for i in range(start_row, start_row + 3):
        for j in range(start_col, start_col + 3):
            if board[i][j] == num:
                return False
    
    return True

def play_game():
    board = generate_random_board()
    print('按S键开始游戏')
    while True:
        command = input('> ')
        if command == 'S' or command == 's':
            break
        else:
            print('请输入S键开始游戏!')
    
    print_board(board)
    
    while True:
        row = int(input('请输入要填充的行号(1-9):')) - 1
        col = int(input('请输入要填充的列号(1-9):')) - 1
        num = input('请输入要填充的数字(1-9)或空格:')
        
        if num == ' ':
            num = 0
        else:
            num = int(num)
        
        if row < 0 or row > 8 or col < 0 or col > 8 or num < 0 or num > 9:
            print('请输入符合规则的数字!')
        elif not is_valid_move(board, row, col, num):
            print('请输入符合规则的数字!')
        else:
            board[row][col] = num
            print_board(board)
        
        if all(cell != ' ' for row in board for cell in row):
            print('数列表已完成!')
            break
    
    while True:
        command = input('按R键重新生成一个初始随机数列表,按C键结束游戏。')
        if command == 'R' or command == 'r':
            board = generate_random_board()
            print_board(board)
            break
        elif command == 'C' or command == 'c':
            print('游戏结束!')
            return
        else:
            print('请输入R键或C键!')

play_game()

这个代码使用了一个generate_random_board函数来生成随机的初始数列表,print_board函数用于打印数列表,is_valid_move函数用于检查玩家的输入是否符合数列规则。play_game函数是游戏的主体逻辑,它通过不断接受玩家的输入来填充数列表,直到数列表被填满。游戏结束后,玩家可以选择按R键重新开始游戏或按C键结束游戏。


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

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