Lambda-snake.kt - Snake Game Implementation for Web using Kotlin programming language compiled for Javascript

Overview

image

Projeto da disciplina de Linguagem de Programação Funcional 2021.1 (jan/2022)

image GitHub issues GitHub forks GitHub stars

📄 Descrição

Implementação do Jogo Snake para Web utilizando a linguagem de programação Kotlin compilada para Javascript e a API de Canvas do navegador O jogo também conta com Placar salvo na nuvem onde os jogadores competem entre si.

♟️ Lógica e estrutura do código

O jogo consiste em um tabuleiro imutável iterado de tempo em tempo onde a peça do jogador sempre é movida para frente atualizando o tabuleiro recursivamente, ao entrar em contato com outras peças especiais como Frutas ou o próprio corpo do jogador são executadas ações especificas como adicionar pontos ou chamar a tela de game-over, o próximo estado do tabuleiro é sempre baseada no do estado anterior, porém o Input do usuário é impuro logo o processo não é deterministico.

🎮 Link do jogo

https://lambda-snake.netlify.app/

🚀 Tecnologias

Aqui estão as tecnologias usadas neste projeto.

  • Frontend: Kotlin/JS
  • Ferramenta de Build: Gradle e Webpack
  • Hospedagem: Netilify
  • Funções Serverless: Netilify Functions com Javascript
  • Comunicação com servidor: Api Rest

🦾 Serviços usados

✔️ Status do projeto

Versão 1.0 OK

🖥️ Instalando e compilando o projeto do Jogo

  • Clone o projeto
git clone https://github.com/Quote023/lambda-snake.kt 
  • Para rodar o servidor de desenvolvimento com HOT-RELOAD use o comando
./gradlew run -t
  • Para gerar uma build de produção otimizada rode o comando
./gradlew build

será criada uma pasta /build/distributions/ com os arquivos estáticos da aplicação, esses arquivos então podem ser servidos em qualquer servidor HTTP

🖱️ Rodando o projeto através do GITPOD

  • Acesse o projeto no GITPOD clicando aqui
  • Com o Terminal na raiz do projeto execute o comando
./gradlew browserProductionRun

image

  • No terminal aparecerá a mensagem que o projeto está rodando na porta 8080 e no canto inferior direito da tela aparecerá uma mensagem confirmando que o serviço está disponível. Clique em Make Public para torná-lo acessivel:

image

  • Para acessar o serviço vá no menu Remote Explorer como indicado na imagem e selecione o botão Open Browser na Porta 8080:

image

  • Você será levado para a seguinte aba e agora poderá jogar normalmente:

image

😎 Contribuidores

Foto Alexandre Candido Souza
Alexandre Candido Souza
Foto Fernanda Barbosa de Pinho
Fernanda Barbosa de Pinho
Foto José Alberto Moura
José Alberto Moura
Foto Sarah Araujo Medeiros
Sarah Araujo Medeiros

📝 Licença

Esse projeto está sob licença. Veja o arquivo LICENÇA para mais detalhes.

You might also like...
Netflix inspired OTT Home Screen, Contains implementation in Reactjs, Kotlin React Wrapper, Jetpack Compose Web

Netflix-Clone-React Practising React by building Netflix Clone Requirements TMDB api key : Add TMDB API key to AppApi.kt Learning Resourcce Build Netf

🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.
🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.

🇨🇳 中文 / 🇯🇵 日本語 / 🇬🇧 English 🍼 Debug Bottle An Android debug / develop tools written using Kotlin language. All the features in Debug bottle are

FaceTimeClone app that implements Coroutines , mvvm architecture , clean architecture , navigation component , hilt , etc.... using kotlin language
FaceTimeClone app that implements Coroutines , mvvm architecture , clean architecture , navigation component , hilt , etc.... using kotlin language

This repository contains a FaceTimeClone app that implements Coroutines , mvvm architecture , clean architecture , navigation component , hilt , etc.... using kotlin language

