ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Trabalho de "Conversão de Bases”
O meu Código. EmptySáb maio 19, 2012 4:38 pm por backers

» O meu Código.
O meu Código. EmptyQua maio 16, 2012 3:07 pm por Admin

» Livro de matematica..
O meu Código. EmptyQua maio 02, 2012 11:57 am por guiltm

» Brincado com as matrizes em C
O meu Código. EmptyQua Abr 25, 2012 3:26 pm por Narciso CS

» Como encontrar um numero Primo na matriz?
O meu Código. EmptyTer Abr 24, 2012 12:14 pm por Admin

» EXERCÍCIOS – MÓDULO 02
O meu Código. EmptySáb Abr 14, 2012 11:41 am por Anderson G S

» Soma de Pares, Soma de Impares, Maior, Menor, Soma e Media
O meu Código. EmptyQua Abr 11, 2012 12:45 pm por Convidado

» EXERCÍCIOS – MÓDULO 01
O meu Código. EmptyQua Abr 11, 2012 1:25 am por Anderson G S

» Como perguntar se ele deseja continuar jogando?
O meu Código. EmptyQua Abr 04, 2012 5:39 pm por Anderson G S

Os membros mais ativos da semana
Nenhum usuário


O meu Código.

Ir para baixo

O meu Código. Empty O meu Código.

Mensagem  Admin Qua maio 16, 2012 3:07 pm

Esse é a verção Uniforce1.0. Incompleta!
Código:
import java.util.Scanner;
/**********************************************************************************************************************/
class Soldado
{
   int numero;
   String aparencia;
   int velocidade;
   
   Soldado (int a , String b,int c)
   {
      numero = a;
      aparencia = b;
      velocidade = c;
   }
   void MostrarSoldado()
   {
      System.out.println("Numero: "+numero);
      System.out.println("Aparencia: "+aparencia);
      System.out.println("Velocidade: "+velocidade);
   }
}
/**********************************************************************************************************************/
class Exercito
{
   Soldado [] grupoSoldado;
   
   Exercito(Soldado... a)
   {
      grupoSoldado = new Soldado [a.length];
      for(int i = 0; i<grupoSoldado.length;i++)
      {
         grupoSoldado[i] = a[i];
      }
   }
   void MostarAparencia(int a)
   {
      for(int i = 0; i<grupoSoldado.length;i++)
      {
         if(a-1==i)
         {
            System.out.print(grupoSoldado[i].aparencia);
         }
      }
   }
   void Fixa()
   {
      for(int i = 0; i<grupoSoldado.length;i++)
      {
         grupoSoldado[i].MostrarSoldado();
      }
   }
   boolean Existe(int n)
   {
      for(int i = 0; i<grupoSoldado.length;i++)
      {
         if(grupoSoldado[i].numero == n)
         {
            return true;   
         }
         
      }
      return false;
   }
   int Velocidade(int n)
   {
      for(int i = 0; i<grupoSoldado.length;i++)
      {
         if(grupoSoldado[i].numero == n)
         {
            return grupoSoldado[i].velocidade;   
         }
         
      }
      return 0;
   }
   int maiorVelocidade(String n)
   {
      int m = 0;
      if(n == "a")
      {
         for(int i = 0; i<(grupoSoldado.length/2);i++)
         {
            if(grupoSoldado[i].velocidade > m)
            {
               m = grupoSoldado[i].velocidade;
            }   
         }
         return m;
      }
      else
      {
         for(int i = (grupoSoldado.length/2); i<grupoSoldado.length;i++)
         {
            if(grupoSoldado[i].velocidade > m)
            {
               m = grupoSoldado[i].velocidade;
            }   
         }
         return m;
      }
   }
}

/*====================================================================================================================*/

public class Uniforce1
{
   static int NUMEROD = 20;
   
/**
 * @throws InterruptedException ********************************************************************************************************************/

   public static void main(String[] args) throws InterruptedException
   {
      Soldado A1 = new Soldado(1,"Ô",1);
      Soldado A2 = new Soldado(2,"Ö",2);
      Soldado A3 = new Soldado(3,"O",4);
      Soldado A4 = new Soldado(4,"Ò",6);
      Soldado A5 = new Soldado(5,"Õ",12);
      Soldado V1 = new Soldado(6,"Î",2);
      Soldado V2 = new Soldado(7,"Ï",4);
      Soldado V3 = new Soldado(8,"Í",6);
      Soldado V4 = new Soldado(9,"Ì",3);
      Soldado V5 = new Soldado(10,"I",8);
      Exercito soldado = new Exercito(A1,A2,A3,A4,A5,V1,V2,V3,V4,V5);
      soldado.Fixa();
      Scanner sc = new Scanner(System.in);
      int[][] campoBatalha = PosicaoRand();
      DezenharTerreno(campoBatalha, soldado);
      Thread.sleep(1000);
      System.out.println("");
      Rodada(campoBatalha, soldado);
   }

/**
 * @throws InterruptedException ********************************************************************************************************************/

