Проблема со словарями/списками списков в моем проекте настольной игры на PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема со словарями/списками списков в моем проекте настольной игры на Python

Сообщение Anonymous »

Меня зовут Иеремия, я впервые пишу здесь, поэтому, если я пропустил хороший пост по этому поводу, заранее прошу прощения. Основная цель этого проекта — создать текстовую настольную игру с процедурно генерируемым игровым полем. По сути, мой код работает так: я начинаю с определения размеров двумерного списка, насколько я его понимаю, а затем создаю словарь для каждого отдельного пространства, содержащего атрибуты. Затем компьютер выполняет ряд случайных вычислений, чтобы создать набор чисел с плавающей запятой, которые затем сверяет с несколькими параметрами, чтобы пометить различные атрибуты как строки, которые я, надеюсь, смогу использовать позже. Проблема, с которой я столкнулся, заключается в моей функции findConnectedSpaces(). По крайней мере, в моей голове он работает так: он проходит через кучу попыток, кроме блоков, пытается изменить координаты пространства, в котором он сейчас находится, добавляет или вычитает 1 к значению координаты и проверяет, есть ли там это ошибка индекса. По сути, идея состоит в том, что у меня есть сетка из 6 столбцов и 5 строк со всеми пробелами, и я пытаюсь проверить окружающие 8 квадратов, чтобы увидеть, «существуют» ли эти квадраты в моем 2d-списке. Если они это сделают, клетки будут считаться «связанными». Идея состоит в том, что я хочу, чтобы игроки в конечном итоге могли ходить, как король в шахматах. Однако, когда я запускаю свою программу, первая строка вообще не подтверждает никаких соединений, и единственные вещи, которые в конечном итоге добавляются в массив linkedSpaces[] — это пробелы, которые каким-то образом включают yUp. В основном квадрат вверх, вверхВправо и вверхВлево, соединение, но ничего больше? Есть ли у кого-нибудь идеи, как я могу попытаться это исправить? Я работаю над этим уже несколько часов.

Код: Выделить всё

#Importing my modules
import random
import math

#Define all of my variables to be able to add them to my list later
spaceType = float
exists = bool
number = int
connected = bool
connectedSpaces = []
spaceX = 'x'
spaceY = 'y'

#Define the 2d Array and add all of the tiles.
width = 6
height = 5
board = []

#Find the connected spaces

def findConnectedSpaces():

#define a list for the connected spaces

#define all of the coordinates as a variable so we can check them later
xRight = space[spaceX] + 1
xLeft = space[spaceX] - 1
yUp = space[spaceY] - 1
yDown = space[spaceY] + 1
try:
spaceRight = board[space[spaceY]][xRight][number]
connectedSpaces.append(spaceRight)
print('Connected: R')
except IndexError:
print('Couldnt connect: R')
pass

try:
spaceLeft = board[space[spaceY]][xLeft][number]
connectedSpaces.append(spaceLeft)
print('Connected: L')
except IndexError:
print('Couldnt connect: L')
pass  # Skip if out of bounds

try:
spaceDown = board[yDown][space[spaceX]][number]
connectedSpaces.append(spaceDown)
print('Connected: D')
except IndexError:
print('Couldnt connect: D')
pass  # Skip

try:
spaceUp = board[yUp][space[spaceX]][number]
connectedSpaces.append(spaceUp)
print('Connected: U')
except IndexError:
print('Couldnt connect: U')
pass  # Skip

try:
spaceRightDown = board[yDown][xRight][number]
connectedSpaces.append(spaceRightDown)
print('Connected: RD')
except IndexError:
print('Couldnt connect: RD')
pass  # Skip

try:
spaceLeftDown = board[yDown][xLeft][number]
connectedSpaces.append(spaceLeftDown)
print('Connected: LD')
except IndexError:
print('Couldnt connect: LD')
pass  # Skip

try:
spaceRightUp = board[yUp][xRight][number]
connectedSpaces.append(spaceRightUp)
print('Connected: RU')
except IndexError:
print('Couldnt connect: RU')
pass  # Skip

try:
spaceLeftUp = board[yUp][xLeft][number]
connectedSpaces.append(spaceLeftUp)
print('Connected: LU')
except IndexError:
print('Couldnt connect: LU')
pass  # Skip

# Print the connected spaces
print(f"{space[number]} is connected to: {connectedSpaces}")

return connectedSpaces  # Return the list of valid connected spaces

# Create a loop to create all of the dictionaries.
for y in range(height):
row = []
for x in range(width):
#create the dictionary for the space
space = {}
#use a random number to find the space type
space[spaceType] = random.random()
#use a random number to find out if the space exists
space[exists] = random.random()
#number the space
space[number] = (x + 1) + (y * width)
space[spaceX] = x
space[spaceY] = y
connectedSpaces = []
#run my functions
findSpaceType()
doesSpaceExist()
findConnectedSpaces()
print(space[spaceY])
print(space[spaceX])
row.append(space)
board.append(row)
print(board)
Я также пытался сделать это на основе числа пробелов и решил сделать это вместо этого, чтобы, надеюсь, доску было легче расширять.

Подробнее здесь: https://stackoverflow.com/questions/791 ... me-project
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Коин в котлине мультиплатформы (KMP) Ошибка платформы настольной настольной платформы: noclassdeffounderror: org/koin/co
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как работает индексация Pytorch со списками списков против списков списков против тензоров
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Создание двухмерной сетки для настольной игры в Python
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • CSS Grid с равномерно распределенными ячейками для настольной игры (квадрат)
    Anonymous » » в форуме CSS
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Разработка Android- Создание настольной игры [закрыто]
    Anonymous » » в форуме Android
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»