El-Gato-Gordo / MageKnight

JOGO
MIT License
0 stars 2 forks source link

Estudar Javascript #5

Closed pedrykolas closed 2 years ago

pedrykolas commented 2 years ago
  1. Ler o livro Eloquent Javascript.
  2. Instalar e usar diariamente o aplicativo Grasshopper.
  3. Realizar os cursos introdutórios da RocketSeat.
CaioBongs commented 2 years ago

Resumo de estudo de JavaScript material utilizado: https://www.youtube.com/watch?v=WcIIUmDch94

Variáveis, operadores, estruturas de controle, função e objetos

Varíáveis podem ser de tipos numéricos ou textuais (var; let; const), const geralmente são melhores para uso geral, var e let para criação de variáveis e const constantes

operadores unarios binários e ternários: unários: postfix e prefix a++ e ++a respectivamente, soma +1 na variável (caso a = 3 e o comando a++ for executado teremos 4) binários: Aritiméticos, relacionais e lógicos: de maneira geral executa cálculos entre duas variáveis (incluindo com números genéricos e ela mesma), é possível verificar se um número é maior ou menor do que outro, exemplo: console.log(3 > 2) //isso faria o console dizer true console.log(!(3 > 2)) //"!" inverte o que o console diz, ou seja o que é falso vira verdadeiro e vice-versa. lógico: let temsol = true let estoucomdinheiro = true let vousair = temsol || estoucomdinheiro console.log(vousair) // isso faria o console dizer true pois as duas condições anteriores foram cumpridas. ternário: let temsol = true let estoucomdinheiro = true let vousair = temsol || estoucomdinheiro console.log(vousair ? 'Ebaa!' : 'chatao!') // isso faria o console dizer "ebaa!" caso se o vousair fosse verdadeira e "chatao!" caso fosse falso

let temsol = true let estoucomdinheiro = true let vousair = temsol || estoucomdinheiro let resultado = vousair ? 'ebaa!' : 'chatao!' console.log(resultado) // isso faria o mesmo que o último comando, porém utilizando uma variável a mais

Estruturas de controle: if's, else's, true's, false's e for's: auto-explicativo, cria "e se" e "caso contrário" para criar situações de múltiplas escolhas, for's serve para criar comandos de repetição e de (armazenação de informações = arrays)

Função(function): tema essencial e extenso. function soma(a,b) { console.log(a + (b || 2)) } soma (3, 4, 5, 6, 7, 8) // esse comando faria o 3 + 4 ser somado

false ou um "vazio" pode ser utilizado para um valor padrão em strings, ou seja, ele será pulado. comparando NaN(not a number) com qualquer coisa o torna falso == compara valores incluindo texto e números === compara valores mas só interage se for do mesmo tipo (número e número ou texto e texto) !== inverso da segunda != inverso da primeira funções pode ser colocadas dentro de outras funções

function declaration: utiliza variáveis de maneira direta function expression: usa variáveis de maneira indireta ou "anônima", cria resultados que depois podem ser utilizados como uma outra função.

pedrykolas commented 2 years ago

Estudo com Grasshopper e conhecimento prévio:

Podemos livremente alterar o valor de variáveis ao longo do código, e também defini-las por cálculos, como por exemplo o código abaixo:

var Bananas = 8
var Forme = 3

print(Bananas);
print(Fome);

Bananas = Bananas - Fome
Fome = 0

print(Bananas);
print(Fome);

Assim, um erro informando que a variável Fome não existe seria apresentado, já que escrevi var Forme = 3 no início.

Corrigindo a segunda linha de código para var Fome = 3, teremos o seguinte resultado no console:

8
3

5
0

Tenhamos como exemplo o código abaixo:

var listaCompras = [
"Batata rústica",
"Chá gelado",
"Maçã",
"Ovo",
"Picanha",
];

Este código cria a variável listaCompras, por utilizarmos [], ela se torna uma array, que basicamente é uma lista de dados, podendo conter strings, números ou até outras arrays.

