Muito bem.
Espero que você esteja pronto para alguma codificação, pois há muito para passar.
E, de fato, provavelmente nem chegaremos a um ponto nesta palestra em particular onde possamos dirigir qualquer coisa.
Mas o que vamos fazer é começar com o básico e criar algumas classes realmente básicas em que possamos
nos basear.
E serão os estados do mundo, os agentes e também as ações.
Portanto, vamos em frente e criemos esses arquivos.
Portanto, em seu projeto, vamos criar um arquivo em C afiado.
Vou chamá-lo de agente G.
Então vamos criar outra e vamos chamar isso de uma g ação.
E outra.
Que chamaremos de Mundo G.
E mais um.
E vamos chamar isso de estados do mundo.
Certo.
Portanto, vamos abrir os estados do mundo e editaremos esse primeiro.
No topo, vou incluir logo acima da própria classe propriamente dita uma outra pequena classe e
vamos torná-la séria para que possamos vê-la dentro do inspetor.
Portanto, se o sistema se tornar visível em série e então teremos um estado mundial de classe pública.
E nesse estado, o que vamos fazer é criar uma chave pública de seqüência e um valor int público.
Agora estamos fazendo isso para que você possa realmente editar esses itens no inspetor, porque assim que começarmos a construir
o sistema, você vai querer arrastar e soltar muitas coisas ao redor, tanto quanto possível.
Agora a razão de estarmos criando um estado mundial com um valor chave e um valor é que vamos criar um
dicionário com estes.
E a chave em si é, na verdade, o estado mundial.
E então eu também acrescentei neste valor e o valor é algum tipo de inteiro que você quer associar com
a chave.
Você gostaria de se associar com a chave na pista?
Na maior parte das vezes, não vamos usar isso, mas estamos usando um dicionário.
Portanto, precisamos ter estes dois valores ali dentro.
Mas digamos que na pista que você queria ter um estado mundial era como um cubículo livre.
E então você poderia ter aqui dentro que havia cinco cubículos livres ou algo assim e então você poderia testá-lo
quando estendesse este sistema.
Muito bem.
Portanto, esta é nossa pequena classe com o estado mundial, e a usaremos dentro de outras classes.
Portanto, vamos em frente e agora façamos aqui nosso estado mundial.
Agora, antes de tudo, não vai ser um comportamento mono.
Assim, você pode se livrar disso e de todo o outro código que está dentro daqui.
Antes de mais nada, vamos criar algo para manter todos os estados do mundo.
Portanto, dicionário público.
Int. de cordas
E isto será chamado de nossos estados.
Portanto, vamos criar nosso construtor, e este será um Estado público mundial.
E dentro daqui, acabamos de montar nosso dicionário.
Assim, os estados são iguais ao novo dicionário.
Int. de cordas
Muito bem.
Portanto, é tudo o que precisamos lá dentro.
Está bem.
Agora vamos acrescentar uma série de métodos para nos ajudar a usar o dicionário.
Assim, para acrescentar coisas ao dicionário e modificar o dicionário e também definir os estados que estão
no dicionário.
Antes de mais nada, vamos perguntar se o dicionário tem um estado particular nele.
Portanto, o bool público tem estado e nós vamos passar pela chave.
E então retornaremos aos estados.
O ponto contém a chave.
Certo.
Bonito e simples.
Lá, você vai começar a ver porque estamos usando dicionários para isto, porque eles são tão
fáceis de manipular e acrescentar coisas e procurar coisas sem ter que escrever um monte de código.
Muito bem.
O próximo será acrescentar um estado ao nosso dicionário.
Se não estiver lá, então evite acrescentar valor int de chave de estado.
E então isto é simplesmente um ponto de adição de estados e depois uma chave e um valor.
Bonito e simples.
Em seguida, vamos acrescentar um estado modificador.
Portanto, a chave de estado do modificador de void key int valor.
E, neste caso, vou colocar.
Se o ponto do estado contém a chave.
Então, obviamente, já acrescentamos esse estado ao nosso dicionário.
Agora, se estiver ali, o que eu quero fazer é realmente aumentar seu valor pelo que quer que passemos por aqui, o que significa
que você também poderia tirar, enviando como se fosse um "menos" daqui.
Portanto, deixe-me colocar aqui se os estados contiverem estados-chave a essa chave em particular mais um valor igual.
Se o estado nessa chave for menor ou igual a zero, na verdade eu vou me livrar dela.
Agora, isso se deve à maneira como estou usando este dicionário em particular.
Se você não vai usar isso e realmente quer valores negativos lá dentro, então depende
inteiramente de você como lidar com isso.
Então o que vamos fazer para isto como exemplo, é se tivermos um estado como os cubículos livres e houver cinco cubículos
livres, e então você envia através de outro cubículo livre, então ele atualizará o número de cubículos para seis
que estão disponíveis.
Se um cubículo não estiver mais livre, então você poderia enviar através de um valor de cubículo livre menos um.
Na verdade, ele irá retirar o número de cubículos que estão disponíveis para uso.
Certo, então, uma vez que tenhamos feito isso, vamos simplesmente a outro lugar.
Os Estados acrescentam.
Valor chave.
Portanto, se não existir e estivermos acrescentando nosso primeiro cubículo lateral, ele vai acrescentar
isso ali em vez de incrementar.
Agora, ainda não escrevemos para remover estados e vamos chegar a isso agora mesmo.
Portanto, vazio público, remova a chave de estado.
E então aqui se o ponto do estado contém a chave.
Em seguida, declararemos que vamos parar.
Remova a chave.
Fácil.
Especialmente se você soletra-lo corretamente.
Muito bem.
Portanto, essa é a modificação e a remoção.
Agora, vamos ter um estado real se não precisarmos modificá-lo.
Quanto a acrescentar-lhe um valor, queremos apenas definir qual é o seu valor.
O estado de vazio público estabelecido.
Mais uma vez, queremos a chave de corda e o valor int.
E aqui vamos se o ponto do estado contiver a chave novamente.
Então, podemos ir aos estados.
A chave é igual ao valor.
Caso contrário, podemos acrescentar esse estado em tal estado.
Pare de adicionar a chave com o valor.
Muito bem.
Portanto, esse é todo o tipo de métodos de gestão de que precisamos.
Finalmente, vou criar um que possamos devolver todos os estados ou devolver o dicionário atual.
Assim, um fio de dicionário público.
Não é.
Obtenha estados.
Estados de retorno.
Portanto, isto será realmente usado pelo planejador quando ele precisar se apoderar de todos
os estados do mundo e de todos os estados da crença.
Muito bem.
Então eu acabei de notar que tenho um pequeno problema aqui em cima com aquele espaço ali dentro.
Então, deixe-me livrar-me disso.
E o resto do código está pronto para ir, para que possamos salvar isso agora que escrevemos nossa classe mundial de estados.
Muito bem.
Portanto, voltemos rapidamente à unidade para que eu possa abrir nossa classe G mundial.
E isso também não vai ser um comportamento mono.
Mas o que vamos fazer com ele é criar uma classe selada.
E isto nos ajudará um pouco mais tarde, quando começarmos a usar tacos para enfileirar as coisas para
que não tenhamos nenhum tipo de conflito ao tentar acessar determinadas partes desta classe, que realmente só deveria
ser acessada uma coisa de cada vez.
Certo.
Portanto, antes de mais nada, vamos criar uma instância privada estática apenas de leitura g do mundo, o que equivale a um
novo mundo G.
Agora, eu não mencionei isto, mas também vamos transformar isto em um único botão para que possamos acessá-lo em praticamente
todos os lugares.
E nós queremos apenas uma versão do ambiente do mundo do jogo, porque existe apenas um mundo do jogo.
Portanto, não queremos ter cópias com valores diferentes.
Portanto, mundo estático privado, estados, mundo.
Esse é o nosso dicionário que contém todos os seus estados.
Certo, então vamos nos livrar desses inícios e atualizações porque na verdade não precisamos deles.
Então teremos nosso construtor.
Portanto, o mundo Static G e aqui vamos criar World Equals New World States, que é apenas um novo dicionário.
E isso é tudo o que precisamos ali dentro.
Muito bem, então vamos criar um mundo G privado e preparar tudo para que possamos realmente agarrá-lo
com um único botão público.
Estático.
G instância mundial.
E esta será uma instância de devolução de presentes.
Certo.
E então uma última coisa que colocaremos aqui é um status público mundial para obter o mundo, para que
possamos realmente devolver o status do mundo.
Mundo de retorno.
Certo.
Portanto, é tudo o que precisamos atualmente no mundo.
Voltaremos e criaremos aqui mais alguns métodos e outros dicionários à medida que precisarmos deles enquanto começamos
a construir a simulação.
Então, esse é nosso mundo básico e nossos estados do mundo.