Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

BATALHA NAVAL
um jogo feito a partir da lógica digital
Freitas, Gabriel; Neves, João Victor; Ortega, LetíciaFreitas, Gabriel; Neves, João Victor; Ortega, Letícia
UNIFESP - 2023
Apresentação
 O presente trabalho tem como fundamento apresentar
de forma prática e detalhada como os circuitos digitais e as
portas lógicas podem ser manipulados para o
desenvolvimento de um jogo. Ao mergulharmos no
fascinante mundo da tecnologia, descobriremos como é
possível simular um jogo de batalha naval utilizando apenas
portas lógicas. Durante esse projeto, seremos desafiados a
explorar os fundamentos da lógica digital, compreendendo
como portas lógicas se combinam para formar circuitos mais
complexos. Através de um processo passo a passo,
exploraremos como as aplicações das regras e dinâmica do
jogo podem ser estabelecidas a partir da manipulação de
portas lógicas. Ao finalizar essa experiência, teremos uma
compreensão mais profunda dos princípios lógicos
envolvidos no processo de design de circuitos e estrutura de
jogos digitais. Ao manipular as portas lógicas e construir
nosso próprio jogo de batalha naval, estaremos adquirindo
habilidades práticas e conhecimentos valiosos para entender
a lógica por trás de um dos jogos mais conhecidos de todos os
tempos.
 Prepare-se para se aventurar em um mundo cheio de
possibilidades e desafios estimulantes. Ao longo desta
apostila, você será guiado passo a passo, fornecendo a base
necessária para realizar esse projeto emocionante.
 Embarque conosco nessa jornada educativa e prática.
Tenha em mãos sua curiosidade e vontade de aprender, pois
juntos iremos explorar os intricados caminhos das portas
lógicas e desvendar o funcionamento fascinante dos circuitos
digitais. 
 
Sobre a batalha naval
 O jogo de batalha naval é um jogo de
estratégia em que dois jogadores
competem para afundar a frota do
oponente. Cada jogador possui uma
grade retangular, geralmente de
tamanho 10x10, na qual eles posicionam
seus navios.
 Antes de começar o jogo, os participantes colocam seus
navios na grade de forma estratégica, sem que o oponente
saiba a localização exata de cada um. Os navios assumem
diferentes tamanhos, como um porta-aviões (geralmente
ocupando 5 células), um encouraçado (ocupando 4 células),
um submarino (3 células), um contratorpedeiro (3 células) e
um barco de patrulha (2 células). 
 Uma vez que os navios estão posicionados, os jogadores
começam a se revezar para atacar. Cada jogador escolhe
uma célula da grade do oponente para atacar, dizendo as
coordenadas correspondentes. Se a célula estiver vazia, o
ataque resulta em um "tiro na água". No entanto, se o
ataque acertar uma parte de um navio inimigo, o jogador
informa ao oponente que um navio foi atingido.
 O objetivo é afundar completamente
todos os navios do oponente. Isso é feito
atacando as células ao redor das partes
já atingidas de um navio, a fim de
descobrir sua orientação e posição exata.
O jogador que conseguir afundar todos
os navios do oponente primeiro é
declarado vencedor.
Mas então, como podemos
implementar toda esta ideia e
mecânica de jogo a circuitos
digitais?
ATENÇÃO!
 Antes de prosseguirmos com a
explicação da lógica implementada
para se desenvolver o circuito, é
importante mencionar que os
fundamentos BÁSICOS de circuitos
digitais e de portas lógicas NÃO serão
explicitamente aprofundados. O
funcionamento das portas lógicas
serão brevemente comentadas,
porém, sem muita discussão.
 Portanto se você, leitor, ainda não
