带有随机数和空槽的动态python网格

juzqafwq  于 2022-12-15  发布在  Python
关注(0)|答案(2)|浏览(101)

我当前遇到了一些与分配给我的任务有关的问题。有人能帮助我完成此任务吗?
先谢谢你。
图1 -(https://i.stack.imgur.com/cZAvs.png
图2-(https://i.stack.imgur.com/kbfz0.png
我确实尝试过使用随机数字制作网格,但不确定如何添加随机空格并在网格中爬行。

qjp7pelc

qjp7pelc1#

你可以使用黑客一样:
用[”“,your_random_number_variable]创建列表,然后选择其中一个并插入到您的网格中。2这可能不是完美的解决方案,但它将解决您的问题。
对于crawl,您可以简单地使用任何循环,如果您在列表中找到零或空,则可以打印消息。

zpjtge22

zpjtge222#

导入随机数#random.randint()
类别制造商:

def __init__(self, board=[[], [], [], [], [], [], [], [], []]):
    self.board = board

def random_generate(self):

    for row in self.board:
        i = 9
        while i > 0:
            row.append(random.randint(0, 9))
            i -= 1
    def print_board(self):

    for row in self.board:
        i = 0
        for col in row:
            if i < (len(row) - 1):
                if int(col) == 0:
                    print(f'   | ', end='')
                else:
                    print(f'{col} | ', end='')
                i += 1
            else:
                if int(col) == 0:
                    print(' ')
                else:
                    print(col)

def generate(self):

    self.board = [[random.randint(10, 40) if b != 0 else f'{b} ' for c, b in enumerate(d)]
                  for d in self.board]

def percolation(self):
    bottom_layer = []
    check_zeros = 0
    check_count = 0
    iterations = 0
    while check_count < 9:
        for row in self.board:
            if int(row[check_count]) >= 1:
                iterations += 1
            check_zeros += 1

            if check_zeros == 9:
                check_count += 1
                check_zeros = 0
                if iterations == 9:
                    bottom_layer.append('OK')

                else:
                    bottom_layer.append('NO')
                iterations = 0

    for identifier in bottom_layer:
        print(f'{identifier}   ', end='')

def clear_board(self):
    self.board = [[], [], [], [], [], [], [], [], []]

如果名称==“”:

game_run = True

while game_run:
    user_input = int(input('''\nWelcome to the percolation station!

1.生成板
1.过滤它
1.出口
选择一个选项:'''))

if user_input == 1:
        Game = Make()
        Game.clear_board()
        Game.random_generate()
        Game.generate()
        Game.print_board()

    if user_input == 2:
        Game.print_board()
        Game.percolation()

    if user_input == 3:
        break

相关问题