Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abcdefg hijklmn opqrstu vwxyz
- | /
- O -O O O O O- O
- /| | | | | | |
- | | /
- -O O O- O O O- O
- / / / / / /
- | / | /
- -O -O -O -O- -O O O
- | / /
- O O- O O- O-
- This is Code Golf.
- |
- O -O O -O
- / /
- O -O
- /
- | /
- O -O O O
- | | |
- /
- O -O O O-
- | / |
- $_=lc<>;map{y/a-z//cd;y/a-z/`HABDPxc0(!x12"$0xa0tnf30x8835x8224x8421x90/;@a=($/)x4;map{$s=ord;$a[$_/3].=substr" \|/-O-/|\",$_==4||$s>>$_-($_>4)&1?$_+1:0,1for 0..8;$_.=" "for@a}split//;print@a}split
- $_=lc<>;
- map{
- y/a-z//cd;
- y/a-z/`HABDPxc0(!x12"$0xa0tnf30x8835x8224x8421x90/;
- @a=($/)x4;
- map{
- $s=ord;
- $a[$_/3].=substr" \|/-O-/|\",$_==4||$s>>$_-($_>4)&1?$_+1:0,1for 0..8;
- $_.=" "for@a
- }split//;
- print@a}split
- a = 01100000 96 = `
- b = 01001000 72 = H
- c = 01000001 65 = A
- d = 01000010 66 = B
- e = 01000100 68 = D
- f = 01010000 80 = P
- etc...
- y/a-z/`HABDP..../;
- println(readLine.filter(c=>c.isLetter||c==' ').toLowerCase.split(" ").map{_.map(q=>(" O "/:("^@a,6Tr?W*+5Sq9(2Pn%/-47MU"(q-'a')-27+""))((g,x)=>g.updated(x-'0',"\|/-O-/|\"(x-'0'))).grouped(3).toList).transpose.map(_.mkString(" ")).mkString("n")}.mkString("nn"))
- println(
- readLine.filter(c => c.isLetter || c==' ').
- toLowerCase.
- split(" ").
- map{ s =>
- val lookup = "^@a,6Tr?W*+5Sq9(2Pn%/-47MU".map(c => (c-27).toString)
- s.map(q =>
- (" O " /: lookup(q-'a')){(g,x) =>
- g.updated(x-'0', "\|/-O-/|\"(x-'0'))
- }.grouped(3).toList
- ).transpose.map(_.mkString(" ")).mkString("n")
- }.mkString("nn")
- )
- e='abhioptuwycdjmnsqxzfgvklebr'
- for w in raw_input().split():
- for i in 0,3,6,9:print' '.join(''.join((' '+'|/-O-/| '[j])[`j`in'4'+'6736031025071568328578162735'[e.find(c):][:2]]for j in range(i,9)[:3])for c in w if c.lower()in e)
- |/ 012
- - - -> 3 5
- /| 678
- 0: ciotuy
- 1: djkptv
- 2: elquwx
- 3: bhopqrs
- 5: fjmrwyz
- 6: ahiklmn
- 7: abcdefg
- 8: gnsvxz
- abhioptuwycdjmnsqxzfgvklebr
- 6736031025071568328578162735
- gets.split.map{|w|puts (0..2).map{|l|w.chars.map{|c|(' '*576+'CAEAEADBCAF DAEBDACAAAI EAFADACAABG BAEAFEL A_ FACABADADAAG AAFBADQ AGX GAFADABAAAAF'.split.zip('\|/-o-/|\'.chars).map{|a,c|(a.chars.zip([' ',c]*9).map{|x,z|[z]*(x.ord-64)}.flatten)}.transpose*''*2)[c.ord*9+3*l,3]}*' '},''}
- def k(i:Int,d:Int=0):(Int,Int)=if(i<(7-d))(d,i+1)else k(i-(7-d),d+1)
- def t(i:Char)=(if(i=='y')i-4 else
- if(i=='z')i+2 else
- if(i=='j')i+14 else
- if(i>='v')i+3 else
- if(i>'i')i-1 else i)-'a'
- def q(p:(Int,Int),i:Int,c:Char)=if(p._1==i||p._1+p._2==i)""+c else" "
- def g(r:Int,c:Char)={val p=k(t(c.toLower))
- print((r match{case 1=>q(p,3,'\')+q(p,4,'|')+q(p,5,'/')
- case 2=>q(p,2,'-')+"o"+q(p,6,'-')
- case 3=>q(p,1,'/')+q(p,0,'|')+q(p,7,'\')})+" ")}
- for(w<-readLine.split(" ")){println;for(r<-(1 to 3)){w.map(c=>g(r,c));println}}
- def toClock (i: Int, depth: Int=0) : (Int, Int) = {
- if (i < (7 - depth)) (depth, i+1) else toClock (i - (7-depth), depth + 1)}
- def toIdx (i: Char) = {
- (if (i == 'y') i - 4 else
- if (i == 'z') i + 2 else
- if (i == 'j') i + 14 else
- if (i >= 'v') i + 3 else
- if (i > 'i') i - 1 else i ) - 'a'}
- def p2c (pair: (Int, Int), i: Int, c: Char) = {
- if (pair._1 == i || pair._1 + pair._2 == i) ""+c else " "
- }
- def printGrid (row: Int, c: Char) = {
- val idx = toIdx (c.toLower)
- val pair = toClock (idx)
- row match {
- case 1 => { print(
- p2c (pair, 3, '\') +
- p2c (pair, 4, '|') +
- p2c (pair, 5, '/') + " ")
- }
- case 2 => { print(
- p2c (pair, 2, '-') + "o" +
- p2c (pair, 6, '-') + " ")
- }
- case 3 => { print(
- p2c (pair, 1, '/') +
- p2c (pair, 0, '|') +
- p2c (pair, 7, '\') + " ")
- }
- }
- }
- val worte = "This is Code Golf"
- (1 to 3).map (row => {worte.map (c => printGrid (row, c));println})
- val iis = is.map {i =>
- if (i == 'y') i - 4 else
- if (i == 'z') i + 2 else
- if (i == 'j') i + 14 else
- if (i >= 'v') i + 3 else
- if (i > 'i') i - 1 else i }.map (_ - 'a')
- iis.zipWithIndex .sortBy (_._1) .map (p => (p._1, ('a' + p._2).toChar))
- Vector((97,a), (98, b), (99, c), (100,d), (101,e), (102,f), (103,g),
- (104,h), (105,i), (106,k), (107,l), (108,m), (109,n),
- (110,o), (111,p), (112,q), (113,r), (114,s),
- (115,t), (116,u), (117,y), -------
- ------- (120,j), (121,v),
- (122,w), (123,x),
- (124,z))
- 3 4 5 | / |
- 2 6 - o - - o - o
- 1 0 7 / | (2, ) (2,2)
- def toClock (i: Int, depth: Int=0) : (Int, Int) = {
- if (i < (7 - depth)) (depth, i+1) else toClock (i - (7-depth), depth + 1)}
- Vector( (0,1), (0,2), (0,3), (0,4), (0,5), (0,6), (0,7),
- (1,1), (1,2), (1,3), (1,4), (1,5), (1,6),
- (2,1), (2,2), (2,3), (2,4), (2,5),
- (3,1), (3,2), (3,3),
- (4,2), (4,3),
- (5,1), (5,2),
- (6,1))
- import Data.Char
- t[x,y]=q[x,mod(y+1)8]
- q z@[x,y]|x==y=[x+1,y+2]|0<1=z
- x%y=[x,y]
- c 65=0%1
- c 74=6%4
- c 75=1%4
- c 79=2%3
- c 84=3%4
- c 86=4%7
- c 87=5%6
- c 89=3%6
- c 90=6%7
- c x=t$c$pred x
- _!9='O'
- c!n|n`elem`c="|/-\"!!mod n 4|0<1=' '
- s x=do n<-[3:4%5,2:9%6,1:0%7];'n':do c<-x;' ':map(c!)n
- main=putStr.s.map(c.ord.toUpper)=<<getLine
- type Clock = [Int]
- tick :: Clock -> Clock
- tick [h, m] = tick' [h, mod (m + 1) 8]
- tick' :: Clock -> Clock
- tick' [h, m]
- | h == m = [h + 1, m + 2]
- | otherwise = [h, m]
- clock :: Char -> Clock
- clock 'a' = [0,1]
- clock 'j' = [6,4]
- clock 'k' = [1,4]
- clock 'o' = [2,3]
- clock 't' = [3,4]
- clock 'v' = [4,7]
- clock 'w' = [5,6]
- clock 'y' = [3,6]
- clock 'z' = [6,7]
- clock c = tick $ clock $ pred c
- arm :: Int -> Char
- arm 0 = '|'
- arm 1 = '/'
- arm 2 = '-'
- arm 3 = '\'
- drawAt :: Clock -> Int -> Char
- drawAt _ 9 = 'O'
- drawAt c n = if n `elem` c
- then arm $ n `mod` 4
- else ' '
- -- showClock is not in golfed code. Just there for debugging.
- showClock :: Clock -> String
- showClock c = unlines $ map (map $ drawAt c) [
- [3,4,5]
- , [2,9,6]
- , [1,0,7]
- ]
- showClocks :: [Clock] -> String
- showClocks cs = unlines $ map (showClocks' cs) [[3,4,5],[2,9,6],[1,0,7]]
- showClocks' :: [Clock] -> [Int] -> String
- showClocks' cs ns = cs >>= c -> ' ' : map (drawAt c)
- mainx :: IO ()
- mainx = putStr . showClocks . map clock =<< getLine
- 345 |/
- 2 6 == -O- -O tick -O == O tick O == -O
- 107 /| / / / | /
- [1,2] or [2,1] tick [1,2] == [1,3] tick [0,7] == [1,2]
- @_=split('', $ARGV[0]);for (@_){print eval{/[ciotuy]/ ?'\':' '}.eval{/[djkptv]/ ?'|':' '}.eval{/[elquwx]/ ?'/':' '}."n".eval{/[bhopqrs]/ ?'-':' '}."0".eval{/[fjmrwyz]/ ?'-':' '}."n".eval{/[ahiklmn]/ ?'/':' '}.eval{/[abcdefg ]/ ?'|':' '}.eval{/[gnsvxz]/ ?'\':' '."n"};}
Add Comment
Please, Sign In to add comment