Podemos indexar cada item da array seguindo sua ordem, começando pelo zero.

Também podemos definir variáveis por meio de funções criadas no próprio código, como o exemplo:

var Moeda = pickRandom([

 "Cara",
 "Coroa",

]);

Assim o valor de Moeda será atribuído de acordo com a função pickRandom (para escolher aleatoriamente entre valores de uma array neste caso)

Utilizando essa função, é possível fazer um loop finito por exemplo, para repetir um determinado código x vezes

for (var i = 0; 1 < 10; i = i + 1) {

  print(i);

}

Dessa forma, no console será apresentado:

0
1
2
3
4
5
6
7
8
9

No for, var i = x determina qual o valor inicial da variável i, dada por x; Já i < z informa que o código será executado enquanto i for menor que z; E por fim i = i + y informa quanto que i será incrementado a cada execução do código, determinado por y

Além de repetir um código determinadas vezes, podemos realizar funções mais complexas, como o código apresentado abaixo:

for (var substantivoNome of [
  'Esmagadora',
  'Lâmina',
  'Destruidora',
  'Grande Espada',
  'Faca',
  'Mão'
]) {
  for (var adjetivoNome of [
    'das Profundezas',
    'Furiosa',
    'Carmesim',
    'Mortal',
    'Flamejante',
    'dos Deuses'
  ]) {
      print(substantivoNome, adjetivoNome);
  } 
}

Este código pode ser usado para gerar nomes genéricos para itens em um jogo por exemplo, desta forma o console irá imprimir:

Esmagadora das Profundezas
Esmagadora Furiosa
Esmagadora Carmesim
Esmagadora Mortal
Esmagadora Flamejante
Esmagadora
Lâmina das Profundezas
Lâmina Furiosa
Lâmina Carmesim
Lâmina Mortal
Lâmina Flamejante
Lâmina dos Deuses
Destruidora das Profundezas
Destruidora Furiosa
Destruidora Carmesim
Destruidora Mortal
Destruidora Flamejante
Destruidora dos Deuses
Grande Espada das Profundezas
Grande Espada Furiosa
Grande Espada Carmesim
Grande Espada Mortal
Grande Espada Flamejante
Grande Espada dos Deuses
Faca das Profundezas
Faca Furiosa
Faca Carmesim
Faca Mortal
Faca Flamejante
Faca dos Deuses
Mão das Profundezas
Mão Furiosa
Mão Carmesim
Mão Mortal
Mão Flamejante
Mão dos Deuses

Acima, o primeiro laço for irá se repetir para cada elemento da array substantivoNome, e dentro deste mesmo laço for, há um outro laço que se repete para cada elemento da array adjetivoNome, que possui a função print(substantivoNome, adjetivoNome), dessa forma teremos cada combinação possível de nomes de acordo com nossa base de substantivos e adjetivos.

Uma das funções mais úteis, principalmente em um jogo, é o if, que realiza uma verificação booleana, tenhamos o código abaixo como exemplo:

var Banana = 2

if (Banana < 3) {
  print("Tem pouca banana, vou passar fome");
}
  else  {
    print("Tem banana suficiente");
}

Este código irá verificar se a variável Bananas é menor que 3, caso seja verdadeira a verificação, irá imprimir Tem pouca banana, vou passar fome, se for falsa a verificação, então irá imprimir Tem banana suficiente, no caso a variável Banana é 2, então no console será apresentado:

Tem pouca banana, vou passar fome

Temos também alguns operadores para verificação e lógica, como: ===: verifica se algo é igual à algo ===!: verifica se algo é diferente de algo <: verifica se algo é menor que algo >: verifica se algo é maior que algo >=: verifica se algo é maior ou igual à algo <=: verifica se algo é menor ou igual à algo

Além disso, existem formas mais fáceis de alterar variáveis: =+: soma valor à uma variável =-: subtrai valor de uma variável =/: divide valor de uma variável =*: multiplica valor de uma variável