   static void Rodada(int [][] campoBatalha,Exercito soldado) throws InterruptedException
   {
      String enter = " ";
      int [] posicao = new int [2];
      int [] qualLado = new int [10];
      while(enter != "n")
      {
         for(int i=0;i<10;i++)
         {
            qualLado[i] = (int)((Math.random())*2);
         }
         for(int i=0;i<10;i++)
         {
            qualLado[i] = qualLado[i] + (int)((Math.random())*2);
         }
         for(int i=0;i<10;i++)
         {
            qualLado[i] = qualLado[i] + (int)((Math.random())*2);
         }
         for(int i=0;i<10;i++)
         {
            qualLado[i] = qualLado[i] + 1;
         }
         for(int pas = 0;pas< soldado.maiorVelocidade("a");pas++)
         {
            for(int eu=1;eu<=5;eu++)
            {
               if(soldado.Existe(eu))
               {
                  if(soldado.Velocidade(eu)>pas)
                  {
                     posicao = OndeTo(campoBatalha,eu);
                     campoBatalha[posicao[0]][posicao[1]] = 0;
//                     qualLado = ((int)(Math.random() * 3))+1;
                     posicao = OndeVo(soldado,campoBatalha,eu,posicao,qualLado);
                     campoBatalha[posicao[0]][posicao[1]] = eu;
                     qualLado [eu-1] = posicao [2];
                  }
               }
            }
            DezenharTerreno(campoBatalha, soldado);
            Thread.sleep(250);
            System.out.println("");
         }
         for(int pas = 0;pas< soldado.maiorVelocidade("v");pas++)
         {
            for(int eu=6;eu<=10;eu++)
            {
               if(soldado.Existe(eu))
               {
                  if(soldado.Velocidade(eu)>pas)
                  {
                     posicao = OndeTo(campoBatalha,eu);
                     campoBatalha[posicao[0]][posicao[1]] = 0;
//                     qualLado = ((int)(Math.random() * 3))+1;
                     posicao = OndeVo(soldado,campoBatalha,eu,posicao,qualLado);
                     campoBatalha[posicao[0]][posicao[1]] = eu;
                     qualLado [eu-1] = posicao [2];
                  }
               }
            }
            DezenharTerreno(campoBatalha, soldado);
            Thread.sleep(250);
            System.out.println("");
         }
      }
   }
   
/**********************************************************************************************************************/

   static void DezenharTerreno (int [][] mapa, Exercito soldado)
   {
      for(int j = 0; j<NUMEROD; j++)
      {
         System.out.print("|");
         for (int i = 0; i<NUMEROD; i++)
         {
            switch (mapa [i][j])
            {
               case 1:
                  soldado.MostarAparencia(1);
                  break;
               case 2:
                  soldado.MostarAparencia(2);
                  break;
               case 3:
                  soldado.MostarAparencia(3);
                  break;
               case 4:
                  soldado.MostarAparencia(4);
                  break;
               case 5:
                  soldado.MostarAparencia(5);
                  break;
               case 6:
                  soldado.MostarAparencia(6);
                  break;
               case 7:
                  soldado.MostarAparencia(7);
                  break;
               case 8:
                  soldado.MostarAparencia(8);
                  break;
               case 9:
                  soldado.MostarAparencia(9);
                  break;
               case 10:
                  soldado.MostarAparencia(10);
                  break;
               default:
                  System.out.print("-");
                  break;
            }

            System.out.print("|");
         }
         System.out.println("");
      }
   }
   
/**********************************************************************************************************************/
   