domina os conceitos básicos de portas
lógicas, como sobre o que são as
portas AND, OR e IF, além de ideias
primordiais sobre circuitos
combinacionais e sequenciais, pare
imediatamente!
Literatura recomendada
MAS NÃO SE DESESPERE! NÓS TEMOS A
SOLUÇÃO PARA OS SEUS PROBLEMAS!
Pensando em você, que pretende se aprofundar
nos conceitos fundamentais de circuitos
digitais e não sabe por onde começar,
separamos algumas referências na literatura e
em plataformas digitais que possam lhe
auxiliar no aprendizado pleno deste campo de
estudo!
Livro: Sistemas Digitais -
Circuitos Combinacionais e
Sequenciais, por Francisco
Gabriel Capuano, Editora
Saraiva, 2014.
Playlist: Aulas de Circuitos
Digitais pelo youtube,
apresentadas por Prof. Fábio
Cappabianco, Ph. D. 
(ACESSE ATRAVÉS DO QRCODE
AO LADO) QR Code com o link das aulas no youtube
Figura: Livro Sistemas Digitais - Circuitos
Combinacionais e Sequencionais
Nós recomendamos, sobretudo,
que ao se aprofundar nos
ensinamentos desta apostila,
você acompanhe paralelamente
alguma das referências
mencionadas! Torne seu estudo
mais dinâmico e enriquecido
desta forma.
Voltando ao assunto...
Como podemos implementar
a ideia e mecânica de um
jogo de batalha naval a
circuitos digitais?
 Adaptando a ideia de grade aos circuitos digitais, cada
participante terá acesso a uma mesma matriz de botões 4x4,
que permitirá o posicionamento dos navios. Cada jogador terá
a sua própria vez para fazer a jogada, controle este que é feito
pelo switch correspondente de cada participante. O jogador 1,
quando for estabelecer as posições de seus próprios navios
deve, em primeiro lugar, habilitar o switch "Escolha Jogador 1",
para conseguir registrar de fato que esta será sua disposição
de embarcações. Ao finalizar a diagramação de suas posições, o
jogador 1 deve desabilitar o switch "Escolha Jogador 1". Assim
que o jogador 1 finaliza suas preparações, o jogador 2 deve
prosseguir em habilitar o seu switch "Escolha Jogador 2" para
conseguir estabelecer as posições de suas embarcações desta
vez. Todo o processo mencionado para o jogador 1 se repete
para o jogador 2. 
 Para que os jogadores consigam enxergar as posições que
de fato estão colocando suas peças, são implementadas duas
matrizes 4x4 de LED's. Uma matriz corresponde às posições
assumidas pelo jogador 1 naquela rodada, enquanto que a
outra assume as posições feitas pelo jogador 2. A matriz à
esquerda corresponde às posições adotadas pelo jogador 1
enquanto que a da direita correspondem ao do jogador 2. 
Interface do jogo
 No momento da montagem e organização de suas peças, o
participante deve implementar seis peças no total, de três tipos.
Cada jogador deve posicionar, em ordem: uma peça "Porta-avião",
que ocupa 4 células em linha na matriz de LED's na cor azul; uma
peça "Encouraçado", que ocupa 2 células na matriz de LED's na cor
verde; e quatro peças de "Submarino", que ocupam apenas uma
célula da matriz de LED's na cor vermelha. Cada botão na matriz de
botões à esquerda, ao ser pressionado, corresponde a um LED
aceso na matriz de LED's que ocupe a sua mesma posição. Ou seja,
se pressiono o botão 01 da imagem abaixo, o LED L1 será aceso.
Para estabelecer a peça "Porta-avião", por exemplo, foram 
 pressionados os botões 04, 08, 12 e 16 para que os LED's L4, L8, L12
E L16 fossem acesos.
 
 Assim que todas as peças são posicionadas e o jogador desliga o
switch de escolha correspondente à sua jogada, todos os LED's se
apagam, escondendo a resposta referente à posição de seus
navios. 
 Estabelecidas as peças por parte de ambos os jogadores, a
partida pode então de fato começar. 
 Para que cada participante possa fazer os ataques ao arsenal de
seu competidor, são implementados outras quatro novas matrizes
4x4. Duas matrizes são feitas de botões e pertencem
individualmente uma para cada jogador, enquanto que as outras
duas matrizes são compostas por LED's e também correspondem
uma a cada jogador. 
Interface do jogo
 As duas matrizes de botões serão utilizadas para cada jogador
