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

Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysqlArley Rodrigues
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticosCentro Paula Souza
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 

Mais procurados (20)

Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos10 Java Script - Exemplos práticos
10 Java Script - Exemplos práticos
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Software
SoftwareSoftware
Software
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula 6 aed - registros
Aula 6   aed - registrosAula 6   aed - registros
Aula 6 aed - registros
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1Aula 6 - Estruturas de seleção encadeada - parte 1
Aula 6 - Estruturas de seleção encadeada - parte 1
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 

Último

BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoGentil Eronides
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
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
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioDomingasMariaRomao
 
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
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
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
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
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
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......suporte24hcamin
 
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
 
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
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 

Último (20)

BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimento
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
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
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
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
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
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
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
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
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......
 
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
 
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
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 

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"); } } }