SlideShare uma empresa Scribd logo
1 de 11
Tabuleiro
package restaum;
public class Tabuleiro {
private int aux;
private char[][] tabuleiro = {
{' ',' ','x','x','x',' ',' '},
{' ',' ','x','x','x',' ',' '},
{'x','x','x','x','x','x','x'},
{'x','x','x','o','x','x','x'},
{'x','x','x','x','x','x','x'},
{' ',' ','x','x','x',' ',' '},
{' ',' ','x','x','x',' ',' '}
};
public Tabuleiro(){
aux=32;
}
private void mostraTabuleiro(){
System.out.println("");
System.out.print(" ");
for(int i=0;i<7;i++){
System.out.print(" "+i);
}
System.out.println("");
for(int i = 0;i<7;i++){
System.out.print(i+" ");
for(int j = 0;j<7;j++){
System.out.print(tabuleiro[i][j]+" ");
}
System.out.println("");
}
System.out.println("PEÇAS: "+ aux );
}
private Boolean verificaMov(Movimentar c){
if(c.getE() >6 | c.getE()<0 | c.getT() >6 | c.getT()<0){
return false;
}
if((c.getE()>4 | c.getE()<2)& (c.getT()<2 | c.getT()>4)){
return false;
}
return true;
}
private void jogada(){
System.out.print("PONTO PARA ONDE A PEÇA SERÁ MOVIMENTADA: n");
Movimentar rInicio = new Movimentar(Console.leInt("LINHA:
"),Console.leInt("COLUNA: "));
System.out.print("PONTO PARA ONDE A PEÇA SERÁ MOVIMENTADA: n");
Movimentar rFim = new Movimentar(Console.leInt("LINHA:
"),Console.leInt("COLUNA: "));
if(!verificaMov(rInicio) | !verificaMov(rFim)){
System.out.println("MOVIMENTO INVALIDO PARA UMA DAS
PEÇAS.n");
}
else{
if(!verificaJogo(rInicio,rFim)){
System.out.print("JOGADA INVÁLIDA.n");
}
else{
Movimentar rMeio = new Movimentar(0,0);
if(rInicio.getE()!=rFim.getE()){
rMeio.setE((rInicio.getE()+rFim.getE())/2);
rMeio.setT(rInicio.getT());
}
else{
rMeio.setT((rInicio.getT()+rFim.getT())/2);
rMeio.setE(rInicio.getE());
}
tabuleiro[rFim.getE()][rFim.getT()]='x';
tabuleiro[rInicio.getE()][rInicio.getT()]='o';
tabuleiro[rMeio.getE()][rMeio.getT()]='o';
aux--;
}
}
}
public Boolean partida(){
do{
mostraTabuleiro();
jogada();
}while(temJogadas());
mostraTabuleiro();
if(aux>1){
return false;
}
else{
return true;
}
}
private Boolean verificaJogo(Movimentar r1,Movimentar r2){
if(tabuleiro[r1.getE()][r1.getT()]!='x' | tabuleiro[r2.getE()][r2.getT()]!='o'){
return false;
}
if(r1.getE()==r2.getE() & r1.getT()==r2.getT()){
return false;
}
if(r1.getE()!=r2.getE() & r1.getT()!=r2.getT()){
return false;
}
if(r1.getE()==r2.getE()){
if(Math.abs(r1.getT()-r2.getT())!=2){
return false;
}
if(tabuleiro[r1.getE()][(r1.getT()+r2.getT())/2]!='x'){
return false;
}
}
else{
if(Math.abs(r1.getE()-r2.getE())!=2){
return false;
}
if(tabuleiro[(r1.getE()+r2.getE())/2][r1.getT()]!='x'){
return false;
}
}
return true;
}
private Boolean temJogadas(){
if(aux == 1){
return false;
}
for(int i=0;i<7;i++){
for(int j=0;j<5;j++){
if(tabuleiro[i][j] == 'x' & tabuleiro[i][j+1]=='x' & tabuleiro[i][j+2]
=='o'){
return true;
}
}
for(int j=6;j>1;j--){
if(tabuleiro[i][j] == 'x' & tabuleiro[i][j-1]=='x' & tabuleiro[i][j-2]
=='o'){
return true;
}
}
}
for(int j=0;j<7;j++){
for(int i=0;i<5;i++){
if(tabuleiro[i][j] == 'x' & tabuleiro[i+1][j]=='x' &
tabuleiro[i+2][j]=='o'){
return true;
}
}
for(int i=6;i>1;i--){
if(tabuleiro[i][j] == 'x' & tabuleiro[i-1][j]=='x' & tabuleiro[i-
2][j]=='o'){
return true;
}
}
}
return false;
}
}
Movimentar
package restaum;
public class Movimentar {
private int e;
private int t;
public Movimentar(int e,int t){
setE(e);
setT(t);
}
public void setE(int e){
this.e=e;
}
public int getE(){
return e;
}
public void setT(int t){
this.t = t;
}
public int getT(){
return t;
}
}
Principal
package restaum;
public class Principal {
public static void main(String[] args) {
System.out.println("nn JOGO RESTA 1(UM) DESENVOLVIDO POR THALITA
DE LIMA CHAVES E EDSON DA SILVA PRACZYK ,n" +" ALUNOS DO CURSO ANÁLISE E
DESENVOLVIMENTO DE SISTEMAS,n" +" ORIENTADOS PELA PROFESSORA FERNANDA
- CURITIBA MARÇO DE 2013.nn");
int op=0;
String[] opcoes = {"JOGAR","ENCERRAR PARTIDA"};
do{
op = Console.menu("JOGO RESTA UM", opcoes);
switch(op){
case 1:
Tabuleiro tabuleiro = new Tabuleiro();
if(tabuleiro.partida()){
System.out.println("PARABÉNS VOCÊ VENCEU.");
}
else{
System.out.println("INFELIZMENTE NÃO FOI DESTA
VEZ, TENTE DENOVO .");
}
break;
case 2:
System.out.println("FIM");
break;
}
}while(op!=2);
} }
Console
package restaum;
import java.util.Scanner;
public class Console{
private static Scanner teclado = new Scanner(System.in);
// método que lê uma String do teclado
public static String leString(){
return teclado.nextLine();
}
// método que mostra uma mensagem na tela e lê uma String do teclado.
// caso a String seja nula ou em branco, repete a amostragem e a leitura.
public static String leString (String txt){
String str="";
while (true){
System.out.print(txt);
str=teclado.nextLine();
if (str!=null && !str.trim().equals(""))
return str.trim();
}
}
// método que mostra uma mensagem na tela e lê um int do teclado.
// caso o valor digitado não seja um número inteiro, repete a amostragem e a leitura
public static int leInt(String txt){
while (true){
try{
return Integer.parseInt (leString(txt));
}catch (NumberFormatException e){
System.out.println("Numero Invalido");
}
}
}
// método que mostra uma mensagem e lê um double do teclado
// caso o valor digitado não seja um número double, repete a amostragem e a leitura
public static double leDouble(String txt){
while (true){
try{
return Double.parseDouble(leString(txt));
}catch (NumberFormatException e){
System.out.println("Numero Invalido");
}
}
}
// método que mostra uma mensagem e lê um char do teclado
// caso o valor digitado não seja um caracter, repete a amostragem e a leitura
// caso seja digitado um texto, retorna apenas o 1o. caracter
public static char leChar(String txt){
while (true){
try{
return leString(txt).charAt(0);
}catch (NumberFormatException e){
System.out.println("Numero Invalido");
}
}
}
// método que apresenta um menu na tela e retorna o número da opção
selecionada
public static int menu(String titulo, String[] opcoes){
int op = 0;
while(true){
System.out.println(titulo);
for(int i = 0; i < opcoes.length; i++){
System.out.println((i + 1) + ". " + opcoes[i]);
}
op = leInt("Opção: ");
if (op > 0 && op <= opcoes.length)
return op;
else
System.out.println("Opção inválida");
}
}
}

Mais conteúdo relacionado

Mais procurados

Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQLMySQL Brasil
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test frameworkAbner Chih Yi Huang
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 OverviewMark Proctor
 
Introduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System LanguageIntroduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System Language安齊 劉
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable CodeBaidu, Inc.
 
LET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSLET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSKavyaSharma65
 

Mais procurados (9)

Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
An introduction to Google test framework
An introduction to Google test frameworkAn introduction to Google test framework
An introduction to Google test framework
 
Introduction to Processing
Introduction to ProcessingIntroduction to Processing
Introduction to Processing
 
Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 Overview
 
Singly Linked List
Singly Linked ListSingly Linked List
Singly Linked List
 
Introduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System LanguageIntroduce to Rust-A Powerful System Language
Introduce to Rust-A Powerful System Language
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
 
LET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERSLET US C (5th EDITION) CHAPTER 2 ANSWERS
LET US C (5th EDITION) CHAPTER 2 ANSWERS
 
Curso MySQL #04 - Melhorando banco de dados
Curso MySQL #04 - Melhorando banco de dadosCurso MySQL #04 - Melhorando banco de dados
Curso MySQL #04 - Melhorando banco de dados
 

Último

aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 

Último (20)

aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 

Resta um java

  • 1. Tabuleiro package restaum; public class Tabuleiro { private int aux; private char[][] tabuleiro = { {' ',' ','x','x','x',' ',' '}, {' ',' ','x','x','x',' ',' '}, {'x','x','x','x','x','x','x'}, {'x','x','x','o','x','x','x'}, {'x','x','x','x','x','x','x'}, {' ',' ','x','x','x',' ',' '}, {' ',' ','x','x','x',' ',' '} }; public Tabuleiro(){ aux=32; } private void mostraTabuleiro(){ System.out.println(""); System.out.print(" "); for(int i=0;i<7;i++){ System.out.print(" "+i); } System.out.println("");
  • 2. for(int i = 0;i<7;i++){ System.out.print(i+" "); for(int j = 0;j<7;j++){ System.out.print(tabuleiro[i][j]+" "); } System.out.println(""); } System.out.println("PEÇAS: "+ aux ); } private Boolean verificaMov(Movimentar c){ if(c.getE() >6 | c.getE()<0 | c.getT() >6 | c.getT()<0){ return false; } if((c.getE()>4 | c.getE()<2)& (c.getT()<2 | c.getT()>4)){ return false; } return true; } private void jogada(){ System.out.print("PONTO PARA ONDE A PEÇA SERÁ MOVIMENTADA: n"); Movimentar rInicio = new Movimentar(Console.leInt("LINHA: "),Console.leInt("COLUNA: ")); System.out.print("PONTO PARA ONDE A PEÇA SERÁ MOVIMENTADA: n");
  • 3. Movimentar rFim = new Movimentar(Console.leInt("LINHA: "),Console.leInt("COLUNA: ")); if(!verificaMov(rInicio) | !verificaMov(rFim)){ System.out.println("MOVIMENTO INVALIDO PARA UMA DAS PEÇAS.n"); } else{ if(!verificaJogo(rInicio,rFim)){ System.out.print("JOGADA INVÁLIDA.n"); } else{ Movimentar rMeio = new Movimentar(0,0); if(rInicio.getE()!=rFim.getE()){ rMeio.setE((rInicio.getE()+rFim.getE())/2); rMeio.setT(rInicio.getT()); } else{ rMeio.setT((rInicio.getT()+rFim.getT())/2); rMeio.setE(rInicio.getE()); } tabuleiro[rFim.getE()][rFim.getT()]='x'; tabuleiro[rInicio.getE()][rInicio.getT()]='o'; tabuleiro[rMeio.getE()][rMeio.getT()]='o'; aux--; } }
  • 4. } public Boolean partida(){ do{ mostraTabuleiro(); jogada(); }while(temJogadas()); mostraTabuleiro(); if(aux>1){ return false; } else{ return true; } } private Boolean verificaJogo(Movimentar r1,Movimentar r2){ if(tabuleiro[r1.getE()][r1.getT()]!='x' | tabuleiro[r2.getE()][r2.getT()]!='o'){ return false; } if(r1.getE()==r2.getE() & r1.getT()==r2.getT()){ return false; }
  • 5. if(r1.getE()!=r2.getE() & r1.getT()!=r2.getT()){ return false; } if(r1.getE()==r2.getE()){ if(Math.abs(r1.getT()-r2.getT())!=2){ return false; } if(tabuleiro[r1.getE()][(r1.getT()+r2.getT())/2]!='x'){ return false; } } else{ if(Math.abs(r1.getE()-r2.getE())!=2){ return false; } if(tabuleiro[(r1.getE()+r2.getE())/2][r1.getT()]!='x'){ return false; } } return true; } private Boolean temJogadas(){ if(aux == 1){ return false; } for(int i=0;i<7;i++){ for(int j=0;j<5;j++){ if(tabuleiro[i][j] == 'x' & tabuleiro[i][j+1]=='x' & tabuleiro[i][j+2] =='o'){
  • 6. return true; } } for(int j=6;j>1;j--){ if(tabuleiro[i][j] == 'x' & tabuleiro[i][j-1]=='x' & tabuleiro[i][j-2] =='o'){ return true; } } } for(int j=0;j<7;j++){ for(int i=0;i<5;i++){ if(tabuleiro[i][j] == 'x' & tabuleiro[i+1][j]=='x' & tabuleiro[i+2][j]=='o'){ return true; } } for(int i=6;i>1;i--){ if(tabuleiro[i][j] == 'x' & tabuleiro[i-1][j]=='x' & tabuleiro[i- 2][j]=='o'){ return true; } } } return false; } }
  • 7. Movimentar package restaum; public class Movimentar { private int e; private int t; public Movimentar(int e,int t){ setE(e); setT(t); } public void setE(int e){ this.e=e; } public int getE(){ return e; } public void setT(int t){ this.t = t; } public int getT(){ return t; } }
  • 8. Principal package restaum; public class Principal { public static void main(String[] args) { System.out.println("nn JOGO RESTA 1(UM) DESENVOLVIDO POR THALITA DE LIMA CHAVES E EDSON DA SILVA PRACZYK ,n" +" ALUNOS DO CURSO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS,n" +" ORIENTADOS PELA PROFESSORA FERNANDA - CURITIBA MARÇO DE 2013.nn"); int op=0; String[] opcoes = {"JOGAR","ENCERRAR PARTIDA"}; do{ op = Console.menu("JOGO RESTA UM", opcoes); switch(op){ case 1: Tabuleiro tabuleiro = new Tabuleiro(); if(tabuleiro.partida()){ System.out.println("PARABÉNS VOCÊ VENCEU."); } else{ System.out.println("INFELIZMENTE NÃO FOI DESTA VEZ, TENTE DENOVO ."); } break; case 2: System.out.println("FIM"); break; } }while(op!=2); } }
  • 9. Console package restaum; import java.util.Scanner; public class Console{ private static Scanner teclado = new Scanner(System.in); // método que lê uma String do teclado public static String leString(){ return teclado.nextLine(); } // método que mostra uma mensagem na tela e lê uma String do teclado. // caso a String seja nula ou em branco, repete a amostragem e a leitura. public static String leString (String txt){ String str=""; while (true){ System.out.print(txt); str=teclado.nextLine(); if (str!=null && !str.trim().equals("")) return str.trim(); } } // método que mostra uma mensagem na tela e lê um int do teclado. // caso o valor digitado não seja um número inteiro, repete a amostragem e a leitura public static int leInt(String txt){ while (true){ try{ return Integer.parseInt (leString(txt));
  • 10. }catch (NumberFormatException e){ System.out.println("Numero Invalido"); } } } // método que mostra uma mensagem e lê um double do teclado // caso o valor digitado não seja um número double, repete a amostragem e a leitura public static double leDouble(String txt){ while (true){ try{ return Double.parseDouble(leString(txt)); }catch (NumberFormatException e){ System.out.println("Numero Invalido"); } } } // método que mostra uma mensagem e lê um char do teclado // caso o valor digitado não seja um caracter, repete a amostragem e a leitura // caso seja digitado um texto, retorna apenas o 1o. caracter public static char leChar(String txt){ while (true){ try{ return leString(txt).charAt(0); }catch (NumberFormatException e){ System.out.println("Numero Invalido"); } }
  • 11. } // método que apresenta um menu na tela e retorna o número da opção selecionada public static int menu(String titulo, String[] opcoes){ int op = 0; while(true){ System.out.println(titulo); for(int i = 0; i < opcoes.length; i++){ System.out.println((i + 1) + ". " + opcoes[i]); } op = leInt("Opção: "); if (op > 0 && op <= opcoes.length) return op; else System.out.println("Opção inválida"); } } }