任何人都知道如何在Python中创建这样的数据结构?

时间:2015-11-13 09:59:42

标签: python-3.x

如何在python中看到类似的内容?

Here is the backyard with 0 bones buried:
 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  1
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

另外,我需要在院子里随机放置8根长度为6的骨头。骨骼从左到右或从上到下定向。骨骼可以相互重叠。

Here is the backyard with 1 bone buried:
 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  1
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
 B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

或类似的东西

Please, enter a bone number from 1 to 8 and this app shall show a location where this bone could be buried.Enter -1 to quit or 0 to display all bones at once: 5
Here is the backyard with 1 bone buried:
0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  0
.  B  B  B  B  B  B  .  .  .  .  .  .  .  .  1
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  2
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  3
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  4
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  5
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  6
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  7
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  8
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  9
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  10
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

当用户输入0时,如何一次显示所有位置?它应该是这样的:

Please, enter a bone number from 1 to 8 and this app shall show a location where this bone could be buried.
Enter -1 to quit or 0 to display all bones at once: 0

Here is the backyard with 8 bones buried:
 0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 
 .  .  .  .  .  .  B  .  .  .  .  .  .  .  .  0
 .  B  B  B  B  B  B  B  B  .  .  .  .  .  .  1
 .  .  .  .  .  .  B  .  .  .  .  .  .  .  .  2
 B  .  .  .  .  .  B  .  .  .  .  .  .  .  .  3
 B  .  .  .  .  .  B  .  .  .  .  .  .  .  .  4
 B  .  .  .  .  B  B  .  .  .  .  .  .  .  .  5
 B  .  .  .  .  B  B  .  .  .  .  .  .  .  .  6
 B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  7
 B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  8
 B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  9
 B  .  .  .  .  B  .  .  .  .  .  .  .  .  .  10
 .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  11

1 个答案:

答案 0 :(得分:0)

如果您只有8个"骨骼",我建议您将它们存储为(x,y)起始端对的列表。

两块骨头就是这样的:

[((3,5), (8,5)), ((1,9), (6,9))]

这代表两块骨头,一块水平放置在(3,5)到(8,5),另一块垂直放置在(1,9)到(6,9)之间。

当/如果您需要"画出院子"时,只需为每个细胞扫描一次骨骼并检查细胞是否在"之间。开始和结束坐标。

这很简单,如果不是特别有效。

同样,如果您只是需要随意放置的骨头不要在院子里摇晃,请选择随机坐标和随机方向。如果放置骨骼会使它离开边缘,那么只需选择一个新的随机点。