Hallo, Ich bin noch ein ziemlicher Anfänger in Haskell und wollte Schnick Schnack Schuck, hat natürlich nicht so geklappt wie ichs wollte; Parse error in pattern, das case zeug ist wohl falsch, aber keine Ahnung was, sind bestimmt auch noch einige andere Fehler drin:
import System.Random
main = do putStrLn \\\"Hallo! \\\\n, nimmst du Brunnen, Stein, Schere oder Papier?\\\" auswahl <- getLine zufallszahl <- randomRIO(1,4) putStrLn $ \\\"Du hast \\\" ++ auswahl ++ \\\",\\\\n der Gegner hat \\\" ++ gegAuswahl zufallszahl ++ \\\" gewaehlt\\\" print ergebnis
gegAuswahl :: Int -> String gegAuswahl z | z==1 = \\\"Brunnen\\\" | z==2 = \\\"Stein\\\" | z==3 = \\\"Schere\\\" | z==4 = \\\"Papier\\\"
gewonnen = \\\"Du hast gewonnen, ich bin stolz auf dich!!!\\\"
ergebnis = case (auswahl, gegAuswahl) of (\\\"Brunnen\\\", \\\"Stein\\\") || (\\\"Brunnen\\\", \\\"Schere\\\") -> gewonnen of (\\\"Stein\\\", \\\"Schere\\\") -> gewonnen of (\\\"Schere\\\", \\\"Papier\\\") -> gewonnen of (\\\"Papier\\\", \\\"Brunnen\\\") || (\\\"Papier\\\", \\\"Stein\\\") -> gewonnen of (auswahl, auswahl) -> \\\"Unentschieden\\\" of (_, _) -> \\\"Leider verloren...\\\"
Dankeschön (-:
edit: habe das case zeug durch guards ersetzt, aber ich kann die Variable auswahl aus dem IO zeug nicht benutzen, (wie) kann man das?
import System.Random
main = do putStrLn \"Hallo! \\n, nimmst du Brunnen, Stein, Schere oder Papier?\" auswahl <- getLine zufallszahl <- randomRIO(1,4) putStrLn $ \"Du hast \" ++ auswahl ++ \",\\n der Gegner hat \" ++ gegAuswahl zufallszahl ++ \" gewaehlt\" print ergebnis
gegAuswahl :: Int -> String gegAuswahl z | z==1 = \"Brunnen\" | z==2 = \"Stein\" | z==3 = \"Schere\" | z==4 = \"Papier\"
gewonnen = \"Du hast gewonnen, ich bin stolz auf dich!!!\"
ergebnis | z == (\"Brunnen\", \"Stein\") || z == (\"Brunnen\", \"Schere\") = gewonnen | z == (\"Stein\", \"Schere\") = gewonnen -- of (\"Schere\", \"Papier\") -> gewonnen -- of (\"Papier\", \"Brunnen\") || (\"Papier\", \"Stein\") -> gewonnen -- of (auswahl, auswahl) -> \"Unentschieden\" -- of (_, _) -> \"Leider verloren...\" where z = (auswahl, gegAuswahl) |