Arduino Mastermind Game

2.3K67

Intro: Arduino Mastermind Game

I created this little game as a hobby for my children during the Covid-19 quarantine. I had already seen some versions for two players on the Internet. But I wanted a version in which the player would challenge Arduino itself, because then I could turn the game into a puzzle for Escape Room.

===

Eu criei esse jogo como um passatempo para os meus filhos durante a pandemia de Covid-19. Eu já vi algumas versões do jogo para dois jogadores, usando o Arduino como tabuleiro. Mas eu queria uma versão em que o jogador pudesse desafiar o próprio Arduino, porque pensei que poderia tornar esse jogo um quebra-cabeça para Escape Room.

STEP 1: Schematics and Code

The game works like this: there are seven colors available and a code with four colors, without any of them being repeated. The player's goal is to find out what is the sequence of four colors in a maximum of sixteen attempts. When the player hits one of the colors, but misses the position, the computer lights up a red LED. When the color and position are correct, the computer lights up a green led. With these tips and some strategy, the player must discover the password.

In my research, I found some versions of this game, but I decided to create one using the fewest possible Arduino pins, in order to create other puzzles on the same board.

==

O jogo funciona assim: existem sete cores disponíveis e um código com quatro cores, sem que nenhuma delas se repita. O objetivo do jogador é descobrir qual é a seqüência de quatro cores em no máximo dezesseis tentativas. Quando o jogador acerta uma das cores, mas erra a posição, o computador acende um led vermelho. Quando acerta a cor e a posição, o computador acende um led verde. Com essas dicas e alguma estratégia, o jogador deve descobrir qual o código correto.
Em minha pesquisa, eu encontrei algumas versões desse jogo, mas eu resolvi criar uma usando o menor número possível de pinos do Arduino, para poder criar outros quebra-cabeças numa mesma placa.

STEP 2: The Best Player in the World


Here is my son Chico, playing the game!

===

E aqui o Chico, se divertindo com o jogo!

5 Comments

I need to make the exact same game for school. But i only have a 8 led adafruit strip and for the input i am only going to use a joystick. I want to choose the color by moving the joystick up and down and switching the led you're editing by moving the joystick sideways. Could you help me with this possibly? It would be awesome if you want to. Thank you in advance!
Olá Guilherme, boa noite.
Montei e está tudo ok, porém me acontece algumas situações.
Importante, ao invés de um Leonardo, uso um Nano ok ?

1) O Botão do Enconder, está com atrasos, só considera o moviento depois de 2 ou clicks rodando.
2) A cada linha nova, o pixel aceso e na cor que vier, se confirmarmos, sem fazer alteração os 4 pixels, ele não considera nada e pula para a próxima tentativa sem resultado na anterior.

Alguma idéia do que pode ser ?
Obrigado, e ótimo protótipo, parabens.
Filipe, talvez valha a pena fazer uma rotininha de "debounce" para o botão do Encoder. Provavelmente o click deve estar sendo breve demais para o Arduino. Vou olhar isso aqui. O meu está funcionando bem. Mas vale a pena pensar nisso para o código ficar portável mesmo.

Eu não sei se entendi a segunda questão. Pelo que eu entendi você está repetindo a mesma escolha em duas linhas e ele pula sem exibir os leds vermelhos ou verdes que indicam as pistas, é isso? Se for, eu não botei isso no código mesmo. Nem pensei nessa possibilidade.

Mas acho que seria simples. Eu armazeno uma array com a última alternativa digitada pelo usuário e se for igual a atual, repito a indicação, sei lá. Ou apago tudo. E permito que ele escolha novamente as cores.
Olá Guilherme, bom dia.
Obrigado pelo retorno.
Não sou muito bom em código, entao se chegar a verificar estes itens, seria perfeito e agradeço a atualização.
Em tempo, estou trabalhando em uma case com a impressora 3D para o projeto, logo que terminar disponibilizo para você anexar ao projeto.
Forte abraço.
Superb!!! i have voted you.😊😊😊