Android utilities for easier and faster Kotlin programming.
Android utilities for easier and faster Kotlin programming.

Android utilities for easier and faster Kotlin programming. Download Gradle compile 'com.costular:kotlin-utils:0.1' How to use It depends on utilities

Exercises for Functional Programming learning in Kotlin with Arrow

Exercises for Functional Programming in Kotlin with Arrow-kt Exercises and practice code for Functional Programming learning in Kotlin with Arrow Requ

A template that utilizes both Scala and Kotlin because why not (And also because I endorse programming hell)

Fabric-Scala-Kotlin-template A template that utilizes both Scala and Kotlin because why not (And also because I endorse programming hell) I don't care

Clean Code and Reactive Programming PlayGround for Bangkit 2021

Clean Code and Reactive Programming PlayGround for Bangkit 2021 Hello! This repo contains the IntelliJ project that I use to present my talk, "Clean A

A pair of applications provide a direct means of integrating with one another via application programming interfaces (APIs)

What is a native integration? It's when a pair of applications provide a direct means of integrating with one another via application programming interfaces (APIs). Once integrated, data can flow between the apps and become more readily available to your employees.

A thought experiment on architecture, object-oriented programming, and composability.

Journal3 There's barely anything special about the features that Journal3 is offering, it's literally yet another journaling application. What is spec

Owner
Alex Candido
🔭 Computer engineering undergraduate
Alex Candido
Simple Design for Kotlin bridge with Javascript. Also can get javascript console.log.

SDBridgeJava is here. If your h5 partner confused about how to deal with iOS and Android. This Demo maybe help. bilibili video introduction is here. Y

null 14 Dec 19, 2022
Link-converter - A web service that converts links between web url and deeplink for mobile and web applications

Deep Link Converter Linkleri, mobil ve web uygulamaları için web url ile deeplin

Muhammed Eren DURSUN 2 Apr 9, 2022
Concurrency-programming - Homework for the course of Concurrency Programming, ITMO CT, Autumn 2020

Homework for the course of Concurrency Programming, ITMO CT, Autumn 2020 Выполни

Grigoriy Khlytin 2 Jan 23, 2022
Ivy FRP is a Functional Reactive Programming framework for declarative-style programming for Android

FRP (Functional Reactive Programming) framework for declarative-style programming for Andorid. :rocket: (compatible with Jetpack Compose)

null 8 Nov 24, 2022
Kotlin/JVM Lambda example

kotlin-lambda-example-jvm Kotlin Lambda example on JVM contains four CDK stacks of Kotlin Lambda on JVM: JVM on x86, JVM on Arm64, JVM with C1 compile

Elena van Engelen - Maslova 2 Nov 8, 2022
An example for who are all going to start learning Kotlin programming language to develop Android application.

Kotlin Example Here is an example for who are all going to start learning Kotlin programming language to develop Android application. First check this

Prabhakar Thota 56 Sep 16, 2022
JavaScript evaluation from kotlin common code for android & iOS

Mobile Kotlin javascript This is a Kotlin MultiPlatform library that allows you to run JavaScript code from common Kotlin code Table of Contents Featu

IceRock Development 14 Aug 29, 2022
🚀 Native iOS- and Android- Apps with JavaScript

Titanium Welcome to the Titanium open source project. Titanium provides a mature platform for developers to build completely native cross-platform mob

Team Appcelerator 2.6k Jan 4, 2023
Uproot-JS - Extract JavaScript files from burp suite project with ease

Extract JavaScript files from burp suite project with ease. Disclaimer I am not

Dexter0us 50 Aug 8, 2022
LifecycleMvp 1.2 0.0 Kotlin is MVP architecture implementation with Android Architecture Components and Kotlin language features

MinSDK 14+ Download Gradle Add to project level build.gradle allprojects { repositories { ... maven { url 'https://jitpack.io' }

Robert 20 Nov 9, 2021