Módulo 04 – Trabalhando com Dados

Estruturas de Dados

Definição

Estruturas de dados são formas de organizar e armazenar informações de um jeito eficiente, facilitando o acesso e a manipulação desses dados. Existem várias estruturas de dados. As mais comuns são arrays (ou listas) e dicionários. Vamos ver como elas funcionam no GDScript.

Arrays

Arrays são coleções ordenadas de elementos, acessíveis por índices, como uma lista de itens no inventário de um jogo.

Declaração e Inicialização

GDScript
#
# Exemplos de  declaração e inicialização de arrays
#

# declarando um array vazio
var meu_array_vazio = []

# declarando e inicializando um array
var meu_array = [1, 2, 3, 4, 5]

# também é possível criar arrays mistos
var array_misto = [1, "texto", 3.5, true]

Acessando os Elementos

O acesso aos elementos em um array é feito através de índices, começando do zero.

GDScript
#
# Acessando dados em um array
#

var itens= ["espada", "poção", "fruta"]

func acesso():
  # imprime primeiro dado do array: espada
  print(itens[0])
  
  # imprime último dado do array: fruta
  print(itens[2])
  # ou
  print(itens[-1])

Modificando os Elementos

Como toda linguagem de programação, o GDScript oferece alguns métodos bastante úteis pra manipular arrays. Dessa forma, podemos adicionar ou remover elementos do array, redimensioná-lo e muito mais.

A seguir temos alguns exemplos de manipulação de arrays:

GDScript
#
# alterando dados em um array
#

var itens= ["espada", "poção", "fruta"]

func muda_array()
  # troca o último dado do array de fruta para verdura
  itens[2] = "verdura"
  
  # adiciona um elemento no final do array
  itens.append("roupa")
    
  # remove a primeira ocorrencia de poçãoque encontra no array
  itens.erase("poção")
  
  # redimensiona o array
  # inclui elementos vazios se o array possui menos de 10 elementos
  # ou elimina os últimos elementos se o array possui mais de 10
  itens.resize(10)
  
  # remove o elemento do índice
  itens.remove_at(2)
  
  # esvazia o array, removendo todos os elementos
  itens.clear()

Dicionários

Dicionários são coleções de pares chave-valor, onde cada chave é única e mapeia para um valor. Eles são super úteis quando você quer associar informações específicas de forma organizada.

Declaração e Inicialização

GDScript
#
# Exemplos de  declaração e inicialização de dicionários
#

# declarando um dicionário vazio
var dicionario_vazio = {}

# declarando e inicializando um dicionário
var dicionario_personagem = {
  "nome": "Mario",
  "vida": 100,
  "mana": 50
}

Acessando dados em um Dicionário

Para acessar os valores armazenados em um dicionário, utilizamos as chaves.

GDScript
#
# Acessando dados em um dicionário
#

var dicionario_personagem = {
  "nome": "Mario",
  "vida": 100,
  "mana": 50
}

print(dicionario_personagem["nome"])  # Mario
print(dicionario_personagem["vida"])  # 100

Modificando dados de um Dicionário

Assim como os arrays, os dicionários também possuem alguns métodos para manipulação dos dados.

GDScript
#
# Modoficando dados de um dicionário
#

var dicionario_personagem = {
  "nome": "Mario",
  "vida": 100,
  "mana": 50
}

dicionario_personagem["vida"] = 80
print(dicionario_personagem["vida"])  # 80

Manipulando dados

GDScript
#
# Manipulação dos valores de um dicionário
#

var dicionario_personagem = {
  "nome": "Mario",
  "vida": 100,
  "mana": 50
}

# Adicionando novo par de dados
dicionario_personagem["forca"] = 75
print(dicionario_personagem)
# imprime: { "nome": "Mario", "vida": 80, "mana": 50, "forca": 75 }

# Removendo dados
dicionario_personagem.erase("mana")
print(dicionario_personagem)
# imprime: { "nome": "Mario", "vida": 80, "forca": 75 }

# Acessando todas as chaves do dicionário
var chaves = dicionario_personagem.keys()
print(chaves)  # ["nome", "vida", "forca"]

#Acessando todos os valores
var valores = dicionario_personagem.values()
print(valores)  # ["Mario", 80, 75]

Iteração sobre Estruturas de Dados

GDScript
# Iterando sobre arrays
for fruta in frutas:
  print(fruta)

# Iterando sobre dicionários
for chave in dicionario_personagem.keys():
  print(chave, ":", dicionario_personagem[chave])

Revisado em

em

,

por