Top Challenge Entrants
1
jaytea
587 2
[Znork]
303 3
urza
297 4
Ag2X
288 5
dr_Eamer
255 6
Albie
199 7
Chessnut
197 8
A Noniem
194 9
zzattack
186 10
Kol
185 11
m910q
168 12
Sephiroth
115 13
Auron956
114 14
patje
114 15
chid
110 16
Ohad2121
92 17
SkorpSSS
87 18
DixrouE
84 19
Suchorski
83 20
^Vampire^
74
Challenge: Smallest $dominos
Start: August 17th 2009
End: August 23rd 2009
Results
Well done to everyone who joined in this challenge. There are some very nice entries. Although not as many as the last challenge, it's fair to say this one was a little more difficult. The next challenge is easier and number based so hopefully everyone can participate. Onto the results...
There was a total of
15 non regex-entries and
7 regex entries .
Congratulations to jaytea for winning both Non-Regex and Regex entries:
Winner! jaytea (147 bytes)
alias a if ($1) bset &a $1-
alias dominos {
bset -tc &a 1 $1
a $2 \
a $3 /
if $bvar(&a,1-).text {
while $replace($v1,/|\,~,/|,//,|\,\\) < $v1 /
return $v2
Winner! jaytea (124 bytes)
alias dominos {
if $1 {
while $regsubex($regsubex($v1,.(?<=^.{ $+ $2})|/?\|(?=\\),\),\|(?<=^.{ $+ $3}|/.),/) < $v1 /
return $v2
Non regex entries Top entries:
1
jaytea
147 bytes
alias a if ($1) bset &a $1-
alias dominos {
bset -tc &a 1 $1
a $2 \
a $3 /
if $bvar(&a,1-).text {
while $replace($v1,/|\,~,/|,//,|\,\\) < $v1 /
return $v2
2
Chessnut
152 bytes
alias dominos {
bset -tc &b 1 $1
if ($2) bset &b $2 \
if ($3) bset &b $3 /
if $bvar(&b,1-).text {
while $replacex($v1,/|\,/|\,/|,//,|\,\\) < $v1 /
}
return $v1
3
Albie
154 bytes
alias dominos {
if ($remove($puttok($puttok($replace($1,|,|),\,$2,2),/,$3,2),)) !
while $replace($v1,/|\,/.|.\,|\,\\,/|,//) != $v1 !
return $remove($v1,.)
4
zzattack
175 bytes
alias d $iif(92 < $bvar(&b,$1 - $1),bset &b,return) $1
alias dominos {
%l = $2
%r = $3
bset -ct &b 1 $1
while %l != %r {
dec %l $d(%l 92)
dec %r $d(%r 47) -1
}
return $bvar(&b,1-).text
5
garreh
188 bytes
alias z {
if $1 && $bvar(&x,$1) > 99 {
bset &x $1-2
inc $3-
}
else set $3 0
}
alias dominos {
bset -tc &x 1 $1
%l = $2
%r = $3
while %r != %l {
z %r 47 % $+ r
z %l 92 % $+ l -1
}
return $bvar(&x,1-).text
6
[Znork]
192 bytes
alias dominos {
if $remove($qt($puttok($puttok($replace($1,$chr(32),",|,|),\,$2,3),/,$3,3)),) {
while $replace($v1,"|\,"\\,/|",//",/||\,//\\,||\,|\\,/||,//|) != $v1 .
tokenize 34 $v1
return $1-
7
Ag2X
193 bytes
alias dominos {
var %l $2,%r $3
bunset &.
bset -t &. 1 $1
while %l != %r {
%l = $¤(%l,92,-)
%r = $¤(%r,47,+)
}
return $bvar(&.,1-).text
}
alias ¤ {
if $1 && $bvar(&.,$1) = 124 {
bset &. $1-2
return $1 $3 1
}
8
dr_Eamer
200 bytes
alias dominos {
bunset &r
bset -t &r 1 $1
while $2 != $3 {
tokenize 32 x $j(92,$2,-1) $j(47,$3,+1)
}
return $bvar(&r,1,999).text
}
alias j {
if $2 && $bvar(&r,$2) = 124 {
bset &r $2 $1
return $calc($2-)
}
return 0
9
urza
212 bytes
alias _ %1 = $+($left(%1,$({,$1)),$2,$right(%1,- $+ $1))
alias dominos {
%1 = $1
%2 = $2
%3 = $3
while %2 != %3 {
if ($mid(%1,%2) < a) %2 = 0
if ($mid(%1,%3) < a) %3 = 0
if %2 {
_ %2 \
dec %2
}
if %3 {
_ %3 /
inc %3
}
}
return %1
10
A Noniem
214 bytes
alias dominos {
%a = $2
%b = $3
bset -tc &b 1 $1
while !$count(%o,/|\,/\) && %o != $bvar(&b,1-).text {
var %o $v2
if $bvar(&b,%a) > 32 && %a {
bset &b %a 92
dec %a
}
if $bvar(&b,%b) > 32 && %b {
bset &b %b 47
inc %b
}
}
return %o
11
kopper
228 bytes
alias c %c = $+($left(%c,$calc($1 -1)),$2,$mid(%c,$calc($1 +1)))
alias dominos {
%c = $1
%l = $2
%r = $3
:z
if ($mid(%c,%l,1) != |) %l = 0
if ($mid(%c,%r,1) != |) %r = 0
if %l = %r return %c
if %l {
c %l \
dec %l
}
if %r {
c %r /
inc %r
}
goto z
12
m910q
272 bytes
alias c {
if $1 && $asc($mid(%d,$1,1)) > 32 && $1 <= $len(%d) {
%d = $+($left(%d,$calc($1 -1)),$2,$mid(%d,$calc(1+$1)))
%q
}
%q 0
}
alias dominos {
%d = $1
%l = $2
%r = $3
%c = 209
%q = return
while %c && %r != %l {
dec %c
dec %l $c(%l,\)
inc %r $c(%r,/)
if (!$calc(%r -%l -1)) break
}
%q %d
13
chid
335 bytes
alias dominos {
%s = $1
var %lc $2,%rc $3
while %lc || %rc {
if %lc {
dec %lc
if / isin $mid(%s,%lc,2) break
elseif ($pos($mid(%s,$calc(%lc +1),1),$chr(32))) %lc = 0
else & %lc \
}
if %rc {
if $mid(%s,%rc,1) isin à . {
%rc = 0
}
else {
& $({,%rc) /
inc %rc 1
}
if (%rc > $len($1)) %rc = 0
}
}
return %s
}
alias & %s = $+($left(%s,$1),$2,$mid(%s,$calc(2+$1)))
14
jos
542 bytes
alias dominos {
var %s $chr(32),%l $2,%r $3,%o,%f,%d $replace($1,%s,.),%i 1,%~
while !$len(%o) || !$len(%f) {
dec %l
inc %r
if $2 > $3 && %l < %r && !$len(%o) && !$len(%f) {
%o = %l + 1
%f = %r - 1
if %o = %f {
dec %f
inc %o
}
}
if $2 {
if !$len(%o) && ($mid($1,%l,1) = %s || %l < 1) {
%o = %l + 1
}
}
else %o = 0
if $3 {
if !$len(%f) && ($mid($1,%r,1) = %s || %r > $len($1)) {
%f = %r - 1
}
}
else %f = 0
}
while %d {
%; = $iif(%i isnum %o - $2,\,$iif(%i isnum $3 - %f,/,$left(%d,1)))
%d = $right(%d,-1)
dec %i
%~ = $+($left(%~,%i),%;,%d)
inc %i 2
}
return $replace(%~,.,%s)
Invalid entries:
Natdhib
480 bytes
* Failed on all tests
Alias dominos {
var %Stand = $len($1)
var %Drops = $1
var %Shoes = $iif($2 >= $3,$3 $2,$2 $3)
var %Brick = $iif($2 = 0,Start.Left,$iif($3 = 0,Start.Right,$iif(%Shoes = $2 $3,Start.Left,Start.Right)))
var %Block = $info(%Shoes)
var %Ident = $replace(%shoes,$3 $2,/|\,$2 $3,\|/)
Return %Stand %Drops %Shoes %Brick %Block %Ident
}
Alias Info {
Tokenize 32 $1
var %Lines = $iif($1 = 0,1,$1)
var %Stand = $iif($2 = 0,1,$2)
var %Count = 0
while (%Lines <= %Stand) {
inc %Count
inc %Lines
}
Return %Count
}
Regex entries Top entries:
1
jaytea
124 bytes
alias dominos {
if $1 {
while $regsubex($regsubex($v1,.(?<=^.{ $+ $2})|/?\|(?=\\),\),\|(?<=^.{ $+ $3}|/.),/) < $v1 /
return $v2
2
Chessnut
142 bytes
alias dominos {
if $mid($regsubex($regsubex(#$1,.{ $+ $2}\K.,\),.{ $+ $3}\K.,/),2) {
while $replacex($v1,/|\,/|\,/|,//,|\,\\) < $v1 /
}
return $v1
3
Albie
148 bytes
alias dominos {
%t = $remove($puttok($puttok($replace($1,|,|),\,$2,2),/,$3,2),)
while ($regsub(%t,m#(/)\|(?!\\)|(?<!/)\|(\\)#g,\1\1,%t)) !
return %t
4
zzattack
180 bytes
alias d $iif($regex($bvar(&b,$1 - $1),1),bset &b,return) $1
alias dominos {
%l = $2
%r = $3
bset -ct &b 1 $1
while %l != %r {
dec %l $d(%l 92)
dec %r $d(%r 47) -1
}
return $bvar(&b,1-).text
5
ennery
232 bytes
alias dominos {
var %a $2,%b $3,%u $regsubex($1,/(.)/g,$iif(\n = %a,\,$iif(\n = %b,/,\1))),%c $len($1)
while %c {
%u = $regsubex($regsubex(%u,/(?<=/)(\|)(?!\\)/,/),/(\|)(?=\\)/,$iif($regex(%u,/(?<!(/))(\|)(?=\\)/),\,|))
dec %c
}
return %u
6
chid
348 bytes
alias dominos {
%s = $1
var %lc $2,%rc $3
while %lc || %rc {
if %lc {
dec %lc
if ($regex($mid(%s,%lc,2),/\//)) break
elseif ($regex($mid(%s,$calc(%lc +1),1),/ /)) %lc = 0
else g %lc \
}
if %rc {
if ($regex($mid(%s,%rc,1),/ /)) %rc = 0
else {
g $({,%rc) /
inc %rc
}
if (%rc > $len($1)) %rc = 0
}
}
return %s
}
alias g %s = $regsubex(%s,/(.{ $+ $1 $+ })./A,\1 $+ [ $2 ] )
Invalid entries:
TheInCircuit
69 bytes
alias dominos return $regsubex($str(.,$1),/(.)/g,$mid(/|\,$r(1,3),1))