Skip to content

Instantly share code, notes, and snippets.

@ccalmendra
Created June 1, 2012 18:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ccalmendra/2854220 to your computer and use it in GitHub Desktop.
Save ccalmendra/2854220 to your computer and use it in GitHub Desktop.
Dojo Quixadá - 24/08/2011
public class JogoDaVelha {
char Tabuleiro[][] = { {'.','.','.'},{'.','.','.'},{'.','.','.'} };
char[] jogadores = {'X','O'};
public String getTabuleiro() {
String tab = new String();
tab = tab.concat(new String(this.Tabuleiro[0])).concat("\n"
).concat(new String(this.Tabuleiro[1])).concat("\n"
).concat(new String(this.Tabuleiro[2]));
return tab;
}
public void efetuarJogada(String jogador, int posicao) {
Tabuleiro[posicao/3][posicao%3]=jogador.charAt(0);
}
public boolean existeVencedor() {
char primeiro;
boolean resultado = false;
for(int i=0;i<3;i++) {
primeiro = Tabuleiro[i][0];
if((Tabuleiro[i][1] == primeiro)&&(Tabuleiro[i][2]==primeiro)) return true;
}
for(int i=0;i<3;i++) {
primeiro = Tabuleiro[0][i];
if((Tabuleiro[1][i] == primeiro)&&(Tabuleiro[2][i]==primeiro)) return true;
}
primeiro = Tabuleiro[0][0];
if((Tabuleiro[1][1] == primeiro)&&(Tabuleiro[2][2]==primeiro)) return true;
primeiro = Tabuleiro[0][2];
if((Tabuleiro[1][1] == primeiro)&&(Tabuleiro[2][0]==primeiro)) return true;
return false;
}
}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class JogoDaVelhaTest {
@Test
public void aoCriarJogoTabuleiroEstaVazio(){
JogoDaVelha jogo = new JogoDaVelha();
String tabuleiroVazio = "...\n...\n...";
assertEquals(tabuleiroVazio,jogo.getTabuleiro());
}
@Test
public void verificaPosicaoDaJogadaPos0(){
JogoDaVelha jogo = new JogoDaVelha();
String jogador = "X";
String tabuleiro = "X..\n...\n...";
int posicao = 0;
jogo.efetuarJogada(jogador, posicao);
assertEquals(tabuleiro, jogo.getTabuleiro());
}
@Test
public void verificaPosicaoDaJogadaPos1(){
JogoDaVelha jogo = new JogoDaVelha();
String jogador = "X";
String tabuleiro = ".X.\n...\n...";
int posicao = 1;
jogo.efetuarJogada(jogador, posicao);
assertEquals(tabuleiro, jogo.getTabuleiro());
}
@Test
public void verificarVitoriaPrimeiraLinha(){
JogoDaVelha jogo = new JogoDaVelha();
jogo.efetuarJogada("X", 0);
jogo.efetuarJogada("O", 3);
jogo.efetuarJogada("X", 1);
jogo.efetuarJogada("O", 4);
jogo.efetuarJogada("X", 2);
assertTrue("Deveria ter vencedor",jogo.existeVencedor());
}
@Test
public void verificarVitoriaTerceiraLinha(){
JogoDaVelha jogo = new JogoDaVelha();
jogo.efetuarJogada("X", 0);
jogo.efetuarJogada("O", 8);
jogo.efetuarJogada("X", 1);
jogo.efetuarJogada("O", 6);
jogo.efetuarJogada("X", 5);
jogo.efetuarJogada("O", 7);
assertTrue("Deveria ter vencedor",jogo.existeVencedor());
}
@Test
public void verificarVitoriaPrimeiraColuna(){
JogoDaVelha jogo = new JogoDaVelha();
jogo.efetuarJogada("X", 0);
jogo.efetuarJogada("O", 8);
jogo.efetuarJogada("X", 3);
jogo.efetuarJogada("O", 2);
jogo.efetuarJogada("X", 6);
assertTrue("Deveria ter vencedor",jogo.existeVencedor());
}
@Test
public void verificarNaoVitoria(){
JogoDaVelha jogo = new JogoDaVelha();
jogo.efetuarJogada("X", 0);
jogo.efetuarJogada("O", 1);
jogo.efetuarJogada("X", 2);
jogo.efetuarJogada("O", 3);
jogo.efetuarJogada("X", 5);
jogo.efetuarJogada("O", 4);
jogo.efetuarJogada("X", 6);
jogo.efetuarJogada("O", 8);
jogo.efetuarJogada("X", 7);
assertFalse("Deve dar velha",jogo.existeVencedor());
}
@Test
public void verificarDiagonal(){
JogoDaVelha jogo = new JogoDaVelha();
jogo.efetuarJogada("X", 0);
jogo.efetuarJogada("O", 1);
jogo.efetuarJogada("X", 2);
jogo.efetuarJogada("O", 3);
jogo.efetuarJogada("X", 4);
jogo.efetuarJogada("O", 5);
jogo.efetuarJogada("X", 6);
jogo.efetuarJogada("O", 7);
jogo.efetuarJogada("X", 8);
assertTrue("Deveria ter vencedor",jogo.existeVencedor());
}
}
@ccalmendra
Copy link
Author

Participantes:
Zarathon Maia, José Fernandes Junior, Franklin Barroso, Geovanny Filho, Daniel Wolney, Paulyne Jucá, Arthur Callado, Camilo Almendra.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment