Luch8 Posted November 14, 2009 at 07:16 PM Report Share #296194 Posted November 14, 2009 at 07:16 PM 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... Link to comment Share on other sites More sharing options...
Baderous Posted November 14, 2009 at 07:23 PM Report Share #296195 Posted November 14, 2009 at 07:23 PM Tens de criar uma instância de Show para o teu tipo Tabuleiro. Link to comment Share on other sites More sharing options...
Luch8 Posted November 14, 2009 at 07:36 PM Author Report Share #296197 Posted November 14, 2009 at 07:36 PM 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 Link to comment Share on other sites More sharing options...
Baderous Posted November 14, 2009 at 07:48 PM Report Share #296200 Posted November 14, 2009 at 07:48 PM 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 Link to comment Share on other sites More sharing options...
Luch8 Posted November 14, 2009 at 08:02 PM Author Report Share #296202 Posted November 14, 2009 at 08:02 PM 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) = [[' '],[' '],[' '], [' '] [' '],[' '],[' '], [' '] [' '],[' '],[' '], [' '] [' '],[' '],[' '], [' '] [' '],[' '],[' '], [' '] [' '],[' '],[' '], [' '] [' '],[' '],[' '], [' ']] Link to comment Share on other sites More sharing options...
Baderous Posted November 14, 2009 at 08:06 PM Report Share #296203 Posted November 14, 2009 at 08:06 PM 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. Link to comment Share on other sites More sharing options...
Luch8 Posted November 14, 2009 at 08:14 PM Author Report Share #296205 Posted November 14, 2009 at 08:14 PM 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? Link to comment Share on other sites More sharing options...
Baderous Posted November 14, 2009 at 08:18 PM Report Share #296207 Posted November 14, 2009 at 08:18 PM 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. Link to comment Share on other sites More sharing options...
Luch8 Posted November 14, 2009 at 08:25 PM Author Report Share #296208 Posted November 14, 2009 at 08:25 PM 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.. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now