Página Inicial do Fórum > Java Básico

Math Random



Criar novo tópico   Responder tópico


  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Boa tarde à todos! Preciso de uma ajuda para começar continuar meu software. Preciso gerar uma sequencia de A a Y(TABELA ASCII-65 a 89) na math random, mas já tentei e não consegui. Preciso fazer um array bidimensional receber valores aleatórios e repetidos para fazer um jogo de memória. Não estou me achando, se alguém puder me ajudar agradeço muito...Obrigado!




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    "começar continuar meu software"?


    realmente, este é um bom motivo para postar em "dúvidas - português"
    mesmo assim, movido para java básico.
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Boa tarde à todos! Preciso de uma ajuda para começar continuar meu software. Preciso gerar uma sequencia de A a Y(TABELA ASCII-65 a 89) na math random, mas já tentei e não consegui. Preciso fazer um array bidimensional receber valores aleatórios e repetidos para fazer um jogo de memória. Não estou me achando, se alguém puder me ajudar agradeço muito...Obrigado!



    assumindo que quer gerar um char e que realmente a última letra a ser gerada é 'Y' e não 'Z':

    só para lembrar, Math.random já é meio antigo, melhor usar a classe Random, apesar que (nesse caso?) não deve fazer diferença.
    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    simu
    Novato 2011
    Boa tarde à todos! Preciso de uma ajuda para começar continuar meu software. Preciso gerar uma sequencia de A a Y(TABELA ASCII-65 a 89) na math random, mas já tentei e não consegui. Preciso fazer um array bidimensional receber valores aleatórios e repetidos para fazer um jogo de memória. Não estou me achando, se alguém puder me ajudar agradeço muito...Obrigado!



    assumindo que quer gerar um char e que realmente a última letra a ser gerada é 'Y' e não 'Z':

    [[]]




    Eu acho que na concepção de "alfabeto" dele,

    vai de A-Z depois K-W-Y
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Nesse intervalo consegui algo semelhante, //(int)(Math.random()*(89 - 65)+65);. Mas minha dúvida também é como repetir os números, por exemplo: Se tenho um jogo de memória, preciso de pares, que estou gerando conforme meu sorteio aleatório, mas é mais não repetir do que repetir uma vez...Estou imagindo assim, se tiver uma sugestão q fique mais fácil eu aceito. Muito obrigado!




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    Novato 2011
    mas é mais não repetir do que repetir uma vez...Estou imagindo assim, se tiver uma sugestão q fique mais fácil eu aceito. Muito obrigado!




    tradução por favor?
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Quero dizer que é mais fácil verificar se já existe um número igual na matriz para não adicionar outro. No meu caso eu tenho que fazer pares, por exemplo: 2 vezes(2), 2 vezes(3). ou 2 vezes(A), se for caracter.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    desconfio que necessita de outro algoritmo:
    bota todas as letras (cartas) inclusive repetidas numa lista e usa Collections.shuffle() para embaralhar.
    Em seguida é só retirar os elementos dessa lista.
    (Tópico já existente no fórum)
    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Exemplo:

    acho que entendi o porque de ir até 'Y' e não 'Z'
    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Primeiramente..Obrigado pela ajuda! Sim...é para distribuir pares aleatoriamente, mas não posso usar arraylist.. Preciso achar uma forma de fazer com matrizes bidimensionais e math random... preciso verificar se a peça está virada usando uma variavel boolean..Estou bem perdido no modo que vou fazer. Tenho em mente imprimir:

    1 2 3 4
    5 6 7 8

    Oito posições, certo? Aí a pessoa digita:
    '1' por exempo, vira a peça '1', escolhe outra:
    '3' vira, se é igual a escolha anterior soma 1 ponto para o jogador, se não vota a posição original e outro joga. Tem q ser mais ou menos assim. Sem tela, tudo console...




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Primeiramente..Obrigado pela ajuda! Sim...é para distribuir pares aleatoriamente, mas não posso usar arraylist.. Preciso achar uma forma de fazer com matrizes bidimensionais e math random... preciso verificar se a peça está virada usando uma variavel boolean..Estou bem perdido no modo que vou fazer. Tenho em mente imprimir:

    1 2 3 4
    5 6 7 8

    Oito posições, certo? Aí a pessoa digita:
    '1' por exempo, vira a peça '1', escolhe outra:
    '3' vira, se é igual a escolha anterior soma 1 ponto para o jogador, se não vota a posição original e outro joga. Tem q ser mais ou menos assim. Sem tela, tudo console...



    que bagunça:
    porque não pode usar ArrayList? Porque tem que ser matriz e Math.random?
    Eu não vou continuar tentando resolver o seu problema se não explicar todos os detalhes - é perda de tempo. Acho uma solução, perco tempo fazendo e testando um exemplo, para ENTÃO ficar sabendo que não pode ser desse jeito (já é a segunda tentativa). Com certeza não vou vir com a terceira solução para você dizer que, por exemplo, não pode usar multiplicação.

    OO
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Peço desculpas, não é por mal...Não posso usar pq é um trabalho e lá diz os recursos que posso usar...Eu acharia muito melhor fazer com tela, tudo legal, mas não posso...fiquei perdido por isso também..tudo console é confuso, dificulta muito no meu caso. Não vou postar o trabalho, pq ninguém tem a obrigação de fazer por mim, quero aprender também, não to só pela nota..por isso não postei todos os detalhes.. só queria uma ideia. Meu caso é o seguinte: Já fiz parte do trabalho, mas essa parte de apresentar a matriz como tabuleiro que está me complicando...não sei se é melhor forma a que postei no exemplo anterior, mas o fato é que tenho q montar algo só com arrays multidimensionais e math random....mas como exatamente, não sei ainda...Queria uma ideia...Peço desculpas novamente e agradeço seu esforço..sei que está tentando me ajudar...Obrigado!




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Peço desculpas, não é por mal...Não posso usar pq é um trabalho e lá diz os recursos que posso usar...Eu acharia muito melhor fazer com tela, tudo legal, mas não posso...fiquei perdido por isso também..tudo console é confuso, dificulta muito no meu caso. Não vou postar o trabalho, pq ninguém tem a obrigação de fazer por mim, quero aprender também, não to só pela nota..por isso não postei todos os detalhes.. só queria uma ideia. Meu caso é o seguinte: Já fiz parte do trabalho, mas essa parte de apresentar a matriz como tabuleiro que está me complicando...não sei se é melhor forma a que postei no exemplo anterior, mas o fato é que tenho q montar algo só com arrays multidimensionais e math random....mas como exatamente, não sei ainda...Queria uma ideia...Peço desculpas novamente e agradeço seu esforço..sei que está tentando me ajudar...Obrigado!



    Ideias, só com array e random:


    - usa um array para conter as cartas: normalmente letras, vazio se as cartas foram removidas



    - mostrar tabuleiro: mais ou menos como fez, as cartas fechadas como números, a aberta com as respectivas letra ou vazio se removido:

    ou, com coordenadas


    - para gerar as cartas: preenche o array e repete várias vezes: seleciona duas posições aleatórias usando o random e troca as respectivas cartas

    []

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Aquele modelo que postou é o que preciso, imaginei assim, mas não consigo montar aquela estrutura, t explico o pq.. Preencho o array bidimensional com math.random, mas não consigo controlar os pares, por exemplo: tenho um tabuleiro 4x4(16 peças), quando populo minha matriz como fazer para deixar somente 1 par para cada peça(q no meu caso poderia ser letras), ou seja, duas letras 'A', duas letras 'B'.... o random gera aleatoriamente, se fosse para não entrar nenhum igual na matriz seria mais fácil, mas tenho q ter sempre pares. Pensei em usar duas matrizes, uma como auxiliar, ou seja, crio uma 4x4 e uma 8x8 para receber duas vezes a 4x4...no caso a 4x4 não poderia repetir peças... Fiz alguns testes, mas não obtive sucesso..

    Olha só o código:

    for(linha=0; linha< meuArray.length;linha++){
    for( coluna=0; coluna < meuArray[linha].length;coluna++){
    meuArray[linha][coluna]= int) ('A' + Math.random()*('Y' - 'A' + 1));
    }
    }
    No caso pego uma sequencia aleatoria e preencho toda a matriz, mas não formo pares..essa é a dificuldade..isso que não estou conseguindo fazer...já tentei usar variavel auxiliar para guardar o último número do random....




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Aquele modelo que postou é o que preciso, imaginei assim, mas não consigo montar aquela estrutura, t explico o pq.. Preencho o array bidimensional com math.random, mas não consigo controlar os pares, por exemplo: tenho um tabuleiro 4x4(16 peças), quando populo minha matriz como fazer para deixar somente 1 par para cada peça(q no meu caso poderia ser letras), ou seja, duas letras 'A', duas letras 'B'.... o random gera aleatoriamente, se fosse para não entrar nenhum igual na matriz seria mais fácil, mas tenho q ter sempre pares. Pensei em usar duas matrizes, uma como auxiliar, ou seja, crio uma 4x4 e uma 8x8 para receber duas vezes a 4x4...no caso a 4x4 não poderia repetir peças... Fiz alguns testes, mas não obtive sucesso..

    Olha só o código:

    for(linha=0; linha< meuArray.length;linha++){
    for( coluna=0; coluna < meuArray[linha].length;coluna++){
    meuArray[linha][coluna]= int) ('A' + Math.random()*('Y' - 'A' + 1));
    }
    }
    No caso pego uma sequencia aleatoria e preencho toda a matriz, mas não formo pares..essa é a dificuldade..isso que não estou conseguindo fazer...já tentei usar variavel auxiliar para guardar o último número do random....



    quantas vezes... além de já ter no fórum - problema comum!

    É POR ISSO QUE ESCREVI: preenche a matriz com TODOS os valores que DEVEM APARECER, sem uso do random, e então misture esses valores. Reflete o caso real: você tem um conjunto de cartas, eventualmente ordenado, e esse é embaralhado.

    Exemplo besta:

    obviamente vai fazer isso com loop e não um a um como fiz APENAS para demonstrar.
    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Entendi seu raciocinio..mas como faço um 'for' recebendo AA, BB,CC, são meus pares correto? Isso ficará como carta virada por exemplo. Digamos que tenho o modelo como matriz, imprimi assim:

    1 2 3 4

    5 6 7 8

    Se digito '1' aparece 'A' por exemplo. Mas olha só: '1' e 'A', isso indica que eu teria q ter dois valores num índice da matriz. por exemplo posição[0][0] eu teria q ter '1' e 'A'. Digamos q eu preencha minha matriz de A a Y, se usar conversão de int e char com números da tabela ASCII eu terei '65,65' que é o par em int, se converto para Char, tenho AA, mas aí fica obvio meu tabuleiro...Ainda estou meio perido




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    *facepalm*


    quer um jeito mais fácil de fazer isso?






    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Entendi seu raciocinio..mas como faço um 'for' recebendo AA, BB,CC, são meus pares correto? Isso ficará como carta virada por exemplo. Digamos que tenho o modelo como matriz, imprimi assim:

    1 2 3 4

    5 6 7 8

    Se digito '1' aparece 'A' por exemplo. Mas olha só: '1' e 'A', isso indica que eu teria q ter dois valores num índice da matriz. por exemplo posição[0][0] eu teria q ter '1' e 'A'. Digamos q eu preencha minha matriz de A a Y, se usar conversão de int e char com números da tabela ASCII eu terei '65,65' que é o par em int, se converto para Char, tenho AA, mas aí fica obvio meu tabuleiro...Ainda estou meio perido



    Não complica tanto, por que armazenar duas letras juntas??!! (supondo que {ainda} é para fazer um jogo de memória)


    "laço for recebendo..."? quer dizer criando os pares?
    simples matemática (lembrando que um char é um número inteiro com outra representação)


    Não tem necessidade de armazenar os números (índices), cada posição tem seu número. Novamente é pura matemática.
    Mas, se facilitar a sua vida, armazene os números numa segunda matriz, mesmo esquema:

    []
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Obrigado...Estou estou testando aqui..está dando certo, faz os pares certinhos. Só uma dúvida, se for possível...Qual lógica da parte do código:
    (char)('A' + carta/2); Entendi q a cada passagem carta incrementa '1' e esse valor é dividido por '2', se fosse '3' repetiria 3 vezes o mesmo número. 'A' seria apartir de qual número quero, só não entendi direito a operação..quanto resta 0 na divisão ele não repete, é isso...???Obrigado!




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Obrigado...Estou estou testando aqui..está dando certo, faz os pares certinhos. Só uma dúvida, se for possível...Qual lógica da parte do código:
    (char)('A' + carta/2); Entendi q a cada passagem carta incrementa '1' e esse valor é dividido por '2', se fosse '3' repetiria 3 vezes o mesmo número. 'A' seria apartir de qual número quero, só não entendi direito a operação..quanto resta 0 na divisão ele não repete, é isso...???Obrigado!



    está certo, só não entendi a última frase.

    Isso é cálculo inteiro - em Java se ambos os lados de uma operação (+, -, *, /) forem int vai ser uma operação inteira e o resultado também vai ser int. Portanto se tiver 1/2 o resultado será 0 (o mesmo que 0/2); 2/2 = 1; 3/2 = 1 - deve dar para notar que um dado resultado sempre aparece duas vezes.
    Se dividir por 3, vai ter e repetições: 3/3=1, 4/3=1, 5/3=1, 6/3=2...
    Veja exemplo abaixo.

    Quanto as letras: em Java char é um número inteiro apenas com uma representação diferente - é composto de 2 bytes (16 bits) que são representados como texto usando Unicode. (Nota: para números menores que 128, é o mesmo que ASCII, portanto poderia ter usado 65 em vez de 'A'

    Talvez ajuda fazer um exemplo:

    resultado


    []
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Obrigado pela ajuda! Carlos, estou com outra dúvida: Fiz duas matrizes para fazer o jogo, uma matriz que recebe as peças em char('AA,BB'), mas acabei fazendo outra para imprimir o tabuleiro para a pessoa digitar um número para escolher, por exemplo:

    Matriz de peças(Cartas viradas).

    |A|A|B|B|
    |C|C|D|D|

    Matriz para println(impressão, peças que a pessoa visualiza e escolhe um n)

    |1|2|3|4|
    |5|6|7|8|

    Fiz assim: Se digita '1' ele pega esse valor e vai na outra matriz e verifica qual está na primeira posição(controlo por ciclos do for), se for 2 pego A ainda, se 3 B..e assim por diante.. Minha dúvida é: Estou tentando reimprimir a matriz de impressão a cada busca de peças, por exemplo: Se escolho número '2' vai na matriz de peças e traz o 'A', mas eu quero 'A' substitua o '2' na matriz de impressão, mas esbarro nas conversões, pois a segunda é matriz de int e a primeira char, tentei converter antes de substituir mas não deu certo...Se souber uma solução melhor, eu agradeço mais uma vez..Obrigado!




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Obrigado pela ajuda! Carlos, estou com outra dúvida: Fiz duas matrizes para fazer o jogo, uma matriz que recebe as peças em char('AA,BB'), mas acabei fazendo outra para imprimir o tabuleiro para a pessoa digitar um número para escolher, por exemplo:

    Matriz de peças(Cartas viradas).

    |A|A|B|B|
    |C|C|D|D|

    Matriz para println(impressão, peças que a pessoa visualiza e escolhe um n)

    |1|2|3|4|
    |5|6|7|8|

    Fiz assim: Se digita '1' ele pega esse valor e vai na outra matriz e verifica qual está na primeira posição(controlo por ciclos do for), se for 2 pego A ainda, se 3 B..e assim por diante.. Minha dúvida é: Estou tentando reimprimir a matriz de impressão a cada busca de peças, por exemplo: Se escolho número '2' vai na matriz de peças e traz o 'A', mas eu quero 'A' substitua o '2' na matriz de impressão, mas esbarro nas conversões, pois a segunda é matriz de int e a primeira char, tentei converter antes de substituir mas não deu certo...Se souber uma solução melhor, eu agradeço mais uma vez..Obrigado!



    faz a segunda matrriz com String - deve até ficar mais fácil no resto...

    [[]]

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Tens razão, mas fiz int para incrementar para gerar os números, por exemplo:

    numeros[linha][coluna]= contar;

    No caso contar é uma variavel int e números é a matriz de int(q seria transformada em String como vc escreveu)..mas String eu não incremento para imprimir o tabuleiro 1 até 10 por exemplo... Terei que declarar minha variavel contar para String para dar na minha matriz de String..mas no ciclo do for ele faria 1 na primeira vez, 11 na segunda, 111 na terceira...E não incrementa como número, digamos q ele concatena.... Posso tratar isso de q forma?




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Tens razão, mas fiz int para incrementar para gerar os números, por exemplo:

    numeros[linha][coluna]= contar;

    No caso contar é uma variavel int e números é a matriz de int(q seria transformada em String como vc escreveu)..mas String eu não incremento para imprimir o tabuleiro 1 até 10 por exemplo... Terei que declarar minha variavel contar para String para dar na minha matriz de String..mas no ciclo do for ele faria 1 na primeira vez, 11 na segunda, 111 na terceira...E não incrementa como número, digamos q ele concatena.... Posso tratar isso de q forma?



    MAS não é problema converter de int para String:

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    simu


    [[]]





    não fica melhor?


    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    sekkuar
    simu
    ...





    não fica melhor?



    NÃO, NUNCA.... eu acho essa forma muito pior, quase um crime, só um pouco menos ruim que não fazer o printStackTrace (ESSE é crime num programa pago).

    O motivo não é por causa de otimização, mas por não representar o que se está querendo fazer.
    Está concatenando um número com uma String, mas realmente quer converter um int numa String.
    Se fosse realmente para concatenar como no exemplo abaixo, tudo bem:

    Eu nunca faria isso apenas para fazer uma conversão!

    mas é só a minha própria opinião/convenção...

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    certo.

    então no caso


    tudo bem?


    Mas só pra converter não?

    Eu entendo seu ponto mas, pense só.
    Toda String contem uma String vazia, certo?

    Qualquer objeto String .contains("") sempre vai retornar true.

    Então no fundo, concatenar com uma String vazia também não é "converter"?


    no caso, você cria uma String que é a concatenação de uma String vazia com um numero.

    Se você usar o toString ou valueOf, vai acabar fazendo a mesma coisa. (não apenas o mesmo resultado)
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    sekkuar
    certo.

    então no caso


    tudo bem?


    Mas só pra converter não?

    Eu entendo seu ponto mas, pense só.
    Toda String contem uma String vazia, certo?

    Qualquer objeto String .contains("") sempre vai retornar true.

    Então no fundo, concatenar com uma String vazia também não é "converter"?


    no caso, você cria uma String que é a concatenação de uma String vazia com um numero.

    Se você usar o toString ou valueOf, vai acabar fazendo a mesma coisa. (não apenas o mesmo resultado)



    Achei esse código meio sobrecarregado, mas tudo bem usar o + para gerar a String (aqui tenho mais problema com o ++, mas ai já é problema meu).

    quanto ao resto não sei se entendi direito:

    "String conter String vazia" - sim, mas e dai?

    "concatenar com String vazia também não é converter?" - para mim (e para o compilador) não é conversão, apesar do mesmo resultado! "2+2" não é o mesmo que "2*2", apesar do mesmo resultado (exemplo fajuto, eu sei).

    "cria uma String que é a concatenação de..." - exatamente: é concatenação, não é conversão!

    "toString ou valueOf" - não é concatenação, é conversão exlicitamente (pensando mais no programador lendo o código).


    No fim é problema de convenção, talvez até apenas de "estilo" - acho feio - semelhante com o uso de "++", prefiro usar um "+=" numa linha separada se possível (obviamente não no for)...

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Como eu faria para organizar melhor meu programa, o Sekkuar comentou acima uma outra forma de fazer, que seria criando uma classe carta ou peça? No caso, criando um char para o valor da peça e talvez um boolean para ver se está virada ou não...talvez fosse mais fácil fazer, mas não conheço muito orientação a objetos, mas sei que é muuuto importante, estou estudando conforme da tempo...Obrigado!!




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Como eu faria para organizar melhor meu programa, o Sekkuar comentou acima uma outra forma de fazer, que seria criando uma classe carta ou peça? No caso, criando um char para o valor da peça e talvez um boolean para ver se está virada ou não...talvez fosse mais fácil fazer, mas não conheço muito orientação a objetos, mas sei que é muuuto importante, estou estudando conforme da tempo...Obrigado!!



    é uma solução melhor:

    1 - só vai necessitar de uma única matriz, não tem que ficar sincronizando diferentes matrizes,...

    2 - apesar de aparentemente (inicialmente) mais complicado, no fim vai ficar mais fácil dar manutenção ou extender o programa (exemplo interface gráfica)

    3 - quanto mais grande e complicado o programa, melhor usar orientação a objetos.



    Mas existem outros possíveis objetos, conforme necessidade: Tabuleiro, Jogador, Estatistica (Pontos)...

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    é o modo mais correto...Como eu faria assim? Poderia dar um exemplo, se for possível claro....Obrigado Carlos!




  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 24/08/2011 15:18:11

    Exemplo? Assim ué

    sekkuar





    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    é o modo mais correto...Como eu faria assim? Poderia dar um exemplo, se for possível claro....Obrigado Carlos!



    A primeira coisa a fazer seria uma análise do problema, principalmente para definir quais os objetos, quais as propriedades e qual a funcionalidade de cada e como ele interagem. Eventualmente fazendo um diagrama (exemplo UML,">http://pt.wikipedia.org/wiki/UML"">UML, ou algo mais simples, só como idéia).

    Exemplo:



    Mas isso é você que tem que fazer, você conhece o problema, as restrições, dados de entrada e saída, e a funcionalidade desejada.

    [[]]

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Explique melhor! Uma matriz com mesmo nome da classe, minha dúvida é sobre a interação de todos esses objetos entre si....Que objeto chama outro e de que forma funcionar? Talvez na sua visão isso esteja muito claro, saberá como fazer, mas na minha ainda está muito confuso essa interação toda.




  1. simu
    Posts:9416


    Comment Arrow

    Publicado em: 24/08/2011 15:51:00

    Novato 2011
    Explique melhor! Uma matriz com mesmo nome da classe, minha dúvida é sobre a interação de todos esses objetos entre si....Que objeto chama outro e de que forma funcionar? Talvez na sua visão isso esteja muito claro, saberá como fazer, mas na minha ainda está muito confuso essa interação toda.



    O que quer dizer com "Uma matriz com mesmo nome da classe, minha dúvida é sobre a interação de todos esses objetos entre si"?
    Principalmente a primeira parte que não sei de onde você tirou!

    Na minha visão não tem nada claro, não conheço os detalhes desse projeto (leia última mensagem), não tenho tempo e nem os detalhes para analisar esse problema. Não é um conhecimento que se tem, é necessário construir o "modelo", a estrutura dos objetos conforme necessário.

    [[]]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Novato 2011
    Posts:34


    Comment Arrow

    Publicado em: 24/08/2011 15:14:44

    Só tenho a agradecer a vocês pela ajuda... Sei q é dificil para vocês ficarem imaginando situações para ajudar, mas também é dificil para mim ficar pedindo ajuda para muita coisa, no começo é díficil...Realmente queria sentar e fazer isso com tranquilidade, mas meu tempo é curto e meu conhecimento em java é fraco...infelizmente tenho prazo para entregar, por isso pedi muita ajuda...Não tem muitos detalhes...é um jogo de memória, só queria fazer mais organizado da forma q o colega deu como sugestão..Obrigado!!!!




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Básico