I’m trying to make a 12×12 binary-puzzle game in python. There’s no GUI in the game, just the shell. To get the values of the tiles, I made an import function which imports values from an excel-document using xlrd. Now I’m making a function to print out the board, but something’s not quite right:
(sorry for too big pictures)
Here is my code:
Main:
import Import as imp
import print as prt
data = imp.getInput("C:/Users/jaspe/PyCharmProjects/BinaryPuzzle/INPUT.xls")
print(data)
print(data[6])
prt.printField(data)
Import:
import xlrd
def getInput(loc):
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
data = [[], [], [], [], [], [], [], [], [], [], [], []]
i = 0
while i < 12:
data[i].append(sheet.cell_value(i, 0))
data[i].append(sheet.cell_value(i, 1))
data[i].append(sheet.cell_value(i, 2))
data[i].append(sheet.cell_value(i, 3))
data[i].append(sheet.cell_value(i, 4))
data[i].append(sheet.cell_value(i, 5))
data[i].append(sheet.cell_value(i, 6))
data[i].append(sheet.cell_value(i, 7))
data[i].append(sheet.cell_value(i, 8))
data[i].append(sheet.cell_value(i, 9))
data[i].append(sheet.cell_value(i, 10))
data[i].append(sheet.cell_value(i, 11))
j = 0
while j < len(data[i]):
if data[i][j] != "":
data[i][j] = int(data[i][j])
j = j + 1
i = i + 1
return data
Print:
def printField(d):
i = 0
d_ = []
while i < len(d):
d_.append([])
j = 0
while j < len(d[i]):
d_[i].append(d[i][j])
if d_[i][j] == "":
d_[i][j] = "_"
j = j + 1
i = i + 1
space = " "
print(str(d_[0][0]) + space + str(d_[0][1]) + space + str(d_[0][2]) + space + str(d_[0][3]) + space + str(
d_[0][4]) + space + str(d_[0][5]) + space + str(d_[0][
6]) + space + str(d_[0][7]) + space + str(
d_[0][8]) + space + str(d_[0][8]) + space + str(d_[0][9]) + space + str(d_[0][10]) + space + str(d_[0][11]))
print(str(d_[1][0]) + space + str(d_[1][1]) + space + str(d_[1][2]) + space + str(d_[1][3]) + space + str(
d_[1][4]) + space + str(d_[1][5]) + space + str(d_[1][
6]) + space + str(d_[1][7]) + space + str(
d_[1][8]) + space + str(d_[1][8]) + space + str(d_[1][9]) + space + str(d_[1][10]) + space + str(d_[1][11]))
print(str(d_[2][0]) + space + str(d_[2][1]) + space + str(d_[2][2]) + space + str(d_[2][3]) + space + str(
d_[2][4]) + space + str(d_[2][5]) + space + str(d_[2][
6]) + space + str(d_[2][7]) + space + str(
d_[2][8]) + space + str(d_[2][8]) + space + str(d_[2][9]) + space + str(d_[2][10]) + space + str(d_[2][11]))
print(str(d_[3][0]) + space + str(d_[3][1]) + space + str(d_[3][2]) + space + str(d_[3][3]) + space + str(
d_[3][4]) + space + str(d_[3][5]) + space + str(d_[3][
6]) + space + str(d_[3][7]) + space + str(
d_[3][8]) + space + str(d_[3][8]) + space + str(d_[3][9]) + space + str(d_[3][10]) + space + str(d_[3][11]))
print(str(d_[4][0]) + space + str(d_[4][1]) + space + str(d_[4][2]) + space + str(d_[4][3]) + space + str(
d_[4][4]) + space + str(d_[4][5]) + space + str(d_[4][
6]) + space + str(d_[4][7]) + space + str(
d_[4][8]) + space + str(d_[4][8]) + space + str(d_[4][9]) + space + str(d_[4][10]) + space + str(d_[4][11]))
print(str(d_[5][0]) + space + str(d_[5][1]) + space + str(d_[5][2]) + space + str(d_[5][3]) + space + str(
d_[5][4]) + space + str(d_[5][5]) + space + str(d_[5][
6]) + space + str(d_[5][7]) + space + str(
d_[5][8]) + space + str(d_[5][8]) + space + str(d_[5][9]) + space + str(d_[5][10]) + space + str(d_[5][11]))
print(str(d_[6][0]) + space + str(d_[6][1]) + space + str(d_[6][2]) + space + str(d_[6][3]) + space + str(
d_[6][4]) + space + str(d_[6][5]) + space + str(d_[6][
6]) + space + str(d_[6][7]) + space + str(
d_[6][8]) + space + str(d_[6][8]) + space + str(d_[6][9]) + space + str(d_[6][10]) + space + str(d_[6][11]))
print(str(d_[7][0]) + space + str(d_[7][1]) + space + str(d_[7][2]) + space + str(d_[7][3]) + space + str(
d_[7][4]) + space + str(d_[7][5]) + space + str(d_[7][
6]) + space + str(d_[7][7]) + space + str(
d_[7][8]) + space + str(d_[7][8]) + space + str(d_[7][9]) + space + str(d_[7][10]) + space + str(d_[7][11]))
print(str(d_[8][0]) + space + str(d_[8][1]) + space + str(d_[8][2]) + space + str(d_[8][3]) + space + str(
d_[8][4]) + space + str(d_[8][5]) + space + str(d_[8][
6]) + space + str(d_[8][7]) + space + str(
d_[8][8]) + space + str(d_[8][8]) + space + str(d_[8][9]) + space + str(d_[8][10]) + space + str(d_[8][11]))
print(str(d_[9][0]) + space + str(d_[9][1]) + space + str(d_[9][2]) + space + str(d_[9][3]) + space + str(
d_[9][4]) + space + str(d_[9][5]) + space + str(d_[9][
6]) + space + str(d_[9][7]) + space + str(
d_[9][8]) + space + str(d_[9][8]) + space + str(d_[9][9]) + space + str(d_[9][10]) + space + str(d_[9][11]))
print(str(d_[10][0]) + space + str(d_[10][1]) + space + str(d_[10][2]) + space + str(d_[10][3]) + space + str(
d_[10][4]) + space + str(d_[10][5]) + space + str(d_[10][
6]) + space + str(d_[10][7]) + space + str(
d_[10][8]) + space + str(d_[10][8]) + space + str(d_[10][9]) + space + str(d_[10][10]) + space + str(d_[10][11]))
print(str(d_[11][0]) + space + str(d_[11][1]) + space + str(d_[11][2]) + space + str(d_[11][3]) + space + str(
d_[11][4]) + space + str(d_[11][5]) + space + str(d_[11][
6]) + space + str(d_[11][7]) + space + str(
d_[11][8]) + space + str(d_[11][8]) + space + str(d_[11][9]) + space + str(d_[11][10]) + space + str(d_[11][11]))
I know it’s some inefficient code but its not stupid if it works(but it doesn’t work so it’s stupid)
tnx 4 helping!
EDIT: Tnx to @blorgon and @T1Berger, the issue is fixed, tnx guys!
Advertisement
Answer
You got a copy and paste error in every index space with str(d_[x][8])
As @blorgon pointed out you should refactor your code – with for the example a foreach loop going through the elements of your nested array. A simple list comprehension should do the trick and is easier to code and to understand:
[print(' '.join(nested_list )) for nested_list in data]