Advertisement
0rioNN

Untitled

May 18th, 2014
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.73 KB | None | 0 0
  1. package jogoexemplo;
  2. import java.util.Scanner;
  3. class Jogador {
  4.        String nome;
  5.        Jogador(String n) { nome = n; }
  6.        void setNome(String n) { nome = n; }
  7.        String getNome() { return nome; }
  8. }
  9. abstract class Peca {
  10.        Jogador j;
  11. }
  12. int lin, col;
  13. Peca(Jogador j) {
  14. this.j = j;
  15. }
  16. Jogador getJogador() { return j; }
  17. abstract String getNome();
  18. void setPosicao(int l, int c) { lin = l; col = c; }
  19. int getLin() { return lin; }
  20. int getCol() { return col; }
  21. abstract boolean verificaSePodeIrPara(int l, int c);
  22. class Torre extends Peca {
  23.        Torre(Jogador j) {
  24. super(j);
  25.        }
  26.        String getNome() { return "Torre"; }
  27.        boolean verificaSePodeIrPara(int l, int c) {
  28. } }
  29. }
  30. if ( (l == lin) || (c == col) )
  31.        return true;
  32. return false;
  33. class Bispo extends Peca {
  34.        Bispo(Jogador j) {
  35. super(j);
  36.        }
  37.        String getNome() { return "Bispo"; }
  38.        boolean verificaSePodeIrPara(int l, int c) {
  39. } }
  40. class Posicao {
  41.        char tipo;
  42.        Peca p;
  43.        Posicao() {
  44. // tipo pode ser cor, ou outra coisa qualquer
  45. if ( Math.abs(l‐lin) == Math.abs(col‐c) )
  46.        return true;
  47. return false;
  48. int a = (int)(Math.random()*10); if(a<2) //0,1(20%)
  49.        tipo = '+';
  50. else if (a > 7) // 8,9 (20%)
  51.        tipo = 'x';
  52. else tipo = ' '; // 2,3,4,5,6,7 (60%)
  53. p = null;
  54. String getTexto(int lin) {
  55.        switch (lin) {
  56. }
  57. case0:return" "+tipo+" "; case 1:
  58.        if (p!=null)
  59.                return " " + p.getNome().substring(0,3) + " ";
  60.        else
  61.                return "     ";
  62. case 2:
  63.        if (p!=null)
  64.                return "  " + p.getJogador().getNome().charAt(0) + "  ";
  65.        else
  66.                return "
  67. default: return "?????";
  68. ";
  69. }
  70. }
  71. }
  72. void setPeca(Peca p) { this.p = p; }
  73. Peca getPeca() { return p; }
  74. class Tabuleiro {
  75.        Posicao[][] tab = new Posicao[6][6];
  76.        Tabuleiro(Jogador a, Jogador b) {
  77.                for (int l=0; l<6;l++)
  78.                       for (int c=0;c<6;c++)
  79.                              tab[l][c] = new Posicao();
  80.                Torre pa = new Torre(a);  // torre do jogador a
  81.                Bispo pb = new Bispo(b);  // bispo do jogador b
  82.                tab[0][0].setPeca(pa);
  83.                tab[5][5].setPeca(pb);
  84.        }
  85.        Peca getPeca(int l, int c) {
  86.                // validar limites
  87.                return tab[l][c].getPeca();
  88.        }
  89.        void setPeca(int l, int c, Peca p) {
  90. }
  91. } }
  92. class Jogo {
  93.        Tabuleiro tab;
  94. // validar limites
  95. tab[l][c].setPeca(p);
  96. if (p!=null)
  97.        p.setPosicao(l, c);
  98. void imprimeTabuleiro() {
  99.        System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
  100.        for (int lin=0; lin<6; lin++) {
  101. Jogador a,b;
  102. void preparaJogo() {
  103. }
  104. for (int linha=0; linha<3; linha++) {
  105.        System.out.print("|");
  106.        for (int col=0; col<6; col++) {
  107.                System.out.print(tab[lin][col].getTexto(linha));
  108.                System.out.print("|");
  109.        }
  110.        System.out.println();
  111. }
  112. System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐");
  113. // pede nomes de jogadores
  114. a = new Jogador("Maria");
  115. b = new Jogador("Antonio");
  116. tab = new Tabuleiro(a,b);
  117. } }
  118. void run() {
  119.        Scanner sc = new Scanner(System.in);
  120.        int l1, c1, l2, c2;
  121.        tab.imprimeTabuleiro();
  122.        // pergunta qual a peça a jogar (l,c)
  123.        System.out.println("Linha da peça");
  124.        l1 = sc.nextInt();
  125.        System.out.println("Coluna da peça");
  126.        c1 = sc.nextInt();
  127.        if (l1<0 || l1 > 5 || c1 < 0 || c1 > 5) {
  128.        System.out.println("posicao inválida");
  129.        return;  // deve voltar a pedir valores válidos
  130. }
  131. // validar também coluna
  132. Peca p = tab.getPeca(l1,c1);
  133. if (p == null) { // verifica se está ai uma peça
  134.        System.out.println("nao tens peca ai");
  135.        return;  // deve voltar a pedir valores válidos
  136. }
  137. // verificar também se a peça é do jogador que está a jogar
  138. // se alguma correu mal, voltar a pedir valores
  139. System.out.println("posicao destino");
  140. System.out.println("Linha destino");
  141. l2 = sc.nextInt();
  142. System.out.println("Coluna destino");
  143. c2 = sc.nextInt();
  144. // validar limites do tabuleiro e repetir pedido se for o caso
  145. if (p.verificaSePodeIrPara(l2, c2)) {
  146.        tab.setPeca(l2,c2,p);
  147.        tab.setPeca(l1,c1,null);
  148.        tab.imprimeTabuleiro();
  149. } else
  150. // a seguir trata do outro jogador. mesma coisa ‐> meter numa função
  151. sc.close();
  152. // classe principal mais abaixo
  153. System.out.println("A peca nao pode ir para ai");
  154. // e portanto volta a pedir novo destino
  155. public class Principal {
  156. } }
  157. public static void main(String[] args) {
  158.        Jogo j = new Jogo();
  159. j.preparaJogo();
  160. j.run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement