首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格中的移动坐标

网格中的移动坐标
EN

Stack Overflow用户
提问于 2017-04-17 15:58:07
回答 1查看 486关注 0票数 0

这些是我的全局变量

代码语言:javascript
复制
number_black_balls= 8
black_balls=[[0,0], [1,0], [1,1], [0,1], [6,6], [6,5], [5,5], [5,6]]

number_white_balls= 8
white_balls=[[6,0], [6,1], [5,1], [5,0], [0,6], [0,5], [1,5], [1,6]]

number_red_balls= 13
red_balls=[[1,3], [2,2], [2,3], [2,4], [3,1], [3,2], [3,3], [3,4], [3,5], [4,2], [4,3], [4,4], [5,3]]

## Movements: ##
column= ["   ", "1", "2", "3", "4", "5", "6", "7"]
dict_movement= {"up":[-1,0],"down":[1,0],"left":[0,-1],"right":[0,1]}  ##direction in which I'm going
##########################

以下是功能:

代码语言:javascript
复制
def grid():
    res=[0]*7
    for i in range(7):
        res[i]= ["*"]*7            
    return res
    print (res[i]," ",end="\n")


def show_grid(g):
    print()
    for i in column:
        print(i, end="  ")
    print()
    print("   -----------------------  ")
    for i, line in enumerate(g, 1):
        print (i,"| ", "  ".join(line), " |",i)
    print("   -----------------------  ")

    for i in column:
        print(i, end="  ")
    print("\n")

def balls_location(g):
    for r in red_balls:
        g[r[0]][r[1]]="R"
    for b in white_balls:
        g[b[0]][b[1]]="B"
    for n in black_balls:
        g[n[0]][n[1]]="N"
    return g

def initGame():          
    g=grid()
    g=balls_location(g)
    return g

g=initgame()
show_grid(g)

我如何移动碎片,因为我知道,我只能移动,如果没有任何东西在背后。这是两个人玩的游戏。游戏有三个名字(秋叶,库巴,特拉布莱),如果你想检查规则。

最终的结果应该是这样:

代码语言:javascript
复制
     1  2  3  4  5  6  7  
   -----------------------  
1 |  N  N  *  *  *  B  B  | 1
2 |  N  N  *  R  *  B  B  | 2
3 |  *  *  R  R  R  *  *  | 3
4 |  *  R  R  R  R  R  *  | 4
5 |  *  *  R  R  R  *  *  | 5
6 |  B  B  *  R  *  N  N  | 6
7 |  B  B  *  *  *  N  N  | 7
   -----------------------  
     1  2  3  4  5  6  7 

### the command
>>> player 1 > 1(column) 1(row) down(direction)

之后应该是这样的。

代码语言:javascript
复制
     1  2  3  4  5  6  7  
   -----------------------  
1 |  *  N  *  *  *  B  B  | 1
2 |  N  N  *  R  *  B  B  | 2
3 |  N  *  R  R  R  *  *  | 3
4 |  *  R  R  R  R  R  *  | 4
5 |  *  *  R  R  R  *  *  | 5
6 |  B  B  *  R  *  N  N  | 6
7 |  B  B  *  *  *  N  N  | 7
   -----------------------  
     1  2  3  4  5  6  7 

>>> player 2>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-17 22:22:44

这是一种非常“无趣”和杂乱无章的做法,下面就是我要“工作”的一个例子:

代码语言:javascript
复制
def players_move(r, c, dir):
    if dir == 'down':
        if g[r+1][c] == '*':
            for b in black_balls:
                if b[1] == 0:
                    black_balls[b[0]][0] += 1
        g[r-1][c-1] = '*'

g=initGame()
show_grid(g)

players_move(1, 1, "down")
balls_location(g)
show_grid(g)

这给出了你展示的结果。

而且,由于您对代码和所涉及的逻辑有了更好的理解,您可能会对此有很大的改进。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43454898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档