Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package jogoexemplo;
- import java.util.Scanner;
- class Jogador {
- String nome;
- Jogador(String n) { nome = n; }
- void setNome(String n) { nome = n; }
- String getNome() { return nome; }
- }
- abstract class Peca {
- Jogador j;
- }
- int lin, col;
- Peca(Jogador j) {
- this.j = j;
- }
- Jogador getJogador() { return j; }
- abstract String getNome();
- void setPosicao(int l, int c) { lin = l; col = c; }
- int getLin() { return lin; }
- int getCol() { return col; }
- abstract boolean verificaSePodeIrPara(int l, int c);
- class Torre extends Peca {
- Torre(Jogador j) {
- super(j);
- }
- String getNome() { return "Torre"; }
- boolean verificaSePodeIrPara(int l, int c) {
- } }
- }
- if ( (l == lin) || (c == col) )
- return true;
- return false;
- class Bispo extends Peca {
- Bispo(Jogador j) {
- super(j);
- }
- String getNome() { return "Bispo"; }
- boolean verificaSePodeIrPara(int l, int c) {
- } }
- class Posicao {
- char tipo;
- Peca p;
- Posicao() {
- // tipo pode ser cor, ou outra coisa qualquer
- if ( Math.abs(l‐lin) == Math.abs(col‐c) )
- return true;
- return false;
- int a = (int)(Math.random()*10); if(a<2) //0,1(20%)
- tipo = '+';
- else if (a > 7) // 8,9 (20%)
- tipo = 'x';
- else tipo = ' '; // 2,3,4,5,6,7 (60%)
- p = null;
- String getTexto(int lin) {
- switch (lin) {
- }
- case0:return" "+tipo+" "; case 1:
- if (p!=null)
- return " " + p.getNome().substring(0,3) + " ";
- else
- return " ";
- case 2:
- if (p!=null)
- return " " + p.getJogador().getNome().charAt(0) + " ";
- else
- return "
- default: return "?????";
- ";
- }
- }
- }
- void setPeca(Peca p) { this.p = p; }
- Peca getPeca() { return p; }
- class Tabuleiro {
- Posicao[][] tab = new Posicao[6][6];
- Tabuleiro(Jogador a, Jogador b) {
- for (int l=0; l<6;l++)
- for (int c=0;c<6;c++)
- tab[l][c] = new Posicao();
- Torre pa = new Torre(a); // torre do jogador a
- Bispo pb = new Bispo(b); // bispo do jogador b
- tab[0][0].setPeca(pa);
- tab[5][5].setPeca(pb);
- }
- Peca getPeca(int l, int c) {
- // validar limites
- return tab[l][c].getPeca();
- }
- void setPeca(int l, int c, Peca p) {
- }
- } }
- class Jogo {
- Tabuleiro tab;
- // validar limites
- tab[l][c].setPeca(p);
- if (p!=null)
- p.setPosicao(l, c);
- void imprimeTabuleiro() {
- System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
- for (int lin=0; lin<6; lin++) {
- Jogador a,b;
- void preparaJogo() {
- }
- for (int linha=0; linha<3; linha++) {
- System.out.print("|");
- for (int col=0; col<6; col++) {
- System.out.print(tab[lin][col].getTexto(linha));
- System.out.print("|");
- }
- System.out.println();
- }
- System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
- // pede nomes de jogadores
- a = new Jogador("Maria");
- b = new Jogador("Antonio");
- tab = new Tabuleiro(a,b);
- } }
- void run() {
- Scanner sc = new Scanner(System.in);
- int l1, c1, l2, c2;
- tab.imprimeTabuleiro();
- // pergunta qual a peça a jogar (l,c)
- System.out.println("Linha da peça");
- l1 = sc.nextInt();
- System.out.println("Coluna da peça");
- c1 = sc.nextInt();
- if (l1<0 || l1 > 5 || c1 < 0 || c1 > 5) {
- System.out.println("posicao inválida");
- return; // deve voltar a pedir valores válidos
- }
- // validar também coluna
- Peca p = tab.getPeca(l1,c1);
- if (p == null) { // verifica se está ai uma peça
- System.out.println("nao tens peca ai");
- return; // deve voltar a pedir valores válidos
- }
- // verificar também se a peça é do jogador que está a jogar
- // se alguma correu mal, voltar a pedir valores
- System.out.println("posicao destino");
- System.out.println("Linha destino");
- l2 = sc.nextInt();
- System.out.println("Coluna destino");
- c2 = sc.nextInt();
- // validar limites do tabuleiro e repetir pedido se for o caso
- if (p.verificaSePodeIrPara(l2, c2)) {
- tab.setPeca(l2,c2,p);
- tab.setPeca(l1,c1,null);
- tab.imprimeTabuleiro();
- } else
- // a seguir trata do outro jogador. mesma coisa ‐> meter numa função
- sc.close();
- // classe principal mais abaixo
- System.out.println("A peca nao pode ir para ai");
- // e portanto volta a pedir novo destino
- public class Principal {
- } }
- public static void main(String[] args) {
- Jogo j = new Jogo();
- j.preparaJogo();
- j.run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement