<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aqua Asael Pelegon Semjasa </title>
    <description>The latest articles on DEV Community by Aqua Asael Pelegon Semjasa  (@aquael5).</description>
    <link>https://dev.to/aquael5</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1133767%2Fdfd7c7c7-69e7-4121-8e93-f567adfc5e9b.jpeg</url>
      <title>DEV Community: Aqua Asael Pelegon Semjasa </title>
      <link>https://dev.to/aquael5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aquael5"/>
    <language>en</language>
    <item>
      <title>O back-end Node.js via terminal Termux</title>
      <dc:creator>Aqua Asael Pelegon Semjasa </dc:creator>
      <pubDate>Wed, 17 Apr 2024 21:02:49 +0000</pubDate>
      <link>https://dev.to/aquael5/o-back-end-nodejs-via-terminal-termux-4n02</link>
      <guid>https://dev.to/aquael5/o-back-end-nodejs-via-terminal-termux-4n02</guid>
      <description>&lt;p&gt;No terminal Termux,cria-se um diretório. Então para que os arquivos: ( npm package-lock.json &amp;amp; npm package.json) sejam adicionados à pasta=diretório,no terminal iniciamos: cd + nome do diretório, logo digita-se: npm init, dá um enter,espera o projeto iniciar até que quando iniciado vem uma sequência de enters até digitarmos o segundo comando: (npm install express --no-bin-links) logo damos um enter. É quando o framework Express inicia o diretório,onde instalará as pastas e dependências, isso garante o acionamento correto dos arquivos(npm package-lock.json &amp;amp; npm package.json),que ambos,tem de ser acionado com duas logos vermelhas na pasta oficial do projeto recém criado via terminal Termux. Então abrimos a IDE Acode e vemos que os arquivos ( npm package-lock.json &amp;amp; npm package.json ) foram corretamente adicionados à pasta/diretório do novo projeto. Logo na pasta do projeto,e com uso da IDE Acode,na pasta do novo projeto, salvamos o arquivo (index.js) na pasta do projeto,mas tem um detalhe importante: temos de criar uma nova pasta e salvar na pasta 💼📁 nomeada como novo diretório do projeto,e nessa pasta,com a IDE Acode aberta,temos de ter um arquivo (index.html e outro style.css) para salvar dentro dessa segunda pasta que tem de ser salva dentro da pasta que é o recém projeto criado,e nesses dois arquivos,tem de está contidos já,os códigos HTML e CSS, também Javascript, adicionado corretamente na TAG (Script) no HTML. Detalhes importante: Dentro da API (index.js) a seguinte linha de código abaixo:&lt;/p&gt;

&lt;p&gt;app.use(express.static('AppWeb'));&lt;/p&gt;

&lt;p&gt;Tem de estar apontando para a segunda pasta,no caso: ('AppWeb') para que o Node.js possa bater no Express e ouvir o projeto no localhost:3000 como o exemplo abaixo:&lt;/p&gt;

&lt;p&gt;const express = require('express');&lt;/p&gt;

&lt;p&gt;const app =express();&lt;br&gt;
app.use(express.static('AppWeb'));&lt;/p&gt;

&lt;p&gt;app.listen(3000, () =&amp;gt; {&lt;br&gt;
  console.log('Aplicação no ar!');&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;Então feito isso em sequência, voltamos ao terminal Termux e digita-se o comando: (node index.js) em seguida damos um (enter), logo teremos o aviso: Aplicação no ar! Então pós isso, abrimos o navegador e digita-se: (localhost:3000) a aplicação web estará funcionando no modo estático. O back-end pode ser desenvolvido via celular, basta atenção, dedicação, paciência,o aprimoramento pessoal é garantido, nessa área. Desenvolvimento com React Js via terminal Termux, também é possível, faço desenvolvimento nesse tipo de tecnologia também,via celular. Este será um próximo assunto.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Aqua Asael Pelegon Semjasa&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;\AquaNavio_&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A python game</title>
      <dc:creator>Aqua Asael Pelegon Semjasa </dc:creator>
      <pubDate>Thu, 24 Aug 2023 12:04:20 +0000</pubDate>
      <link>https://dev.to/aquael5/a-python-game-4c41</link>
      <guid>https://dev.to/aquael5/a-python-game-4c41</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjs1ilp8ynj72json5oy3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjs1ilp8ynj72json5oy3.jpeg" alt=" " width="700" height="438"&gt;&lt;/a&gt;&lt;br&gt;
import pygame&lt;br&gt;
import os&lt;br&gt;
import random&lt;/p&gt;

&lt;p&gt;TELA_LARGURA = 500&lt;br&gt;
TELA_ALTURA = 800&lt;/p&gt;

&lt;p&gt;IMAGEM_CANO = pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'pipe.png')))&lt;br&gt;
IMAGEM_CHAO = pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'base.png')))&lt;br&gt;
IMAGEM_BACKGROUND = pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'bg.png')))&lt;br&gt;
IMAGENS_PASSARO = [&lt;br&gt;
    pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'bird1.png'))),&lt;br&gt;
    pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'bird2.png'))),&lt;br&gt;
    pygame.transform.scale2x(pygame.image.load(os.path.join('imgs', 'bird3.png'))),&lt;br&gt;
]&lt;/p&gt;

