Coder Social home page Coder Social logo

boliche's Introduction

Hey, I'm Elton Fonseca! 👋

  • 👨🏻‍💻 Senior Software Engineer at Petlove.
  • 🌱 Learning more about Microsservices, Cloud Native and Software Engineering.
  • 💬 Ask me about Docker, AWS Cloud, Software Architecture.
  • 📚 I like to write about technology on Medium.
  • 🇧🇷 I'm from Minas Gerais, Brazil.
  • ✝️ Follower of Jesus Christ

🤙 Contact me

LinkedIn Medium

Elton's GitHub Stats

Top Langs

boliche's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

boliche's Issues

Gerar as Views do Sistema de Login

Gerar as views do sistema de login

O sistema de login deve ser personalizável, com isso deve-se gerar as views customizadas pelo Devise.

Integrando Rails + Docker

Integração do framework Rails + Docker

O projeto será desenvolvido em Rails utilizando Docker como ferramenta de desenvolvimento, para facilitar a configuração dos ambientes de desenvolvimento.

Criar controlador Match

Criar controlador Match

Criar o controller Match com as ações; index, new, destroy, create

Criar a Jogada do Usuário e dos BOTs

Criar a Jogada do Usuário e dos BOTs

Criar uma classe Jogada, onde o jogador e os BOTs farão um lançamento da bola de boliche, contabilizando cada pino derrubado como sendo a pontuação. Nesta classe os atributos deverão contabilizar os pinos derrubados e os pinos restantes.

Lançamento

No momento do lançamento da bola, deve-se gerar, conforme a dificuldade, um número aleatório de pinos derrubados que sejam menores ou igual ao número de pinos restantes.

Criar classe Controladora

Criar a classe Controladora

Essa classe será responsavel por realizar o intermédio entre a Visão e os Modelos, onde nela será instanciada os objetos referentes aos modelos e a view.

Criar uma classe que represente o Frame

Classe de Frame

O Frame é composto por 2 jogadas que cada jogador poderá realizar. Essas jogadas somadas terão como resultado os pinos derrubados que transformarão em uma pontuação. Se a quantidade de pinos derrubados na primeira jogada for 10, teremos um Strike e se a quantidade de pinos derrubados na segunda jogada somados com os pinos derrubados da primeira for igual a 10, teremos um Spare. Se não for nem Strike e nem Spare, somente é somados os pinos derrubados e atualizado na pontuação do frame.

Criar perfis de Jogadores

Criar perfis de Jogadores

Inicialmente criar dois tipos de perfis de Jogadores, uma será o usuário e a outra será a máquina ou BOT. O perfil deve contém os seguintes atributos:

  • Nome
  • Idade
  • Quantidade de Jogos Jogados
  • Score

O BOT deverá variar conforme a dificuldade escolhida pelo usuário, sendo eles:

Muito Fácil

  • BOT01
  • BOT02
  • BOT03

Fácil

  • BOT04
  • BOT05
  • BOT06

Difícil

  • BOT07
  • BOT08
  • BOT09

Muito Difícil

  • BOT10
  • BOT11
  • BOT12

Cada um, também com os atributos citados acima.

Desenvolvimento da classe partida

Alterações na classe partida

Criação de métodos para a definição de dificuldade, criação de jogadores (jogador real e bot), jogadas por jogadores e calculo de bonus na pontuação

Alteração na classe jogadores

Alteração na classe jogadores

Deve ser inserido na classe jogadores uma flag que irá determinar se o jogador é um bot ou um jogador real. A flag será útil para calcular os pinos derrubados para o jogador e para o BOT, variando conforme a dificuldade.

Implementa classe placar

Placar

A classe placar deverá conter 10 frames.
O placar irá apresentar informações a cerca dos frames de cada jogador contidas nos frames

Implementar rotina de login de usuários

  • Criação da rotina de cadastro de usuários utilizando a gem devise
  • Usuários devem ter Nome, idade, email, senha, tipo de usuario (bot ou player) e quantidade de jogos já jogados.
  • Criação do arquivo seeds.rb para popular a tabela de usuários com os bots

Criar a classe Partida

Criar a classe Partida

Nesta classe deverá ser implementada toda lógica principal do jogo, onde cada partida terá especificações definidas pelo jogador, como nível de dificuldade.

Aqui se define como será atribuído o bônus em cada frame quando há um Strike ou Spare, utilizando uma função bonus().

Os níveis de dificuldade são Muito fácil, Fácil, Médio, Difícil e Muito Difícil, onde cada dificuldade terá 3 BOTs que podem assumir aleatoriamente para jogar. Cada BOT poderá assumir essa dificuldade onde torna a experiência do jogador conforme os níveis de dificuldade.

Cada partida contém 10 frames por jogador, as jogadas máximas de cada jogador podem ser 12, sendo que no último frame teremos +2 jogadas se for realizado um Strike.

Criar a classe View

Criar a classe View

Essa classe será responsável por exibir todas as informações do jogo, bem como o placar, status do jogo.

Testar o método lancarBola da classe Jogada

Testar o método lancarBola da classe Jogada, a fim de conseguir a maior cobertura de testes que estejam de acordo com a especificação:

  • Gerar número aleatório de 0 a 10 para a primeira jogada
  • Gerar número aleatório de 0 até a quantidade de pinos restantes da primeira jogada.
  • Se for passado um número maior que 10 ou menor que 0, deverá lançar uma exceção.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.