   static int [][] PosicaoRand()
   {
      int numeroI;
      int numeroJ;
      int [][] campoBatalha = new int [NUMEROD][NUMEROD];
      for(int j = 0; j<NUMEROD; j++)
      {
         for (int i = 0; i<NUMEROD; i++)
         {
            campoBatalha[i][j] = 0;
         }
      }
      for(int x = 0; x<10 ; x++)
      {
         numeroI = (int)(Math.random() * 20);
         numeroJ = (int)(Math.random() * 20);
         if(campoBatalha [numeroI][numeroJ] == 0)
         {
            campoBatalha [numeroI][numeroJ] = (x+1);
         }
      }
      return campoBatalha;
   }
   
/**********************************************************************************************************************/

//   static int [][] Movimentar(Exercito soldado, int [][] campoBatalha, int eu)
//   {
//      int [] posicao = new int [2];
//         if(soldado.Existe(eu))
//         {
//            posicao = OndeTo(campoBatalha,eu);
//            System.out.println("1-"+posicao[0]+" "+posicao[1]);
//            campoBatalha[posicao[0]][posicao[1]] = 0;
//            posicao = OndeVo(soldado,campoBatalha,eu,posicao);
//            System.out.println("2-"+posicao[0]+" "+posicao[1]);
//            campoBatalha[posicao[0]][posicao[1]] = eu;
//            return campoBatalha;
//         }
//      return campoBatalha;
//   }

/**********************************************************************************************************************/

   static int [] OndeTo (int [][]campoBatalha, int eu)
   {
      int [] posicao = new int [2];
      for(int j = 0; j<NUMEROD; j++)
      {
         for (int i = 0; i<NUMEROD; i++)
         {
            if(campoBatalha[i][j] == eu)
            {
               posicao [0]= i;
               posicao [1]= j;
               return posicao;
            }
         }
      }
      System.out.println("Erro no OndeTo");
      return null;
   }
   
/**********************************************************************************************************************/

//   static int QualLado()
//   {
//      return 0;
//   }
   
/**********************************************************************************************************************/   
   static int [] OndeVo (Exercito soldado, int [][] campoBatalha, int eu, int [] posicao, int [] qualLado)
   {
      int velocidade;
      int [] nposicao = new int [3];
      int i = posicao [0];
      int j = posicao [1];
      velocidade = 1;
//      velocidade = soldado.Velocidade(eu);
//      random = ((int)(Math.random() * 3))+1;
//      System.out.println("Random"+random);
      switch(qualLado[eu-1])
      {
      case 1:
         if(TemAlguem(velocidade, 1, posicao, campoBatalha))
         {
            nposicao [0] = i + velocidade;
            nposicao [1] = j;
            nposicao [2] = 1;
            return nposicao;
         }
         else
         {
            if(TemAlguem(velocidade, 2, posicao, campoBatalha))
            {
               nposicao [0] = i - velocidade;
               nposicao [1] = j;
               nposicao [2] = 2;
               return nposicao;
            }
            else
            {
               if(TemAlguem(velocidade, 3, posicao, campoBatalha))
               {
                  nposicao [0] = i;
                  nposicao [1] = j - velocidade;
                  nposicao [2] = 3;
                  return nposicao;
               }
               else
               {
                  if(TemAlguem(velocidade, 4, posicao, campoBatalha))
                  {
                     nposicao [0] = i;
                     nposicao [1] = j + velocidade;
                     nposicao [2] = 4;
                     return nposicao;
                  }
                  else
                  {
                     nposicao [0] = i;
                     nposicao [1] = j;
                     nposicao [2] = 1;
                     return nposicao;
                  }
               }
            }
         }
      case 2:
         if(TemAlguem(velocidade, 2, posicao, campoBatalha))
         {
            nposicao [0] = i - velocidade;
            nposicao [1] = j;
            nposicao [2] = 2;
            return nposicao;
         }
         else
         {
            if(TemAlguem(velocidade, 1, posicao, campoBatalha))
            {
               nposicao [0] = i + velocidade;
               nposicao [1] = j;
               nposicao [2] = 1;
               return nposicao;
            }
            else
            {
               if(TemAlguem(velocidade, 3, posicao, campoBatalha))
               {
                  nposicao [0] = i;
                  nposicao [1] = j - velocidade;
                  nposicao [2] = 3;
                  return nposicao;
               }
               else
               {
                  if(TemAlguem(velocidade, 4, posicao, campoBatalha))
                  {
                     nposicao [0] = i;
                     nposicao [1] = j + velocidade;
                     nposicao [2] = 4;
                     return nposicao;
                  }
                  else
                  {
                     nposicao [0] = i;
                     nposicao [1] = j;
                     nposicao [2] = 2;
                     return nposicao;
                  }
               }
            }
         }
      case 3:
         if(TemAlguem(velocidade, 3, posicao, campoBatalha))
         
         {
            nposicao [0] = i;
            nposicao [1] = j - velocidade;
            nposicao [2] = 3;
            return nposicao;
         }
         else
         {
            if(TemAlguem(velocidade, 4, posicao, campoBatalha))
            {
               nposicao [0] = i;
               nposicao [1] = j + velocidade;
               nposicao [2] = 4;
               return nposicao;
            }
            else
            {
               if(TemAlguem(velocidade, 1, posicao, campoBatalha))
               {
                  nposicao [0] = i + velocidade;
                  nposicao [1] = j;
                  nposicao [2] = 1;
                  return nposicao;
               }
               else
               {
                  if(TemAlguem(velocidade, 2, posicao, campoBatalha))
                  {
                     nposicao [0] = i - velocidade;
                     nposicao [1] = j;
                     nposicao [2] = 2;
                     return nposicao;
                  }
                  else
                  {
                     nposicao [0] = i;
                     nposicao [1] = j;
                     nposicao [2] = 3;
                     return nposicao;
                  }
               }
            }
         }
      case 4:
         if(TemAlguem(velocidade, 4, posicao, campoBatalha))
         {
            nposicao [0] = i;
            nposicao [1] = j + velocidade;
            nposicao [2] = 4;
            return nposicao;
         }
         else
         {
            if(TemAlguem(velocidade, 3, posicao, campoBatalha))
            {
               nposicao [0] = i;
               nposicao [1] = j - velocidade;
               nposicao [2] = 3;
               return nposicao;
            }
            else
            {
               if(TemAlguem(velocidade, 2, posicao, campoBatalha))
               {
                  nposicao [0] = i - velocidade;
                  nposicao [1] = j;
                  nposicao [2] = 2;
                  return nposicao;
               }
               else
               {
                  if(TemAlguem(velocidade, 1, posicao, campoBatalha))
                  {
                     nposicao [0] = i + velocidade;
                     nposicao [1] = j;
                     nposicao [2] = 1;
                     return nposicao;
                  }
                  else
                  {
                     nposicao [0] = i;
                     nposicao [1] = j;
                     nposicao [2] = 4;
                     return nposicao;
                  }
               }
            }
         }
      default:
         nposicao [0] = i;
         nposicao [1] = j;
         nposicao [2] = qualLado[eu-1];
         return nposicao;
      }
   }
   
/**********************************************************************************************************************/
   