&lt;p&gt;pygame.font.init()&lt;br&gt;
FONTE_PONTOS = pygame.font.SysFont('arial', 50)&lt;/p&gt;

&lt;p&gt;class Passaro:&lt;br&gt;
    IMGS = IMAGENS_PASSARO&lt;br&gt;
    # animações da rotação&lt;br&gt;
    ROTACAO_MAXIMA = 25&lt;br&gt;
    VELOCIDADE_ROTACAO = 20&lt;br&gt;
    TEMPO_ANIMACAO = 5&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, x, y):
    self.x = x
    self.y = y
    self.angulo = 0
    self.velocidade = 0
    self.altura = self.y
    self.tempo = 0
    self.contagem_imagem = 0
    self.imagem = self.IMGS[0]

def pular(self):
    self.velocidade = -10.5
    self.tempo = 0
    self.altura = self.y

def mover(self):
    # calcular o deslocamento
    self.tempo += 1
    deslocamento = 1.5 * (self.tempo**2) + self.velocidade * self.tempo

    # restringir o deslocamento
    if deslocamento &amp;gt; 16:
        deslocamento = 16
    elif deslocamento &amp;lt; 0:
        deslocamento -= 2

    self.y += deslocamento

    # o angulo do passaro
    if deslocamento &amp;lt; 0 or self.y &amp;lt; (self.altura + 50):
        if self.angulo &amp;lt; self.ROTACAO_MAXIMA:
            self.angulo = self.ROTACAO_MAXIMA
    else:
        if self.angulo &amp;gt; -90:
            self.angulo -= self.VELOCIDADE_ROTACAO

def desenhar(self, tela):
    # definir qual imagem do passaro vai usar
    self.contagem_imagem += 1

    if self.contagem_imagem &amp;lt; self.TEMPO_ANIMACAO:
        self.imagem = self.IMGS[0]
    elif self.contagem_imagem &amp;lt; self.TEMPO_ANIMACAO*2:
        self.imagem = self.IMGS[1]
    elif self.contagem_imagem &amp;lt; self.TEMPO_ANIMACAO*3:
        self.imagem = self.IMGS[2]
    elif self.contagem_imagem &amp;lt; self.TEMPO_ANIMACAO*4:
        self.imagem = self.IMGS[1]
    elif self.contagem_imagem &amp;gt;= self.TEMPO_ANIMACAO*4 + 1:
        self.imagem = self.IMGS[0]
        self.contagem_imagem = 0


    # se o passaro tiver caindo eu não vou bater asa
    if self.angulo &amp;lt;= -80:
        self.imagem = self.IMGS[1]
        self.contagem_imagem = self.TEMPO_ANIMACAO*2

    # desenhar a imagem
    imagem_rotacionada = pygame.transform.rotate(self.imagem, self.angulo)
    pos_centro_imagem = self.imagem.get_rect(topleft=(self.x, self.y)).center
    retangulo = imagem_rotacionada.get_rect(center=pos_centro_imagem)
    tela.blit(imagem_rotacionada, retangulo.topleft)

def get_mask(self):
    return pygame.mask.from_surface(self.imagem)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;class Cano:&lt;br&gt;
    DISTANCIA = 200&lt;br&gt;
    VELOCIDADE = 5&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, x):
    self.x = x
    self.altura = 0
    self.pos_topo = 0
    self.pos_base = 0
    self.CANO_TOPO = pygame.transform.flip(IMAGEM_CANO, False, True)
    self.CANO_BASE = IMAGEM_CANO
    self.passou = False
    self.definir_altura()

def definir_altura(self):
    self.altura = random.randrange(50, 450)
    self.pos_topo = self.altura - self.CANO_TOPO.get_height()
    self.pos_base = self.altura + self.DISTANCIA

def mover(self):
    self.x -= self.VELOCIDADE