executar os seus ataques às embarcações do oponente,
selecionando um botão em alguma posição da matriz que acredite
ter peças de embarcação. Já as duas matrizes de LED's terão suas
células individualmente acesas caso o jogador selecione
corretamente uma das posições na matriz que corresponde a uma
posição ocupada por uma embarcação no diagrama de posições de
seu competidor. Caso o jogador erre, o LED referente ao botão
selecionado permanece apagado.Os jogadores saberão de quem é a vez de fazer o ataque através
dos LED's "jogador 1" e "jogador 2". Caso o LED "jogador 1" esteja
aceso, é porque é a vez do Jogador 1 fazer sua jogada e vice a versa.
As jogadas de ambos os participantes serão feitas de forma
intercalada, conforme indicarão os LED's "jogador 1" e "jogador 2",
independentemente se houve um acerto ou erro. Caso um dos
participantes pressione um botão para fazer sua jogada e o LED que
corresponde à vez da jogada não mude para a vez do outro
competidor, isso indica que aquela posição já foi selecionada
anteriormente e deve-se escolher uma nova posição que ainda não
foi computada, seja ela errada (LED apagado) ou correta (LED
aceso), para assim passar a vez para o próximo jogador. 
 
 
Interface do jogo
 Assim, o jogo continua até que um dos participantes consiga
bombardear todas as peças de seu oponente, acendendo todos
os LED's referentes às posições originalmente propostas pelo
seu adversário. Assim que todas as peças do oponente são
destruídas, um novo LED apontando a vitória do jogador
correspondente será aceso, seja o LED "VITORIA JOGADOR 1" ou
"VITORIA JOGADOR 2".
 Ao final da partida, os participantes podem acionar o botão
"Reset" para iniciarem um novo game.
 
 
 
Interface do jogo
Vitória jogador 1
Vitória jogador 2
 A interface completa do jogo que acabamos de explicar pode
ser vista nas imagens abaixo, em que uma está sem os fios de
conexão visíveis enquanto que a outra consta com os fios.
 
 
 
 Sabemos que são muitos componentes e uma série de
informações novas, mas não se preocupe! No tópico a seguir,
explicaremos cada um dos componentes utilizados na projeção
da interface do jogo que vemos acima. 
 Não se esqueça de recorrer ao apoio literário que
referenciamos mais cedo, caso surjam dúvidas!
Interface do jogo
Componentes
 Nesta seção, introduziremos os componentes
utilizados em "boxes" ao longo do circuito utilizado
para o projeto de batalha naval até então discutido.
Dentre estes componentes, temos:
 Allow Gate
 Contador
 Escolha
 Trava
 Seletores
 Memória
 Muda
1.
2.
3.
4.
5.
6.
7.
Componentes
1.Allow Gate
 Composto por pinos e botões associados a portas
ANDs e um sistema de memória, em que o jogador
apertará algum dos pinos para saber se acertou a
posição da embarcação do adversário.
 Quando o jogador seleciona um dos pinos esse
valor é armazenado em um Flip Flop D e em
seguida, a partir da escolha da posição das
embarcações do adversário que foram salvas na
Memória e enviadas ao Allow Gate, esse jogador
obtém a resposta se acertou ou não um dos pontos
que o adversário escolheu.
*Consultar Aula 16 - Flip-Flops do Prof. Cappabianco
Componentes
2.Contador
 Essa componente tem a função de contar o
número de acertos do jogador, em que se ele
obtiver 10 acertos, será estabelecida a condição de
vitória.
O sistema é composto pelos dados dos botões
apertados, esses dados são enviados para um
contador composto por 4 flip flops JK que
realizarão a contagem do número de acertos.
Quando esse número em binário de 4 bits
corresponder ao algarismo 10 decimal, será
enviado a condição de vitória do jogador em
questão.
*Consultar Aula 18 - Contadores do Prof. Cappabianco
Componentes
3.Escolha
 Essa componente representa um habilitador
