1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida ao gerar nºs para Sudoku

Discussão em 'Programação' iniciada por bloodrider, 19 de Junho de 2007. (Respostas: 5; Visualizações: 1031)

  1. bloodrider

    bloodrider Power Member

    Boas! Sou novo aqui por estas bandas :P

    Tenho um trabalho para uma cadeira, fazer o sudoku. Andei a pesquisar (foi quando encontrei este fórum) e fui estudando os códigos que encontrei.

    Fiz o programa de raiz, e agora surgiu-me dois erros(o compilador não detecta erros de sintaxe! uso o Dev-C++):

    1- O utilizador pode escolher para aparecerem alguns números aleatórios de inicio no sudoku. Funciona tudo (os números são aleatórios, aparecem em posições aleatórias), o problema é que nesta alturar, enquanto está a gerar, a aplicação fecha-se "sozinha". Se for poucos números, até 3-4, não há problema, até já conseguiu gerar 6, 21, 11, 17 números, mas pronto, para mais de 5 números na maioria das vezes o programa fecha. Penso que o problema deve estar na função gera() ou na verifica().

    2- Se iniciar o jogo com tabuleiro vazio, e o primeiro numero inserido for um 1 na linha 1, na coluna 1, o jogo fecha-se sozinho(já aconteceu começar com a matriz vazia, pedir um número, e este gerar um 1 na 1x1!!!!, o problema estará na função inserir()?).

    Aqui está o código:
    Código:
    /* */
    
    
    
    
    [code]
    Se alguém me pudesse ajudar, agradecia!
     
    Última edição: 22 de Junho de 2007
  2. raVemjr

    raVemjr I'm cool cuz I Fold

    Digo-te já que deves comentar isso tudo...metes uns cabeçalhos praí e tá a andar...
     
  3. ngr

    ngr

    Um dos erros que vi foi na n_rand(), chamada pela esc_sel() no modo avançado ou personalizado. Se o programa sortear x = 0 a função não devolve nada no else (ou devolve lixo que está na memória). O que se calhar querias meter era return n_rand(); mas podias devolver rand()%9+1 e não tinhas metade do trabalho. Vê lá o que isso resolve :Whatever:
     
  4. bloodrider

    bloodrider Power Member

    Pois comentários ... he he não estou habituado :P mas tenho que me habituar!

    ngr, tinhas razão, isso já ajudou :)

    Entretanto já consegui resolver os problemas, apenas não estou a conseguir gerar muitos números, a partir de vinte e tais números fica mesmo lento, ou nem gera. Na conversa com colegas meus, que usaram mais ou menos o mesmo tipo de raciocínio, dizem que só gera até 65 números, depois kaputzzzz.

    Vou actualizar o código anterior para verem ;)
     
  5. raVemjr

    raVemjr I'm cool cuz I Fold

    Tenho que ler o código...entretanto, estás a usar memória dinâmica? Se não podes estar a encher a memória do PC...

    Costumo dar este conselho...tenta um debugger, ou então faz o teu debugger: em cada zona do cód que geres um núm, faz um printf a dar informações sobre variáveis de estado e etc., e mete uma tecla para continuar...pode ser que ajude...
     
  6. bloodrider

    bloodrider Power Member

    Memória dinâmica, nops. Mas penso que da maneira como as variáveis estão determinadas que não há problema...?

    vou ver o código com mais atenção ;)


    Podem fechar/apagar o tópico ;)
     
    Última edição: 22 de Junho de 2007

Partilhar esta Página