   static boolean TemAlguem (int intervalo, int direcao, int [] posicao, int [][] campoBatalha)
   {
      int contagem;
      int i = posicao [0];
      int j = posicao [1];
      switch(direcao)
      {
      case 1:
         if((i + intervalo) < NUMEROD)
         {
//            System.out.println("Ta dentro 1-"+(i + intervalo));
            contagem = 0;
            for(int nbloco = 0; nbloco<intervalo; nbloco++)
            {
               if(campoBatalha[i+(intervalo-nbloco)][j] == 0)
               {
                  contagem++;
               }
            }
            if(contagem == intervalo){return true;}
            else {return false;}
         }
         else {return false;}
      case 2:
         if((i-intervalo) >= 0)
         {
//            System.out.println("Ta dentro 2-"+(i-intervalo));
            contagem = 0;
            for(int nbloco = 0; nbloco<intervalo; nbloco++)
            {
               if(campoBatalha[i-(intervalo-nbloco)][j] == 0)
               {
                  contagem++;
               }
            }
            if(contagem == intervalo){return true;}
            else {return false;}
         }
         else {return false;}
      case 3:
         if((j-intervalo) >= 0)
         {
//            System.out.println("Ta dentro 3-"+(j-intervalo));
            contagem = 0;
            for(int nbloco = 0; nbloco<intervalo; nbloco++)
            {
               if(campoBatalha[i][j-(intervalo-nbloco)] == 0)
               {
                  contagem++;
               }
            }
            if(contagem == intervalo){return true;}
            else {return false;}
         }
         else {return false;}
      case 4:
         if((j+intervalo) < NUMEROD)
         {
//            System.out.println("Ta dentro 4-"+(j+intervalo));
            contagem = 0;
            for(int nbloco = 0; nbloco<intervalo; nbloco++)
            {
               if(campoBatalha[i][j+(intervalo-nbloco)] == 0)
               {
                  contagem++;
               }
            }
            if(contagem == intervalo){return true;}
            else {return false;}
         }
         else {return false;}
      }
      System.out.println("Erro em TemAlguem.");
      return false;
   }
}


Admin
Admin

Mensagens : 6
Data de inscrição : 02/04/2012

https://adsunifor.directorioforuns.com

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos