Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1.  Making a Tic-Tac-Toe Game (Sudhanshu Jaiswal)
   2. Re:  Understanding the function monad ((->) r) (Benjamin Edwards)
   3. Re:  Making a Tic-Tac-Toe Game (Theodore Lief Gannon)
   4.  Type error when using splitOn function. (S. H. Aegis)


----------------------------------------------------------------------

Message: 1
Date: Tue, 21 Feb 2017 22:05:25 +0530
From: Sudhanshu Jaiswal <sudhanshuj...@gmail.com>
To: beginners@haskell.org
Subject: [Haskell-beginners] Making a Tic-Tac-Toe Game
Message-ID:
        <cac2ygferkbbfbubxpsm-7rmkevpnc9ofhufrdswnzpbn22y...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Also called as Noughts and crosses or Xs and Os.

Hello everyone,

How do I start making a *Two Player* Tic Tac Toe game in Haskell?

The program basically has to show the 3*3 grid as coordinates and let each
player choose his coordinates in his turn by entering the coordinates of
the required cell. I also want to be able to check if a player has won and
display it once the winning move has been made or the same for a Draw.

What have I done? - I have read Learn You a Haskell till Modules and know
basic I/O.

I don't want the code instead, I am interested in learning stuff and trying
problems which would lead me to get the intuition and ability to make the
game by myself.

I would be thankful if you folks could direct me to related problems which
I could do or some advice as to how I should go about implementing such a
program.
--
Sudhanshu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20170221/c3e016d7/attachment-0001.html>

------------------------------

Message: 2
Date: Tue, 21 Feb 2017 18:06:00 +0000
From: Benjamin Edwards <edwards.b...@gmail.com>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] Understanding the function monad
        ((->) r)
Message-ID:
        <can6k4njpnuyg2mrrrtwj_zvto1vwocmzq18ewc8r08ofsak...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

I did, sorry!

On Tue, 21 Feb 2017 at 15:53 Olumide <50...@web.de> wrote:

> On 21/02/2017 15:08, Benjamin Edwards wrote:
> > The thing that you might also be missing is that function application
> > binds tightest. Hopefully the parenthesis that Rahul has added help you
> > out there. If not:
> >
> > \w -> f (h w) w
> >
> > f will be applied to the result of (h r) which yields another function,
> > which is then applied to r
>
> Did you mean to write (h w)?
>
> - Olumide
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20170221/f698420c/attachment-0001.html>

------------------------------

Message: 3
Date: Tue, 21 Feb 2017 23:18:55 -0800
From: Theodore Lief Gannon <tan...@gmail.com>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] Making a Tic-Tac-Toe Game
Message-ID:
        <cajopsubnoigpo2oxn92nbxwjhhlp8xngrobi-xhsa7+tw2m...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

I know you said you didn't want code, but I think this will be helpful.
Here is an example of what the very top of your logic might reasonably look
like.

main :: IO ()
main = do
  someInitialization
  config <- someConfigurator
  result <- gameLoop $ makeInitialState config
  print result

gameLoop :: GameState -> IO GameResult
gameLoop gameState =
  let maybeEndState = discoverEndState gameState
  in case maybeEndState of
    Just endState -> return endState
    Nothing -> do
      playerMove <- fetchInput gameState
      gameLoop $ makeNextState playerMove


On Tue, Feb 21, 2017 at 8:35 AM, Sudhanshu Jaiswal <sudhanshuj...@gmail.com>
wrote:

> Also called as Noughts and crosses or Xs and Os.
>
> Hello everyone,
>
> How do I start making a *Two Player* Tic Tac Toe game in Haskell?
>
> The program basically has to show the 3*3 grid as coordinates and let each
> player choose his coordinates in his turn by entering the coordinates of
> the required cell. I also want to be able to check if a player has won and
> display it once the winning move has been made or the same for a Draw.
>
> What have I done? - I have read Learn You a Haskell till Modules and know
> basic I/O.
>
> I don't want the code instead, I am interested in learning stuff and
> trying problems which would lead me to get the intuition and ability to
> make the game by myself.
>
> I would be thankful if you folks could direct me to related problems which
> I could do or some advice as to how I should go about implementing such a
> program.
> --
> Sudhanshu
>
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20170221/7205ce91/attachment-0001.html>

------------------------------

Message: 4
Date: Wed, 22 Feb 2017 17:33:01 +0900
From: "S. H. Aegis" <shae...@gmail.com>
To: "beginners@haskell.org" <beginners@haskell.org>
Subject: [Haskell-beginners] Type error when using splitOn function.
Message-ID:
        <CAJp-NqxW=cr-kbv8hecgv-rvbvckdzn88vgsixx5bb8vciq...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hello.
