首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

表示跳棋棋盘的二维数组出现有关问题,请各位帮忙了

2012-03-29 
表示跳棋棋盘的二维数组出现问题,请各位帮忙了我想用一个17*25的二维数组表示跳棋棋盘,可以放棋子的地方以

表示跳棋棋盘的二维数组出现问题,请各位帮忙了
我想用一个17*25的二维数组表示跳棋棋盘,可以放棋子的地方以“y”标识,不可以放棋子的地方以“-1”标识。横向17行,竖向25列。在用print显示时总是不能正确显示。请各位帮帮忙了。

a=0
li=[]
while   a <25:
        li.append( "0 ")
        a=a+1
arr=[]
b=0
while   b <17:
        arr.append(li)
        b=b+1
for   i   in   range(0,17):
        for   j   in   range(0,25):
                arr[i][j]= "-1 "
                if((i==0   or   i==16)   and   j==12):
                        arr[i][j]= "y "
                elif((i==1   or   i==15)   and   (j==11   or   j==13)):
                        arr[i][j]= "y "
                elif((i==2   or   i==14)   and   (j==10   or   j==12   or   j==14)):
                        arr[i][j]= "y "
                elif((i==3   or   i==13)   and   (j==9   or   j==11   or   j==13   or   j==15)):
                        arr[i][j]= "y "
                elif((i==4   or   i==12)   and   (j   %   2==0)):
                        arr[i][j]= "y "
                elif((i==5   or   i==11)   and   (j   %   2==1)):
                        arr[i][j]= "y "
                elif((i==6   or   i==10)   and   (j!=0   and   j!=24   and   j   %   2==1)):
                        arr[i][j]= "y "
                elif((i==7   or   i==9)   and   (j!=1   and   j!=23   and   j   %   2==0)):
                        arr[i][j]= "y "
                elif(i==8   and   (j==4   or   j==6   or   j==8   or   j==10   or   j==12   or   j==14   or   j==16   or   j==18   or   j==20)):
                        arr[i][j]= "y "

for   i   in   range(0,17):
        print   arr[i], "i: ",i

[解决办法]
由于csdn的回帖没有空格,所以看这段代码实在太费劲了:)
前面那部分代码的意图是否是建立一个空的二维数组? 用
arr = [[ "0 " for _ in range(25)] for _ in range(17)]
就可以了.
可以显示,不过为了美观,最好不要用 "-1 "打印,因为-1是两个字符,而其他是一个字符, 这样就不好看了。还有,最后print arr[i] 可以改为 print " ".join(arr[i])
我修改了一下程序, 不知是否合意

arr = [[ "0 " for _ in range(25)] for _ in range(17)]



for i in range(0,17):
____for j in range(0,25):
________if((i==0 or i==16) and j==12):
____________arr[i][j]= "y "
________elif((i==1 or i==15) and (j==11 or j==13)):
____________arr[i][j]= "y "
________elif((i==2 or i==14) and (j==10 or j==12 or j==14)):
____________arr[i][j]= "y "
________elif((i==3 or i==13) and (j==9 or j==11 or j==13 or j==15)):
____________arr[i][j]= "y "
________elif((i==4 or i==12) and (j % 2==0)):
____________arr[i][j]= "y "
________elif((i==5 or i==11) and (j % 2==1)):
____________arr[i][j]= "y "
________elif((i==6 or i==10) and (j!=0 and j!=24 and j % 2==1)):
____________arr[i][j]= "y "
________elif((i==7 or i==9) and (j!=1 and j!=23 and j % 2==0)):
____________arr[i][j]= "y "
________elif(i==8 and (j==4 or j==6 or j==8 or j==10 or j==12 or j==14 or j==16 or j==18 or j==20)):
____________arr[i][j]= "y "

for i in range(0,17):
____print " ".join(arr[i])

热点排行