如何从矩阵的列表中删除元素?

2024-10-03 09:14:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python构建Nim“数学策略游戏”,我在从矩阵中移除特定列表中的元素时遇到了问题,我从从用户获取游戏模式开始,然后开始移除元素。在

def RemoveMatches(Stacks,StackNum,Matches):  
    if not_empty(Stacks[StackNum]):
        lenStack=len(Stacks[StackNum])
        try:  
            val=int(Matches)
        except ValueError:
            print ("Wrong input,try only with numbers")
            return False
        if val>lenStack:
            print "try again with smaller number"
            return False
        else :
            for i in range(Matches):
                Stacks[StackNum].pop()
            return True
    else:
        print "Stack that you have chose is already empty,try other satck"
        return False  

Stacks是我在main中构建的矩阵。
StackNum要从it元素中删除的列表数目。
Matches要删除的元素数。在

还有一个名为ManageGame的函数,它控制用户的输入“如果是2个玩家或1个玩家,则获取StackNum/匹配项”:

^{pr2}$

lastDot(Stack)是一个检查矩阵是否有多于1个点的函数。在

问题是当我试图从StackNum中删除元素数量时,我会得到这样的结果:
发件人:

enter image description here

当我输入StackNum=1,Matches=2时,我得到:

enter image description here

不知怎么的,我从每行矩阵中去掉了2个点,我看不到代码中的问题。在


Tags: 用户false游戏元素列表returnif矩阵
2条回答

列表l=[]的问题,我如何构建矩阵:

l=[]
tmp=[]
for i in range(10):
    l.append('*')
for i in range(5):
    tmp.append(l)

当我把同一个指针附加到同一个指针上时,
我是怎么解决的:

^{pr2}$

当我想弹出一个元素时,我减去匹配数字。在

行中的回报:

for i in range(Matches):
    Stacks[StackNum].pop()
    return True

位于错误的位置。必须在for之后移动它。 否则,在第一次迭代之后,它将退出而不运行所有迭代:

^{pr2}$

相关问题 更多 >