I'm new to Haskell and this is the first time I use Data.Text module.
And using stack on OSX 10.12.3
I'm try several times, but fail. and I don't understand what error message
says.
How can I fix this?
Thank you a lot.

Code is

Main.hs :
module Main where
import Lib

main :: IO ()
main = do
        sam <- readSam
        rxDxData <- readCSV
        print $ makeRxDxList rxDxData

Lib.hs :
module Lib
--    ( someFunc
--    ) where
      where

import Data.Text as T
import Text.Regex.TDFA
import Prelude hiding (take, drop, map, lines)

type RowSAM = Text
type RowRxDx = Text

--makeRxDxList :: Functor f => f Text -> f [Text]
--makeRxDxList rowRxDx = fmap (\x -> splitOn (pack ",") x) rowRxDx  -- This
code pass a compile.
makeRxDxList rowRxDx = map (\x -> splitOn (pack ",") pack x) $ lines rowRxDx
(whole code is below...)

Error Message is
/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:35: error:
    • Couldn't match expected type ‘Char -> Char’
                  with actual type ‘[Text]’
    • The function ‘splitOn’ is applied to three arguments,
      but its type ‘Text -> Text -> [Text]’ has only two
      In the expression: splitOn (pack ",") pack x
      In the first argument of ‘map’, namely
        ‘(\ x -> splitOn (pack ",") pack x)’

/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:54: error:
    • Couldn't match expected type ‘Text’
                  with actual type ‘String -> Text’
    • Probable cause: ‘pack’ is applied to too few arguments
      In the second argument of ‘splitOn’, namely ‘pack’
      In the expression: splitOn (pack ",") pack x
      In the first argument of ‘map’, namely
        ‘(\ x -> splitOn (pack ",") pack x)’

/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:64: error:
    • Couldn't match expected type ‘Text’ with actual type ‘[Text]’
    • In the second argument of ‘($)’, namely ‘lines rowRxDx’
      In the expression:
        map (\ x -> splitOn (pack ",") pack x) $ lines rowRxDx
      In an equation for ‘makeRxDxList’:
          makeRxDxList rowRxDx
            = map (\ x -> splitOn (pack ",") pack x) $ lines rowRxDx
------------------------------------------------------------------------------------------------------
Lib.hs
module Lib
--    ( someFunc
--    ) where
      where

import Data.Text as T
import Text.Regex.TDFA
import Prelude hiding (take, drop, map, lines)

type RowSAM = Text
type SAM = [Text]
type Case = Text
type RowRxDx = Text
type RxDx = [Text]
type RxDxList = [[Text]]
type Rx = Text
type Dx = Text
type MediName = Text
type Message = Text
type Date = Text
type PtName = Text

--makeRxDxList :: Functor f => f Text -> f [Text]
--makeRxDxList rowRxDx = fmap (\x -> splitOn (pack ",") x) rowRxDx
makeRxDxList rowRxDx = map (\x -> splitOn (pack ",") pack x) $ lines rowRxDx

pickupMediName :: RxDx -> MediName
pickupMediName rxDx = rxDx !! 0

pickupDx :: RxDx -> Dx
pickupDx rxDx = rxDx !! 2

pickupRx :: RxDx -> Rx
pickupRx rxDx = rxDx !! 1

pickupPtName :: Case -> PtName
pickupPtName ptCase = take 3 $ drop 45 ptCase

pickupCaseDate :: Case -> Date
pickupCaseDate ptCase = take 8 $ drop (348 + 2) ptCase

isErrorRxDx :: Rx -> Dx -> Case -> Bool
isErrorRxDx rxCode dxCode ptCase =
    case isExistRx rxCode ptCase of
        True  -> if (isExistDx dxCode ptCase) then False else True
        False -> False

isExistDx :: Dx -> Case -> Bool
isExistDx dxCode ptCase = (unpack ptCase) =~ (unpack dxCode)

isExistRx :: Rx -> Case -> Bool
isExistRx rxCode ptCase = rxCode `isInfixOf` ptCase

splitIntoCase :: RowSAM -> SAM
splitIntoCase = splitOn $ pack "AH021"

readCSV :: IO Text
readCSV = pack <$> readFile
"/Users/shaegis/Documents/Haskell/samChecker3/RxDxData.csv"

readSam :: IO Text
readSam = pack <$> readFile
"/Users/shaegis/Documents/Haskell/samChecker3/BoHomUTF8.dat"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20170222/a1907d73/attachment.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


------------------------------

End of Beginners Digest, Vol 104, Issue 13
******************************************

Reply via email to