• [ENDED] Code Golf - The Reboot #3 5 1
Currently:

### Author Topic: [ENDED] Code Golf - The Reboot #3  (Read 24102 times)

0 Members and 1 Guest are viewing this topic.

#### c4ooo

• Project Author
• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### [ENDED] Code Golf - The Reboot #3
« on: June 15, 2015, 12:00:02 am »
Hello ladies, gentleman, and welcome to the third iteration of...
Code Golf Rebooted!
...not that its evil or anything... But any way, as you can see i am neither @JWinslow23 nor @pimathbrainiac,for my name is c4ooo, and if you are confused as to what is happening, I will explain. Basically, me Pimath and Winslow as well as others, will all be hosting the challenges in succession. If you are confused because you do not know what code golf is, please check out this thread: https://www.omnimaga.org/community-contests/code-golf-the-reboot-1/

So, as to begin, here is this weeks challenge:
Challenge #3: Cellular automation
You must wright a program that infinitely computes Conway's Game of Life. What is this Conway's Game of Life you may be asking? The Game (no not that game, Conway's Game) is "zero person" game in which the board is split into an infinite grid of square cells. Based on four specific rules, cell die or are reborn. These are the four rules, taken from wikipidia:
Quote
• Any live cell with fewer than two live neighbours dies, as if caused by under-population.
• Any live cell with two or three live neighbours lives on to the next generation.
• Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
• Any live cell with more than three live neighbours dies, as if by overcrowding.

Thus, a every pixel is a cell, and every turn the four rules must be applied to every pixel/cell to generate the new state of the game board. A cell is a "neighbouring cell" if it is adjacent to the cell, diagonals included. To know more about The Game, I highly suggest Wikipedia (It might be necessary for you to read the article, my summery of The Game is very brief): https://en.wikipedia.org/wiki/Conway's_Game_of_Life. Mostly to give an advantage to calculators, i will add several rules your program must follow:
• Every pixel on the screen must be an individual cell, white being dead and black being alive or vice verse.
• The game board must consist of every pixel on the screen. eg "full screen"., However, the rule does not apply if there is a significant limitation in your language where this is simply not possible, like in Silver Edition TI-BASIC, or PICO-8.
• The outer pixels do not have to follow the rules,If you want you make make them dead forever. Alternatively, you can make the board wrap around.
• The game must start in a pseudo random configuration, loophole fix, courtesy @Runer112 "every cell's initial state must have a nonzero chance of being in each state and must be independent (barring reasonable PRNG limitations) of every other cell's initial state." No user input / cell manipulation is required.
• Every iteration the program must obviously update the screen.
Ranking
Solutions
Runer112:
Spoiler For Spoiler:

.L
For(ClrDraw)
Pxl-Change(,rand
End
Repeat StorePic DispGraphClrDrawgetKey
For(X,,"
For(9→Z)
-pxl-Test(Z--^3+X-1,Z/3+Xʳʳ-1)ʳ
End
Pxl-On( or pxl-Test(X,Xʳʳ)ʳ=5*X,Xʳʳ
End
End

lirtosiast:
Spoiler For Spoiler:

0
For(F,1,E9
For(X,0,93
Ans/7+49seq(pxl-Test(Y,X+1),Y,0,62
For(Y,1,61
If 2rand<F=pxl-Test(Y,X)+int(3fPart(3cosh(fPart(6-1iPart(sum(Ans,Y,Y+2
Pxl-Change(Y,X
End
End
End

Haobo:
Spoiler For Spoiler:

Copy(rand
While
StorePicDispGraphClrDraw
For(Y,0,63
For(X,0,95
For(Z,0->B,8
pxl-Test(Z^3+X-1,Z/3+Y-1)^^r->A
Z=4?A->C,A+B->B
End
If B=3+(C?B=2
Pxl-On(X,Y
End
End
End
End

ben_g:
Spoiler For Spoiler:

*COMING*

Scipi:
Spoiler For Spoiler:

#include<tonc.h>
#define l for(x=0;++x<239;)for(y=0;++y<159;)
main(){R=1028;*P=32767;u8 x,y,s,m,p;for(;!(S=~K&1023);l M(x,y,Q()&1);for(;u8*v=(u8*)V;){F();l{for(m=-1,p=v[x+y*240],s=-p;++m<9;)s+=v[x+m%3-1+(y+m/3-1)*240];M(x,y,p?s<4&s>1:s==3);}}}

pbfy0:
Spoiler For Spoiler:

.string "PRG"

lcd_ptr .req r4
active_fb .req r5
inactive_fb .req r6
orig_fb .req r7
new_fb .req r8

@ start
push {r4-r8, r12, lr}

ldr lcd_ptr, =0xC0000000
@mov r0, #0x10000
@sub r0, r0, #0x11
ldrh r0, [r9, #6] @ 0xffff is already in the offset table because of -1
str r0, [lcd_ptr, #0x200]

@ldr r2, [lcd_ptr, #0x18]
@bic r2, #14
@orr r2, #6 @ 8 bpp, paletted
ldrh r2, [r9, #18]
str r2, [lcd_ptr, #0x18]

@add lcd_ptr, r1, #0x10 @ to 0xC0000010
ldr orig_fb, [lcd_ptr, #0x10] @ original framebuffer
mov active_fb, orig_fb @ active framebuffer
mov inactive_fb, new_fb

ldr r10, =76800
mov r11, #0
1:   subs r10, r10, #1
strb r11, [active_fb, r10]
@ldrb r3, [inactive_fb, r10]
svc #206 @ rand
and r0, r0, #1
strb r0, [inactive_fb, r10]
bne 1b

mov r2, #320
mov r1, #0
mov r0, inactive_fb
push {r1,r2}
svc #7
pop {r1,r2}
ldr r3, =76480
svc #7

3:   ldr r0, =76480 @ 320 * 239
str inactive_fb, [lcd_ptr, #0x10]
mov inactive_fb, active_fb
ldr active_fb, [lcd_ptr, #0x10]

2:   mov r1, #18 @ 9 * 2
mov r2, #0
sub r0, #1

1:   sub r1, #2
ldrsh r3, [r9, r1] @ won't let me use lsl #1
cmp r3, #76800
ldrltb r3, [active_fb, r3] @ no lt?
teq r1, #0
bne 1b @ at end of loop, r1 and r3 can be discarded

ldrb r1, [active_fb, r0]
teq r2, #3
moveq r1, #1
teqne r2, #4
movne r1, #0
strb r1, [inactive_fb, r0]
teq r0, #320
bne 2b

ldr r0, =0x900E001C
ldr r1, [r0]
tst r1, #0x80
beq 3b

str orig_fb, [lcd_ptr, #0x10]
pop {r4-r8, r12, pc}

offsets:
.hword -321, -320, -319, -1, 1, 319, 320, 321, 0 @ actual offsets
.hword 0x927 @ misc data

Juju:
Spoiler For Spoiler:

function e(i)x=i%128y=i/128n=pget(x,y)z=-n
for j=-3,5 do z+=pget(x+j/3,y+j%3-1) end
if(z<9 or z>21)n=0
if(z==21)n=7
return n
end
for i=0,8191 do poke(i,112*flr(rnd(2))+7*flr(rnd(2)))end
function _update()end
function _draw()memcpy(24576,0,8192)for i=0,8191 do
poke(i,16*e(i*2+1)+e(i*2))end
end

My solution:
Spoiler For Spoiler:

*COMING*

Scoring
All non-calculator programs will be scored through this counter: http://juju2143.ca/golf/
Assembly programs will be scored on binary size (excluding the header), and Basic/Axe programs will be scored based on-calc source size (once again, excluding the header).
Good luck, and may this contest automate you!
Submission:
To submit, ether send me a PM with a the/link to code, or electronically mail me at kuznetsov4000[at]gmail[dot]com.
Want to host to?
« Last Edit: June 22, 2015, 11:49:53 am by c4ooo »
-German Kuznetsov
The impossible chemical compound.

#### lirtosiast

• LV3 Member (Next: 100)
• Posts: 44
• Rating: +1/-0
##### Re: Code Golf - The Reboot #3
« Reply #1 on: June 15, 2015, 12:13:03 am »
I think I know what my approach (in Ti-BASIC) will be. It will be very slow when golfed completely, and I don't think we should expect any of these to be of practical speed.

Do you mean CSE BASIC for the screen limitations?

I think you should specify a minimum screen size, because on any machine without a screen the solution is trivial: since there are no pixels, do nothing.
« Last Edit: June 15, 2015, 12:17:04 am by lirtosiast »

#### Juju

• Incredibly sexy mare
• Coder Of Tomorrow
• LV13 Extreme Addict (Next: 9001)
• Posts: 5730
• Rating: +500/-19
• Weird programmer
##### Re: Code Golf - The Reboot #3
« Reply #2 on: June 15, 2015, 12:14:33 am »
Hm, another graphic challenge. Gotta try the new PICO-8 0.1.1 out.

Remember the day the walrus started to fly...

I finally cleared my sig after 4 years you're happy now?

This signature is ridiculously large you've been warned.

The cute mare that used to be in my avatar is Yuki Kagayaki, you can follow her on Facebook and Tumblr.

#### c4ooo

• Project Author
• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### Re: Code Golf - The Reboot #3
« Reply #3 on: June 15, 2015, 12:16:01 am »
Hm, another graphic challenge. Gotta try the new PICO-8 0.1.1 out.
This is meant to give advantages to calculators.

I think I know what my approach (in Ti-BASIC) will be. It will be very slow when golfed completely, and I don't think we should expect any of these to be of practical speed.
This is code golf so size > speed

Also AOTM i am still tweaking the rules based on some feedback i am getting on IRC so yea...
« Last Edit: June 15, 2015, 01:39:16 pm by c4ooo »
-German Kuznetsov
The impossible chemical compound.

#### Scipi

• Omni Kitten Meow~ =^ω^=
• LV10 31337 u53r (Next: 2000)
• Posts: 1547
• Rating: +192/-3
• Meow :3
##### Re: Code Golf - The Reboot #3
« Reply #4 on: June 15, 2015, 12:18:37 am »
I had a feeling Conway's Game Of Life would be one of the challenges. Kind of hoping to see Langton's Ant appear, as well

Imma Cat! =^_^= (It's an emoticon now!)
Spoiler For Things I find interesting:
Spoiler For AI Programming:

Spoiler For OldSig:

Spoiler For Projects!:

Spoiler For IMPORTANT NEWS!:
Late last night, Quebec was invaded by a group calling themselves, "Omnimaga". Not much is known about these mysterious people except that they all carried calculators of some kind and they all seemed to converge on one house in particular. Experts estimate that the combined power of their fabled calculators is greater than all the worlds super computers put together. The group seems to be holding out in the home of a certain DJ_O, who the Omnimagians claim to be their founder. Such power has put the world at a standstill with everyone waiting to see what the Omnimagians will do...

Wait... This just in, the Omnimagians have sent the UN a list of demands that must be met or else the world will be "submitted to the wrath of Netham45's Lobster Army". Such demands include >9001 crates of peanuts, sacrificial blue lobsters, and a wide assortment of cherry flavored items. With such computing power stored in the hands of such people, we can only hope these demands are met.

In the wake of these events, we can only ask, Why? Why do these people make these demands, what caused them to gather, and what are their future plans...

#### lirtosiast

• LV3 Member (Next: 100)
• Posts: 44
• Rating: +1/-0
##### Re: Code Golf - The Reboot #3
« Reply #5 on: June 15, 2015, 12:20:34 am »
Sorry, stupid question and off-topic but how do I access IRC?

EDIT: -_- I don't want to spam the fora, so I'll wait.

EDIT: That pun was probably the worst in the history of code golf.
« Last Edit: June 15, 2015, 12:51:03 am by lirtosiast »

#### c4ooo

• Project Author
• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### Re: Code Golf - The Reboot #3
« Reply #6 on: June 15, 2015, 12:21:22 am »
Sorry, stupid question and off-topic but how do I access IRC?
Also what @Juju said.
« Last Edit: June 15, 2015, 12:27:57 am by c4ooo »
-German Kuznetsov
The impossible chemical compound.

#### Juju

• Incredibly sexy mare
• Coder Of Tomorrow
• LV13 Extreme Addict (Next: 9001)
• Posts: 5730
• Rating: +500/-19
• Weird programmer
##### Re: Code Golf - The Reboot #3
« Reply #7 on: June 15, 2015, 12:26:44 am »
Sorry, stupid question and off-topic but how do I access IRC?
That's true, but for the OmnomIRC shoutbox. Otherwise, get a IRC client such as Hexchat or mIRC and point it at either irc.efnet.org or irc.omnimaga.org.

Hm, another graphic challenge. Gotta try the new PICO-8 0.1.1 out.
This is meant to give advantages to calculators.
I don't really see why it wouldn't. It's pretty much Lua with a graphics library.
« Last Edit: June 15, 2015, 12:30:23 am by Juju »

Remember the day the walrus started to fly...

I finally cleared my sig after 4 years you're happy now?

This signature is ridiculously large you've been warned.

The cute mare that used to be in my avatar is Yuki Kagayaki, you can follow her on Facebook and Tumblr.

#### Scipi

• Omni Kitten Meow~ =^ω^=
• LV10 31337 u53r (Next: 2000)
• Posts: 1547
• Rating: +192/-3
• Meow :3
##### Re: Code Golf - The Reboot #3
« Reply #8 on: June 15, 2015, 04:28:42 am »
Down to 287 bytes in GBA C ^_^ I can probably cut it down to somewhere below 250 if I can eliminate a for-loop somewhere.

Imma Cat! =^_^= (It's an emoticon now!)
Spoiler For Things I find interesting:
Spoiler For AI Programming:

Spoiler For OldSig:

Spoiler For Projects!:

Spoiler For IMPORTANT NEWS!:
Late last night, Quebec was invaded by a group calling themselves, "Omnimaga". Not much is known about these mysterious people except that they all carried calculators of some kind and they all seemed to converge on one house in particular. Experts estimate that the combined power of their fabled calculators is greater than all the worlds super computers put together. The group seems to be holding out in the home of a certain DJ_O, who the Omnimagians claim to be their founder. Such power has put the world at a standstill with everyone waiting to see what the Omnimagians will do...

Wait... This just in, the Omnimagians have sent the UN a list of demands that must be met or else the world will be "submitted to the wrath of Netham45's Lobster Army". Such demands include >9001 crates of peanuts, sacrificial blue lobsters, and a wide assortment of cherry flavored items. With such computing power stored in the hands of such people, we can only hope these demands are met.

In the wake of these events, we can only ask, Why? Why do these people make these demands, what caused them to gather, and what are their future plans...

#### ben_g

• Hey cool I can set a custom title now :)
• LV9 Veteran (Next: 1337)
• Posts: 1002
• Rating: +125/-4
• Asm noob
##### Re: Code Golf - The Reboot #3
« Reply #9 on: June 15, 2015, 05:27:23 am »
I think I know what my approach (in Ti-BASIC) will be. It will be very slow when golfed completely, and I don't think we should expect any of these to be of practical speed.
yeah, Ti-Basic already needs about a minute to update every pixel without doing any logic. I hope you're patient, c4ooo

Since Axe is also counted based on source code size now, I think I'm going to try that now.
My projects
- The Lost Survivors (Unreal Engine) ACTIVE [GameCommandoSquad main project]
- Oxo, with single-calc multiplayer and AI (axe) RELEASED (screenshot) (topic)
- An android version of oxo (java)  ACTIVE
- A 3D collision detection library (axe) RELEASED! (topic)(screenshot)(more recent screenshot)(screenshot of it being used in a tilemapper)
Spoiler For inactive:
- A first person shooter with a polygon-based 3d engine. (z80, will probably be recoded in axe using GLib) ON HOLD (screenshot)
- A java MORPG. (pc) DEEP COMA(read more)(screenshot)
- a minecraft game in axe DEAD (source code available)
- a 3D racing game (axe) ON HOLD (outdated screenshot of asm version)

This signature was last updated on 20/04/2015 and may be outdated

#### JWinslow23

• Coder Of Tomorrow
• LV7 Elite (Next: 700)
• Posts: 556
• Rating: +43/-6
• I make quality calculator games...when I have time
##### Re: Code Golf - The Reboot #3
« Reply #10 on: June 15, 2015, 11:43:08 am »
EDIT: That pun was probably the worst in the history of code golf.

Well, to be fair, this reboot series doesn't have a lot of "history"

I promise you, the next pun will be better
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
= ?

#### Geekboy1011

• The Oneironaut
• Donator
• LV11 Super Veteran (Next: 3000)
• Posts: 2031
• Rating: +119/-2
• Dream that Awakening dream
##### Re: Code Golf - The Reboot #3
« Reply #11 on: June 15, 2015, 06:03:40 pm »
Sorry, stupid question and off-topic but how do I access IRC?

EDIT: -_- I don't want to spam the fora, so I'll wait.

EDIT: That pun was probably the worst in the history of code golf.

Off topic response to an off topic post.  But it's related to forum etiquette.

As long as the posts are constructive and not spam. There is no such thing as spamming the forum. Post away! And to be honest it's actually recommended to post when ever possible. This way the questions,content is available to everyone. Not just the people active at the time!

#### lirtosiast

• LV3 Member (Next: 100)
• Posts: 44
• Rating: +1/-0
##### Re: Code Golf - The Reboot #3
« Reply #12 on: June 15, 2015, 11:24:53 pm »
It looks like my first attempt will be about 200 bytes, and take over ten minutes per frame. I prefer the short ones, but let's see how this goes.

#### Runer112

• Moderator
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Code Golf - The Reboot #3
« Reply #13 on: June 16, 2015, 09:32:27 am »
Overall, I'm fairly happy with this question being sufficiently specified. However, I see one rule that should probably be specified further:

• The game must start in a pseudo random configuration, and no user input is required.

As an example of abuse, a single cell placed pseudorandomly is a "pseudo random configuration," but not a very interesting one as every generation after the initial will just be entirely empty. You could fix this by specifying that every cell's initial state must have a nonzero chance of being in each state and must be independent (barring reasonable PRNG limitations) of every other cell's initial state.

Also, you may want to consider adding a minimum bound on FPS. I realize this is a code golf contest, but at a point, one has to say that an extremely slow game of life simulation is no longer an acceptable game of life simulation. I understand that this may make the challenge as currently specified more or less impossible in some languages, in which case you could consider extending the exception to the "full screen" rule. I would suggest something like a minimum of 0.1 FPS and allowing entries that cannot meet this at full screen to run on a square board with a side length of at least 16 and no less than the largest power of two that satisfies the minimum FPS.

#### c4ooo

• Project Author
• Posts: 252
• Rating: +10/-1
• The impossible chemical compound.
##### Re: Code Golf - The Reboot #3
« Reply #14 on: June 16, 2015, 11:05:44 am »
Overall, I'm fairly happy with this question being sufficiently specified. However, I see one rule that should probably be specified further:

• The game must start in a pseudo random configuration, and no user input is required.

As an example of abuse, a single cell placed pseudorandomly is a "pseudo random configuration," but not a very interesting one as every generation after the initial will just be entirely empty. You could fix this by specifying that every cell's initial state must have a nonzero chance of being in each state and must be independent (barring reasonable PRNG limitations) of every other cell's initial state.
Fixed

Also, you may want to consider adding a minimum bound on FPS. I realize this is a code golf contest, but at a point, one has to say that an extremely slow game of life simulation is no longer an acceptable game of life simulation. I understand that this may make the challenge as currently specified more or less impossible in some languages, in which case you could consider extending the exception to the "full screen" rule. I would suggest something like a minimum of 0.1 FPS and allowing entries that cannot meet this at full screen to run on a square board with a side length of at least 16 and no less than the largest power of two that satisfies the minimum FPS.
Nahh, it have plenty of time

I think you should specify a minimum screen size, because on any machine without a screen the solution is trivial: since there are no pixels, do nothing.
Standard loopholes apply : http://meta.codegolf.stackexchange.com/questions/1061/loopholes-that-are-forbidden-by-default
IMPORTANT
I will be away starting tomorrow afternoon till about Friday afternoon. If you have any important thing to talk to me about, please ask me before then .
« Last Edit: June 16, 2015, 11:13:22 am by c4ooo »
-German Kuznetsov
The impossible chemical compound.