Munching squares: Difference between revisions
Content added Content deleted
Basicgames (talk | contribs) |
(add evaldraw (.kc) solution for Munching Squares) |
||
Line 898: | Line 898: | ||
(recur (mod (inc i) (inc n))))) |
(recur (mod (inc i) (inc n))))) |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|Evaldraw}}== |
|||
Since all variables in Evaldraw are doubles, convert to binary and do a custom per bit xor operation. |
|||
<syntaxhighlight lang="c">enum{NUMBITS=7, MAXNUMS=3} |
|||
static binary[MAXNUMS][NUMBITS]; |
|||
() { |
|||
cls(0); |
|||
t = 100*klock(); |
|||
for(y = 0; y < 128; y++) { |
|||
decToBin(y,1); |
|||
for(x = 0; x < 128; x++) { |
|||
decToBin(x,0); |
|||
xor(0,1,2); |
|||
c = binToDec(2); |
|||
setcol(hsv_to_rgb( (t+c*1)%360,.8,1) ); |
|||
setpix(x,y); |
|||
} |
|||
} |
|||
} |
|||
binToDec(id) { |
|||
num = 0; |
|||
for(i=0; i<NUMBITS; i++) { |
|||
if( binary[id][i] == 1) { |
|||
num += 2^(NUMBITS-i-1); |
|||
} |
|||
} |
|||
return num; |
|||
} |
|||
decToBin(num,id) { |
|||
for(i=0; i<NUMBITS; i++) binary[id][i] = 0; |
|||
bitpos = NUMBITS-1; |
|||
while( num > 0 && bitpos >= 0) { |
|||
binary[id][bitpos] = num % 2 == 1; |
|||
bitpos--; // ready for next bit |
|||
num = int(num/2); |
|||
} |
|||
} |
|||
xor(num1,num2,store) { |
|||
for(i=0; i<NUMBITS; i++) |
|||
if(binary[num1][i] == binary[num2][i]) binary[store][i] = 0; else binary[store][i] = 1; |
|||
}</syntaxhighlight> |
|||
=={{header|D}}== |
=={{header|D}}== |