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

Luch8

Quebra de linha

9 mensagens neste tópico

Boa tarde.. preciso de uma pequena grande ajudinha...  :-[

preciso de fazer algo deste género:

[[' '],[' '],[' '],[' ']

[' '],[' '],[' '],[' ']

[' '],[' '],[' '],[' ']]

e para tal preciso de uma funçao que me dê uma quebra de linha.. um "\n"

é para criar um 4 em linha.. isso seria para desenhar o tabuleiro...

tenho alguma urgencia  :dontgetit:

muito obrigado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de criar uma instância de Show para o teu tipo Tabuleiro.

podes ajudar um pouco mais pf?? tenho haskell há menos de 2 semanas xD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se tens o teu tabuleiro definido através de um "data", para definires uma instância de Show (que serve para mostrar o tabuleiro de uma forma personalizada por ti, como é o caso) fazes:

data Tab a = Tab [[a]]

instance Show a => Show (Tab a) where
show (Tab t) = ... -- aqui defines como o teu tabuleiro vai ser mostrado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entao o codigo para representar o tabuleiro seria:

module Segmentos where

data Tab a = Tab [[Char]]

instance Show a => Show (Tab a)

                  where show (Tab t) = [[' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']

                                                      [' '],[' '],[' '], [' ']]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, isso iria definir um tabuleiro de 7x4, em que não estás a mostrar nenhuma informação do tabuleiro, e além disso se alterasses o nº de colunas/linhas do tabuleiro, essa alteração não iria ser mostrada.

Mas para quem só tem 2 semanas de Haskell, isto já são assuntos mais avançados, acho que estás a cometer um erro de iniciante que é querer transpor para o modelo de dados a representação visual do teu produto final.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas para quem só tem 2 semanas de Haskell, isto já são assuntos mais avançados, acho que estás a cometer um erro de iniciante que é querer transpor para o modelo de dados a representação visual do teu produto final.

sim.. deves ter razao...

mas preciso de ter o trabalho feito..

desculpa estar a incomodar mas qual seria a forma correcta de "descrever" o tabuleiro?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso agora depende. Uma das formas é descreveres o tabuleiro como uma lista de listas, por exemplo. Isso agora já vai depender da forma como estás a implementar o problema. Se já tens os tipos de dados criados e se o que queres mesmo é ver o tabuleiro daquela forma no interpretador/compilador quando executas uma determinada função sobre ele, então a forma que eu indiquei através do show é a correcta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tinha feito isto:

jogada :: a -> Int -> [[Char]]

jogada quadro x | x==1 = [['x'],[' '],[' '], [' ']]

                          | x==2 = [[' '],['x'],[' '], [' ']]

                          | x==3 = [[' '],[' '],['x'], [' ']]

                  | x==4 = [[' '],[' '],[' '], ['x']]

                          | x==7 = [['o'],[' '],[' '], [' ']]

                          | x==8 = [[' '],['o'],[' '], [' ']]

                          | x==9 = [[' '],[' '],['o'], [' ']]

                          | x==0 = [[' '],[' '],[' '], ['o']]

para que cada tecla [1..4] e [7..0] funcionassem como forma de colocar uma peça.. com que entao isto tá errado?

:S nao percebo nada disto..  :wallbash:

0

Partilhar esta mensagem


Link 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