Tradução do livro Realm of Racket

20872 palavras 84 páginas
(Capitulo 8)

Neste capitulo é proposto um entendimento mais profundo como programar usando listas que contenha struturas e que também contenha listas. Expandir o conhecimento sobre estruturas. A Orc Battle é uma boa maneira de reforçar processamentos de listas e adicionar alguns conceitos a mais de estruturas.

Configurando o mundo, um primeiro passo

Começando com uma estrutura de dado que representa o mundo. É sugerido manter o controle do mundo de orc em uma estruct de quatros campos:
(struct orc-wolrd (player lom attack# target) )

A estrutura do mundo é o jogador a lista de monstros o numero de ataques ( dano causado) e a posição do proximo ataque no caso o target.
Os campos do player descreve seus atributos. O player tem três atributos, ficaria:

(struct player (health agility strenght) )

Os campos do player corresponde à pontos de vida, agilidade e força.
Cada um desses três campos irão conter um numero. E aqui descrevemos algumas constantes que descrevem o intervalo de numeros que pode ser encontrado em uma strutura player:

(define MAX-HEALTH 35 )
(define MAX-AGILITY 35)
(define MAX-STRENGHT 35)

Agora definimos uma lista de monstros, orc, hydra,slime e brigand e 4 strutcs para cada tipo de monstro:

(struct orc (health club ))
(struct hydra (health))
(struct slime (health sliminess))
(struct brigand (health))

Todos os monstros tem uma propriedade em comum: health. Orcs carregam clubs, com diferentes forças, dai a explicação do campo club na estrutura do orc. Assim como o campo slimeness na estrutura slime é similar.
Assim como na estrutura de player ,cada campo da estrutura de monstro contem um numero. E aqui descrevemos algumas constantes que descrevem o intervalo de numeros que pode ser encontrado em uma strutura de monstro:

(define MONSTER-HEALTH0 9)
(define CLUB-STRENGTH 8)
(define SLIMINESS 5)

Vamos fazer uma lista de monstro:

> (list (orc MONSTER-HEALTH0 (add1 (random CLUB-STRENGTH))))
(list (orc

Relacionados