Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

.EXO

tabuleiros

Recommended Posts

.EXO

eu tenho um progama que carrega um tabuleiro de n por n elementos. eu gostava de saber como é que faço para quando carregar um tabuleiro ele aparecer com cores.

tipo... carrego e os elementos têm fundo de cor branca e quando seleciono ficam de cor preta por exemplo.

Share this post


Link to post
Share on other sites
pwseo

Primeiro precisas de arranjar suporte para cores no terminal, e isso depende do sistema operativo que estás a utilizar. Eu estou em linux, por isso utilizaria o ncurses (que além de suporte para cores, traz outras coisas boas, googla por ele).

Depois tens que definir uma função para mostrar o tabuleiro, e também tens que interceptar as teclas de direcção (pressupondo que a selecção é feita através do teclado).

Ao carregares nas teclas, o programa tem que saber qual o item actualmente seleccionado e, com base na tecla pressionada, tem que actualizar o estado dos itens de forma a que o novo item esteja seleccionado e o anterior já não esteja (com um simples bool ou até mesmo um int consegues isto).

E finalmente, de cada vez que uma tecla de direcção é pressionada tens que redesenhar os itens um a um, para que a nova selecção seja apresentada (ou se quiseres ser mais eficiente, redesenhas apenas o novo item seleccionado e o anteriormente seleccionado).

O que estás a pedir não é propriamente trivial, por isso sugiro-te que investigues um pouco sobre o assunto... não sei como é em Windows, mas penso que a lib pdcurses funcionava e é compatível com ncurses (o código ficaria praticamente igual, senão mesmo mesmo igual).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.