para cada jogador ter a vez certa de fazer suas
escolhas, tendo um seletor que, ao habilitar a
chave para um dos jogares iniciar, somente os
LEDs da matriz deste irão acender com as devidas
cores das embarcações.
 Além disso, dentro dessa componente, existe
uma lógica composta por MUXs para permitir que
todas as possibilidades de escolhas possam ser
feitas. 
*Consultar Aulas 9, 10, 11, 12 e 13 do Prof. Cappabianco
Componentes
4.Trava
 Assim como a componente Escolha, a Trava é um
habilitador, mas dessa vez para a Memória, em que
cada escolha de cada jogador é armazenada
separadamente. A composição do seu sistema
também é muito parecida com a da Escolha, sendo
formada pelas entradas dos botões e uma lógica de
MUXs para habilitar todas as possibilidades.
*Consultar Aulas 9, 10, 11, 12 e 13 do Prof. Cappabianco
Componentes
5.Seletores
 No início do jogo, cada jogador precisa
escolher a posição de cada embarcação,
primeiro a do Porta Aviões (4 espaços), depois
o Encouraçado (2 espaços) e por último 4
Submarinos (1 espaço cada).
 Ao escolher esses espaços, os dados são
enviados para essa componente, onde
primeiramente cada botão selecionado é
enviado para armazená-los em um flip flop.
Conforme a sequência, os quatro primeiros
botões serão associados a LEDs de cor azul
para representar o Porta Aviões, os dois
seguintes de cor verde para o Encouraçado e
os quatro últimos de cor vermelha para os
Submarinos.
Além dos Flip Flops presentes, no sistema
também há uma disposição de portas lógicas
AND, OR e MUX.
Componentes
5.Seletores
Além dos Flip Flops presentes, no sistema
também há uma disposição de portas lógicas
AND, OR e MUX.
*Consultar Aulas 4, 9, 10, 11, 12 e 13 do Prof. Cappabianco
 A memória é um componente relativamente
simples. Assim que o jogador selecionado
começar a posicionar a configuração de sua
frota, através da matriz de botões superior, a
memória será responsável por armazenar as
informações de entrada nos flip-flops, além
de possuir um botão "limpa", que funcionará
como um Reset. A memória serve, portanto,
para armazenar as posições estabelecidas por
cada jogador, sobretudo na configuração
inicial de cada jogador.
Componentes
6.Memória
*Consultar Aulas 9 e 16 do Prof. Cappabianco
Componentes
7.Muda
*Consultar Aulas 9 e 16 do Prof. Cappabianco
O componente "Muda" é responsável por fazer a
seleção de vez entre o "Jogador 1" e o "Jogador 2" no
momento dos ataques na partida. A configuração de
seu circuito proporciona numa mudança de valores
entre 0 e 1. Com o uso das portas-lógicas XOR, essa
mudança de valores proporciona uma saída
verdadeira para a vez do jogador 1 e uma saída falsa
para a vez do jogador 2 quando for a vez do jogador 1
fazer sua jogada e vice e versa quando for a vez do
jogador 2 fazer a sua jogada.
 Apresentado todo o processo esquemático da montagem
de nosso jogo de batalha naval, esperamos que todas as
explicações e aventuras por dentro do funcionamento de
circuitos digitais neste jogo de batalha naval tenham lhe
proporcionado notas esclarecedoras sobre portas lógicas ou
ao menos instigado sua curiosidade no assunto. 
 Este projeto adotou uma série de conceitos
fundamentais sobre circuitos digitais e os expandiu para
uma aplicação divertida, porém nada simplória. 
 O jogo de batalha naval pode ter sua análise expandida
para aplicações em outros jogos que utilizam apenas portas
lógicas, circuitos combinacionais e sequenciais para sua
consolidação.
Conclusões
 Está curioso para saber como
ficou o funcionamento do
circuito em uma partida de
verdade? Tire foto do QR Code ao
lado e acesse o vídeo de nosso
circuito em ação! Link para o vídeo
 Disponibilizamos, também,
outro QR Code que possui o link
para o drive contendo o circuito e
todos seus componentes
utilizados neste projeto
Link para o drive

Mais conteúdos dessa disciplina