Forumet - Programmeringsutmaning mini: rövarspråket

Programmeringsutmaning mini: rövarspråket

6739 0 44
I en avlägsen forntid hade vi ju ett par kodningsutmaningar här på UM; det var kul, även om det inte vart särskilt mycket vettigt producerat. Finns det intresse för att dra igång någonting sådant igen här?

För att mäta intresset kör vi ett litet test.

Utmaning till alla UM:s hobbykodare: skriv ett program som översätter svenska till rövarspråk. Om dagens ungdom inte känner till rövarspråket, så är det det språk som erhålls om man byter ut alla konsonanter k mot k + "o" + k; exempelvis blir papperskorg "popapoppoperorsoskokororgog."

Du får använda vilket språk du vill och skriva programmet på vilket sätt du vill. Det enda kravet är att programmet ska läsa svenska från standard input, och skriva rövarspråk till standardoutput. Vill du dessutom lägga till ett GUI-läge, frekvensanalys, fula ord-filter och andra extrapåhitt är det upp till dig.

Pluspoäng för kreativa lösningar och koncis, läsbar kod.
Gentlernen:

Finns det intresse för att dra igång någonting sådant igen här?


Definitivt! Väldigt roligt initiativ!

Här är mitt bidrag i Python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
consonants = ["b","c","d","f","g","h","j","k","l","m","n","p","q","r",
"s","t","v","w","x","z", "B","C","D","F","G","H","J","K","L","M",
"N","P","Q","R","S","T","V","W","X","Z"]
instring = unicode(raw_input("Skriv fras att översätta:
"), "utf-8")
outstring = ""
for char in instring:
if char in consonants:
outstring += char+"o"+char.lower()
else:
outstring += char

print outstring
Och för att jag har fruktansvärt tråkigt, en variant som läser upp strängen åt dig:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
consonants = ["b","c","d","f","g","h","j","k","l","m","n","p","q","r",
"s","t","v","w","x","z", "B","C","D","F","G","H","J","K","L","M",
"N","P","Q","R","S","T","V","W","X","Z"]
instring = unicode(raw_input("Skriv fras att översätta:
"), "utf-8")
outstring = ""
for char in instring:
if char in consonants:
outstring += char+"o"+char.lower()
else:
outstring += char

print outstring
try:
subprocess.Popen(['espeak', '-vsv', outstring ])
except:
pass

Spana också in:

Gentlernen:

Finns det intresse för att dra igång någonting sådant igen här?


Japp, skulle vara roligt : )

Har mest strökodat på senare dagar och har ingen speciell koll på språkspecifika saker, så jag hade en väldans hard-time med att få svenska tecken att fungera för stdin. Så ni får leva utan programargument och skriva ordet i programmet som input om ni vill prova [rolleyes]

Mitt bidrag i Haskell:

import System.Environment (getArgs)
import Data.List

isVokal :: Char -> Int
isVokal(c) = length (filter (== c) ['a', 'o', 'u', 'å', 'e', 'i', 'y', 'ä', 'ö', 'A', 'O', 'U', 'Å', 'E', 'I', 'Y', 'Ä', 'Ö'$

rovarsprak :: [Char] -> String
rovarsprak [] = []
rovarsprak (h:t) =
if isVokal(h) /= 0 then
h:rovarsprak(t)
else
h:('o'):h:rovarsprak(t)

main = do
putStrLn "Skriv in ett ord:"
args <- getLine
putStrLn (rovarsprak(args))
Åtta:

me whants moar utmaningar!


ankzor:

göra detta till ett event som inträffar typ varje#insert random day#


- - - - - - - - - - - - - - - - - Sammanslagning 1 - - - - - - - - - - - - - - - - -


Gentlernen:


ankzor:

Åtta: me whants moar utmaningar!


ankzor:

ankzor: göra detta till ett event som inträffar typ varje#insert random day#


(och ja Åtta, dubbelpost. sorry D:)