O PROJETO DE IMPLEMENTAÇÃO DO JOGO DA VELHA
Por: GidaCosta • 5/11/2021 • Trabalho acadêmico • 3.196 Palavras (13 Páginas) • 174 Visualizações
IES – Instituto de Ensino Superior da Grande Florianópolis
Curso: Ciência da Computação
Atividade Prática Disciplinar – APS
Série: 3 - Período: 1º Semestre - Turma: CC3P01-3201
PROJETO DE IMPLEMENTAÇÃO
DO JOGO DA VELHA
Programação Orientada a Objetos e Banco de Dados
26 de Maio de 2021
SUMÁRIO
SUMÁRIO 2
1. Introdução 3
2. Objetivos 3
3. Ferramentas e Linguagem de Programação 3
4. Testes automatizados: 4
5. Banco de Dados 4
6. Conclusão 8
7. Referencias 8
1. Introdução
O projeto apresenta a implementação de um Jogo da Velha, que é um jogo de tabuleiro para dois competidores e foi elaborado para atender os requisitos da atividade prática supervisionada do 3º semestre de 2021. É desenvolvido em Java orientado a Objetos com integração a banco de dados. O descritivo deste projeto é apresentado em 4 (quarto) partes, são elas: O Objetivos; Ferramenta e linguagens de programação; Testes automatizados; Banco de Dados - criação e conexão com banco de dados e fornecimento de consultas SQL.
2. Objetivos
O jogo da velha é um jogo de tabuleiro competitivo, ou seja, deve considerar dois jogadores. No modo básico do jogo, que é a proposta deste projeto, participam duas pessoas, que jogam alternadamente, preenchendo cada um dos espaços vazios. Cada participante deve usar um símbolo (X ou O). Vence o jogador que conseguir formar primeiro uma linha com três símbolos iguais, seja ela na horizontal, vertical ou diagonal. O projeto considera um banco de dados que armazena as informações de cada jogada considerando possibilidade de vitória, derrota e empate.
3. Ferramentas e Linguagem de Programação
O jogo foi desenvolvido em Java orientado a objetos, utilizado a IDE Eclipse para implementação das Classes, objetos, métodos. Segue descrição das classes e suas funcionalidades:
Class Tabuleiro: esta classe gera o tabuleiro contendo 9 objetos da classe Bloco. Estas posições poderão receber os valores X e/ou Bolinha que são os símbolos utilizados para preenchimento do tabuleiro. O método obterVencedor verifica as condições para obter o símbolo e o jogador para retornar o resultado obtido após satisfação da regra do jogo que seria preenche primeiro uma linha com o seu respectivo simbolo, caso não haja mais essa possibilidade, o jogo retorna “Deu velha”.
Class Jogador: Contém os atributos e métodos do jogador possuindo também dentro da mesma o método “salvaBanco” que insere após a criação de um objeto o nome do jogador no banco de dados.
Class Bloco: Contém um atributo do tipo Jogador, para se vincular ao mesmo a cada jogada.
Class Simbolo: É uma instância do tipo enum que criou valor fixo e pré-definidos X e Bolinha.
Class JogoDaJelha: esta classe herda todos os atributos e métodos da Class Tabuleiro e cria o método que irá obter as jogadas e retornar o vencedor. Salva no banco de dados o nome dos jogadores e o vencedor.
4. Testes automatizados:
Criada classe para testes automatizados com os métodos e atributos para os casos de uso do jogo proposto.
Class testeJogoDaVelha: classe para efetuar os testes automatizados. Possui métodos para testar cada jogada e retornar qual jogador venceu ou se a jogada deu velha. Ao final verifica o numero de partidas disputadas e retorna qual jogador mais venceu e quantas vezes deu velha.
5. Banco de Dados
O sistema gerenciador de banco de dados utilizado neste projeto é o PostgreSQL. Os Requisitos utilizados no banco de dados foram implementar os comandos de criação das tabelas bem como as consultas SQL para responder as seguintes questões:
- Número de jogadores cadastrados;
- Quantas partidas foram jogadas;
- Quantas vitórias, empates e derrotas um determinado jogados possui?
- Todos os jogadores ordenados pelo numero de vitórias;
- Todos os adversários de um determinado jogador e o numero de vezes que se enfrentaram.
Na ferramenta de desenvolvimento foi construída:
Class Banco de Dados: cria todos os atributos e métodos para conectar com o Banco de dados e efetuar as consultas SQL.
Querys SQL:
//Número de jogadores cadastrados:
SELECT
COUNT(*)
FROM
aps.jogador;
//Quantas partidas foram jogadas:
SELECT
COUNT(*)
FROM
aps.partida;
//Quantas vitórias, empates e derrotas um determinado jogador possui:
SELECT
nm_jogador nome
,COUNT(
CASE WHEN
(id_jogador = partida.id_vencedor)
THEN
id_jogador
ELSE
NULL
END
) vencidas
,COUNT(
CASE WHEN
(partida.id_vencedor is NULL)
THEN
id_jogador
ELSE
NULL
END
) empate
,COUNT(
CASE WHEN
...