如何转换此伪代码以及公式需要哪个列表

时间:2014-01-03 13:08:33

标签: python algorithm pseudocode

我已经获得了计算任务,可以使用伪代码和算法创建随机生成的游戏关卡。必须使用#和空格打印地图,并且少于3个邻居的单元格会死亡。但是我们被告知要在没有覆盖的情况下解决这个问题,可以肯定地说我不知道​​我在做什么。任何帮助将不胜感激......

以下是整个代码:

# -*- coding: utf-8 -*-
import random

def create_random_map(height, width):
  map = []
  for y in range(height):
    for x in range(width):
        map.append( bool(random.randint(0,1)) )

  return map

def apply_cellular_automaton(map, height, width, born, survive):
   return map

def draw_map(map, height, width):
  pass

height = 45
width = 79

map = create_random_map(height, width)

for i in range(5):
  map = apply_cellular_automaton(map, height, width, [6, 7, 8], [3, 4, 5, 6, 7, 8])

for i in range(3):
  map = apply_cellular_automaton(map, height, width, [5, 6, 7, 8], [5, 6, 7, 8])


draw_map(map, height, width)

我已经给出了伪代码

 PROCEDURE draw_map(map, height, width)
    FOR EACH grid row
            CREATE AN EMPTY row
            FOR EACH cell in row
                    IF cell IS alive
                            ADD ‘#’ TO row
                    ELSE
                            ADD ‘ ‘ TO row
            PRINT row

我已经给出了公式示例

i = (y * width) + x
61 = (7 * 8) + 5


1 个答案:

答案 0 :(得分:0)

您可能首先要为地图制定可行的结构。 地图需要是一个二维结构。一种方法是使映射成为列表列表,即行列表,其中每行元素是该行的列。请参阅Rosetta Code网站上的Create a two-dimensional array at runtime

接下来填充一个数组并尝试将draw_map伪代码转换为适合2D数组实现的Python。