Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

link

apagar ecra e executavel

Mensagens Recomendadas

link

Cá estou eu outra vez, desta vez as dúvidas são as seguintes,

eu queria que por exemplo quando seleccionasse a opção desejada apagasse o menu e mostra-se a opção, e que a cada jogada que fizesse aquilo apagava o tabuleiro anterior e actualiza-se com o novo, ja estive a pesquisar na net mas infelizmente nao encontrei nada.

A outra é a seguinte, quando executo o .hs directamente e digito "main" o jogo decorre como eu quero, mas quando eu faço o executavel (ghc -o Nome --make nome.hs) isto mostra me o menu mas quando escolho a opção jogar nao me aparece a suposta linha "Indica a coluna onde quer jogar" em vez disso não me aparece nada e escrevo o numero da coluna e so depois é que aparece o texto e o tabuleiro desenhado, vou por aqui dois prints:

A executar o .hs

print1yf0.th.jpg

No executável gerado

print2vk4.th.jpg

Agradecia mais uma vez a vossa ajuda.

Cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
link

hmm eu tinha pensado nisso mas achei que podia haver uma opção do tipo clrscr() no haskell, obrigado mais uma vez pela ajuda

Cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Betovsky

Podes evocar o comando do SO para limpar a consola.

No Windows é o cls no linux o clear, acho eu...

Para evocares o comando só precisas de fazer import ao System.Cmd

E depois no código podes definir a tua função de limpar, visto que estás em windows por exemplo

clrscr = system "cls"


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mpalhas

Deves precisar de forçar a escrita do texto que enviaste para o stdout. Um hFlush deve resolver isso.

a sugestão da nossa prof para resolver isso foi usar no inicio do código a instrução

hSetBuffering stdout NoBuffering

eu também tinha esse problema e comigo resultou

quanto à função de limpar, eu achei preferivel escrever uns quantos '\n' (o suficiente para ocupar todas as linhas da consola maximizada). o problema desse system "cls" é que em linux e windows os comandos são diferentes

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Betovsky

hSetBuffering stdout NoBuffering

eu também tinha esse problema e comigo resultou

Porque por default, está para a linha.
quanto à função de limpar, eu achei preferivel escrever uns quantos '\n' (o suficiente para ocupar todas as linhas da consola maximizada). o problema desse system "cls" é que em linux e windows os comandos são diferentes

Podes saber em que sistema a tua aplicação está a correr através da função 'os' do módulo System.Info, por exemplo

clrscr = if os == "mingw32"
         then system "cls" 
         else system "clear"


"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
link

Eu para forçar a escrita fiz um import ao System.IO ( stdout, hFlush ) e depois por baixo da linha que queria escrever punha hFlush stdout, resultou assim também.

Quanto ao apagar o ecra, ja testei isso e resultou perfeitamente, muito obrigado Betovsky.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
t0xe

Porque por default, está para a linha.

Podes saber em que sistema a tua aplicação está a correr através da função 'os' do módulo System.Info, por exemplo

clrscr = if os == "mingw32"
         then system "cls" 
         else system "clear"

Boa!!! Ja tentei e está óptimo! Como diria o JBB "Bem jogado!" lolol


^_^

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.