def desenhar(self, tela):
    tela.blit(self.CANO_TOPO, (self.x, self.pos_topo))
    tela.blit(self.CANO_BASE, (self.x, self.pos_base))

def colidir(self, passaro):
    passaro_mask = passaro.get_mask()
    topo_mask = pygame.mask.from_surface(self.CANO_TOPO)
    base_mask = pygame.mask.from_surface(self.CANO_BASE)

    distancia_topo = (self.x - passaro.x, self.pos_topo - round(passaro.y))
    distancia_base = (self.x - passaro.x, self.pos_base - round(passaro.y))

    topo_ponto = passaro_mask.overlap(topo_mask, distancia_topo)
    base_ponto = passaro_mask.overlap(base_mask, distancia_base)

    if base_ponto or topo_ponto:
        return True
    else:
        return False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;class Chao:&lt;br&gt;
    VELOCIDADE = 5&lt;br&gt;
    LARGURA = IMAGEM_CHAO.get_width()&lt;br&gt;
    IMAGEM = IMAGEM_CHAO&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def __init__(self, y):
    self.y = y
    self.x1 = 0
    self.x2 = self.LARGURA

def mover(self):
    self.x1 -= self.VELOCIDADE
    self.x2 -= self.VELOCIDADE

    if self.x1 + self.LARGURA &amp;lt; 0:
        self.x1 = self.x2 + self.LARGURA
    if self.x2 + self.LARGURA &amp;lt; 0:
        self.x2 = self.x1 + self.LARGURA

def desenhar(self, tela):
    tela.blit(self.IMAGEM, (self.x1, self.y))
    tela.blit(self.IMAGEM, (self.x2, self.y))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;def desenhar_tela(tela, passaros, canos, chao, pontos):&lt;br&gt;
    tela.blit(IMAGEM_BACKGROUND, (0, 0))&lt;br&gt;
    for passaro in passaros:&lt;br&gt;
        passaro.desenhar(tela)&lt;br&gt;
    for cano in canos:&lt;br&gt;
        cano.desenhar(tela)&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;texto = FONTE_PONTOS.render(f"Pontuação: {pontos}", 1, (255, 255, 255))
tela.blit(texto, (TELA_LARGURA - 10 - texto.get_width(), 10))
chao.desenhar(tela)
pygame.display.update()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;def main():&lt;br&gt;
    passaros = [Passaro(230, 350)]&lt;br&gt;
    chao = Chao(730)&lt;br&gt;
    canos = [Cano(700)]&lt;br&gt;
    tela = pygame.display.set_mode((TELA_LARGURA, TELA_ALTURA))&lt;br&gt;
    pontos = 0&lt;br&gt;
    relogio = pygame.time.Clock()&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rodando = True
while rodando:
    relogio.tick(30)

    # interação com o usuário
    for evento in pygame.event.get():
        if evento.type == pygame.QUIT:
            rodando = False
            pygame.quit()
            quit()
        if evento.type == pygame.KEYDOWN:
            if evento.key == pygame.K_SPACE:
                for passaro in passaros:
                    passaro.pular()

    # mover as coisas
    for passaro in passaros:
        passaro.mover()
    chao.mover()

    adicionar_cano = False
    remover_canos = []
    for cano in canos:
        for i, passaro in enumerate(passaros):
            if cano.colidir(passaro):
                passaros.pop(i)
            if not cano.passou and passaro.x &amp;gt; cano.x:
                cano.passou = True
                adicionar_cano = True
        cano.mover()
        if cano.x + cano.CANO_TOPO.get_width() &amp;lt; 0:
            remover_canos.append(cano)

    if adicionar_cano:
        pontos += 1
        canos.append(Cano(600))
    for cano in remover_canos:
        canos.remove(cano)

    for i, passaro in enumerate(passaros):
        if (passaro.y + passaro.imagem.get_height()) &amp;gt; chao.y or passaro.y &amp;lt; 0:
            passaros.pop(i)

    desenhar_tela(tela, passaros, canos, chao, pontos)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;':&lt;br&gt;
    main()&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Relógio digital.</title>
      <dc:creator>Aqua Asael Pelegon Semjasa </dc:creator>
      <pubDate>Mon, 07 Aug 2023 13:19:21 +0000</pubDate>
      <link>https://dev.to/aquael5/relogio-digital-4fda</link>
      <guid>https://dev.to/aquael5/relogio-digital-4fda</guid>
      <description>&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Aqualog-Asael/embed/xxQeqjq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>codepen</category>
    </item>
  </channel>
</rss>
