Posted: Sun Jun 20, 2004 4:47 pm Post subject: Turing Contest 255chr max - changed to 20 line max
Make the program that is voted "best" in 255 chars or less in Turing - white space not included in character count, so format it nicely.
Voting criteria will be purely up to the voter - whichever program they feel deserves the credit.
Contest will close July 10th.
Sponsor Sponsor
zylum
Posted: Sun Jun 20, 2004 5:44 pm Post subject: (No subject)
IMO it shouldnt be characters because then ppl will use var names like a b c etc... it should be either the size of the stand alone or the line count...
i say it should be up to 20 lines...
Tony
Posted: Sun Jun 20, 2004 6:07 pm Post subject: (No subject)
Posted: Sun Jun 20, 2004 7:31 pm Post subject: (No subject)
20 lines, after F2 is hit, it is then.
bugzpodder
Posted: Sun Jun 20, 2004 8:13 pm Post subject: (No subject)
I did not make this
but this is so cool i decided it to cut it down to twenty lines (it was like forty) again, i take no credit for the original code
code:
var win1 : int := Window.Open ("graphics:500;500,noecho,nocursor")
var x, y, c, r : real := 250
loop
for decreasing center : 250 .. -50 by 50
r := 0
for q : 1 .. 5
for i : 1 .. 50000
r += .001
c := round ((x + round (((q - 1) * 50000 + i - 1) * .001 + cos (i) * r) + y + round (((q - 1) * 50000 + i - 1) * .001 + sin (i) * r)) / 40 + 40 + cos (round (((q - 1) * 50000 + i
- 1) * .001 + cos (i) * r)) + sin (round (((q - 1) * 50000 + i - 1) * .001 + sin (i) * r)) + q * 2)
x := round (center + ((q - 1) * 50000 + i - 1) * .001 + cos (i) * r)
y := round (center + ((q - 1) * 50000 + i - 1) * .001 + sin (i) * r)
drawdot (round (x), round (y), round (c))
drawdot (round (500 - x), round (y), round (c))
drawdot (round (x), round (500 - y), round (c))
drawdot (round (500 - x), round (500 - y), round (c))
end for
end for
end for
end loop
Paul
Posted: Sun Jun 20, 2004 9:05 pm Post subject: (No subject)
Nice Now, is that just a cool visual effect or does it have some significance that I don't know about?
zylum
Posted: Mon Jun 21, 2004 12:30 pm Post subject: (No subject)
wow, that's really cool. you guys remember the one me, catalyst, jonos and paulbian had? well jonos and paulbian didnt submit so i guess it was just me and catalyst....
mine:
code:
setscreen ("graphics:220;140,offscreenonly")
const size := ceil (sqrt (2 * 220 ** 2))
var clr : array 1 .. size of int
for i : 1 .. size
clr (i) := RGB.AddColor (i / (size * 2), i / (size * 2) + 0.35, 1)
end for
var wave : array 1 .. size div 2 of real
for i : 1 .. size div 2
wave (i) := i / 5
end for
var c : int
drawfillbox (0, 0, maxx, maxy, clr (upper (clr) div 2))
loop
for decreasing i : size div 2 .. 1
wave (i) -= 0.7
c := ceil ((sin (wave (i)) * (abs (size - i * 2.3)) / 3 + (size div 2)))
drawfilloval (maxx div 2, round (maxy / 2 + c / 20) - 8, i, i div 2, clr (c))
end for
View.Update
end loop
catalysts: (bit of a rip off but still cool)
code:
setscreen ("graphics:300;300,offscreenonly")
var vals : array 1 .. 150 of real
proc ColorSet (c1, c2, n : int)
var r1, g1, b1, r2, g2, b2, p, p0, clr : real
RGB.GetColor (c1, r1, g1, b1)
RGB.GetColor (c2, r2, g2, b2)
for i : 1 .. n
p := (i / n) * 100
p0 := 100 - p
clr := RGB.AddColor ((((r1 * p) + (r2 * p0)) / 2) / 50, (((g1 * p) + (g2 * p0)) / 2) / 50, (((b1 * p) + (b2 * p0)) / 2) / 50)
end for
end ColorSet
ColorSet (55, 1, 128)
ColorSet (53, 55, 88)
ColorSet (102, 53, 32)
for i : 1 .. 150
vals (i) := i
end for
drawfillbox (0, 0, maxx, maxy, 7)
loop
for decreasing i : 150 .. 1
vals (i) -= 2
drawfilloval (maxx div 2, 100 - round (sind (vals (i) * 5) * 15), i * 2, i, round (maxcolor - ((sind (vals (i) * 5) + 1) / 2) * 220))
end for
View.Update
end loop
maybe we should make this one have a theme too? maybe fire?
Catalyst
Posted: Mon Jun 21, 2004 1:19 pm Post subject: (No subject)
whee
code:
var s, a, b, c, d, e, f, g, h, j : real := 300
fcn sa (var A : real, C : real) : boolean
A := C
result false
end sa
for x : 1 .. round (s * s)
exit when sa (b, x div s) or sa (a, x - b * s) or sa (d, 3.5 / s * b - 1.75) or sa (c, 3.5 / s * a - 1.75) or sa (g, d) or sa (h, c)
for i : 1 .. 75
exit when sa (j, i) or (c - s / 2) ** 2 + (d - s / 2) ** 2 > 230 ** 2 or i > 75 or sa (e, d * d - c * c + g) or sa (f, d * c + c * d + h) or sa (d, e) or sa (c, f)
end for
drawdot (round (b), round (a), 15 + round (j / 75 * 15))
end for
Sponsor Sponsor
beard0
Posted: Mon Jun 21, 2004 3:23 pm Post subject: (No subject)
Catalyst:
Nice job with the function so that you could put multiple calls on the same line, good thinking.
GlobeTrotter
Posted: Mon Jun 21, 2004 3:35 pm Post subject: (No subject)
code:
var s, a, b, c, d, e, f, g, h, j := 300.0
fcn k (var A : real, C : real) : boolean
A := C
result false
end k
for x : 1 .. round (s * s)
exit when k (b, x div s) or k (a, x - b * s) or k (d, 3.5 / s * b - 1.75) or k (c, 3.5 / s * a - 1.75) or k (g, d) or k (h, c)
for i : 1 .. 75
exit when k (j, i) or (c - s / 2) ** 2 + (d - s / 2) ** 2 > 52900 or i > 75 or k (e, d * d - c * c + g) or k (f, d * c + c * d + h) or k (d, e) or k (c, f)
end for
drawdot (round (b), round (a), 15 + round (j * 0.2))
end for
I made yours a bit smaller.
beard0
Posted: Wed Jun 23, 2004 7:46 am Post subject: (No subject)
Here's mine. Didn't know it was going to be as interesting as it was, compressing it into a mere 20 lines. Keep posting more programs!
code:
View.Set ("offscreenonly,nobuttonbar,graphics:400;200,title:Curtains")
var c, t := 0
for i : 1 .. maxcolour
if i < 85 then
RGB.SetColour (i, (sign (42.5 - i) + 1) / 2 + (sign (i - 42.5) + 1) / 2 * (1 - (i mod 42.5) / 42.5), (sign (42.5 - i) + 1) / 2 * (i mod 42.5 / 42.5) + (sign (i - 42.5) + 1) / 2, 0)
elsif i < 170 then
RGB.SetColour (i, 0, (sign (127.5 - i) + 1) / 2 + (sign (i - 127.5) + 1) / 2 * (1 - (i mod 42.5) / 42.5), (sign (127.5 - i) + 1) / 2 * ((i mod 42.5) / 42.5) + (sign (i - 127.5) + 1) / 2)
else
RGB.SetColour (i, (sign (212.5 - i) + 1) / 2 * ((i mod 42.5) / 42.5) + (sign (i - 212.5) + 1) / 2, 0, (sign (212.5 - i) + 1) / 2 + (sign (i - 212.5) + 1) / 2 * (1 - (i mod 42.5) / 42.5))
end if
end for
loop
t := (t + 20) mod 600 % adjust the 20 for speed/smoothness (factor of 400)
for x : 1 .. 200 * 200
c := round ((abs (300 - t) + 20) * ln (x mod 200 + 2) / ln (x div 200 + 2))
drawdot (x mod 200, x div 200, max (1, min (c, maxcolour - 1)))
drawdot (399 - x mod 200, x div 200, max (1, min (c, maxcolour - 1)))
end for
View.Update
end loop
/**** This is what my if statements above accomplish, through mathematical "ifs", to save lines:
**** (sign(x-y)+1)/2 is 1 when x>y and 0 when x<y, so by multiplying one by the value I'm trying
**** to achieve in one circumstance, plus the other times the value I want in that circumstance I
**** either get 0*val1+1*val2 or 1*val1+0*val2. By combining these, you can actually specify ranges,
**** so if I had a lot of time on my hands, I *could* have done it without any if statements - but my
**** RGB.SetColour line would have been huge.
if i < 42.5 then
RGB.SetColour (i, 1, i / 42.5, 0)
elsif i < 85 then
RGB.SetColour (i, 1 - (i mod 42.5) / (42.5), 1, 0)
elsif i < 127.5 then
RGB.SetColour (i, 0, 1, (i mod 42.5) / (42.5))
elsif i < 170 then
RGB.SetColour (i, 0, 1 - (i mod 42.5) / (42.5), 1)
elsif i < 212.5 then
RGB.SetColour (i, (i mod 42.5) / 42.5, 0, 1)
else
RGB.SetColour (i, 1, 0, 1 - (i mod 42.5) / 42.5)
end if
*/
Delos
Posted: Wed Jun 23, 2004 10:08 pm Post subject: (No subject)
[demoic laugh]
Ha ha ha ha ha!!!!!
[/demoic laugh]
You all with your graphical impressions!
I present you all with an interactive game!
Ha!
Fully functioning!
20 lines!
Bloody tight coding!
It hurt my head making this.
And I've finished school.
My head shouldn't be hurting for something like this.
But it did.
And it works!
I present to you...BlackJack in 20 Lines!
(Sorry, no nice graphics...I can only do so much in 20 lines!)
code:
var player1, player2 : int := 0
var answer : string (1)
loop
put "Draw? (y/n)", repeat (".", 10), "You: ", player1, " Comp: ", player2
exit when player1 > 21 or player2 > 21
getch (answer)
if answer = "y" or answer = "Y" then
player1 += Rand.Int (1, 10)
player2 += Rand.Int (1, 10)
elsif answer = "n" or answer = "N" then
if player1 > player2 and player1 > 16 then
put "You Win!"
else
put "You lose"
end if
player1 := 0
player2 := 0
end if
end loop
put "The player with ", max (player1, player2), " points has lost!"
[Muwahahahahahahahaha]
I can just feel it...someone is going to do all of this in like, 12 lines...and totally make me look the fool...meh!
zylum
Posted: Wed Jun 23, 2004 11:43 pm Post subject: (No subject)
im sure some of you have seen me post this before but i shortened it down a bit and made it better too:
code:
var coords : array 1 .. maxx, 1 .. maxy of int
var clrs : array 1 .. 500 of int %change the upper bound to alter smootheness ( > makes smoother)
for i : 1 .. upper (clrs)
clrs (i) := RGB.AddColor (i / upper (clrs), i / upper (clrs), i / upper (clrs)) %(i,i,i) = b&w, (1,i,i) = red, (0,i,i) = teal etc...
end for
coords (1, 1) := Rand.Int (upper (clrs) div 3, upper (clrs) - upper (clrs) div 3)
for x : 1 .. maxx
for y : 1 .. maxy
if x = 1 and y > 1 then
coords (x, y) := min (upper (clrs), max (1, coords (x, y - 1) + Rand.Int (-5, 5)))
drawdot (x, y, clrs (coords (x, y)))
elsif y = 1 and x > 1 then
coords (x, y) := round (min (upper (clrs), max (1, coords (x - 1, y) + Rand.Int (-5, 5))))
drawdot (x, y, clrs (coords (x, y)))
elsif x > 1 and y > 1 then
coords (x, y) := round (min (upper (clrs), max (1, ((coords (x, y - 1) + coords (x - 1, y - 1)) / 2) + Rand.Int (-5, 5))))
drawdot (x, y, clrs (coords (x, y)))
end if
end for
end for
beard0
Posted: Thu Jun 24, 2004 12:38 pm Post subject: (No subject)
Delos wrote:
[demoic laugh]
Ha ha ha ha ha!!!!!
[/demoic laugh]
You all with your graphical impressions!
I present you all with an interactive game!
With a challenge like that, I had to rise to it. To counter Delos's "Black Jack" in which the computer only draws when you do, and you even get to see exactly what the computer has, I produce the mouse controlled TicTacToe game, in 20 lines.
Th demonic laugh is now mine
code:
var x, y, b, ob, count := 0
var whatchar : array - 2 .. 4, -2 .. 4 of char := init (" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ")
put repeat (repeat (" | |" + chr (10), 3) + "-----+-----+-----" + chr (10), 2) + repeat (" | |" + chr (10), 3),"Welcome to Matt's TicTacToe Game, in 20 lines.",chr(10),"Use the mouse in turns with a friend to play the game.",chr(10),"Enjoy!"
loop
ob := b
mousewhere (x, y, b)
if x < 135 and maxy - y < 180 and b > 0 and ob = 0 and whatdotcolor ((x div 45) * 48 + 18, ((maxy - y) div 60) * -64 + 373) = white then
count += 1
locate (((maxy - y) div 60) * 4 + 2, (x div 45) * 6 + 3)
whatchar (x div 45, (maxy - y) div 60) := chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O")))
put chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O"))) ..
exit when (whatchar (x div 45 - 2, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 2, (maxy - y) div 60) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 2, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 2, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 2, (maxy - y) div 60 - 2) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 + 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 + 1, (maxy - y) div 60 - 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60)) or (whatchar (x div 45 - 1, (maxy - y) div 60 + 1) = whatchar (x div 45, (maxy - y) div 60) and whatchar (x div 45 - 2, (maxy - y) div 60 + 2) = whatchar (x div 45, (maxy - y) div 60))
end if
if count = 9 then
count += 1
exit
end if
end loop
locate (12, 1)
put repeat (chr (ord ("O") + count mod 2 * (ord ("X") - ord ("O"))) + "'s win!", 1 - count div 10) + repeat ("Tie game!", count div 10) + repeat (chr (10), 3)
Yes, maybe my "exit when" line is a little long - but it is one line!
Tony
Posted: Thu Jun 24, 2004 2:38 pm Post subject: (No subject)