This topic is for discussion of map #673: Go!
(http://knucklecracker.com/creeperworld3/queryMaps.php?query=thumbnailid&id=673)
Author: Courtesy
Size: 86x86
Desc:
A map loosely based off an old game some refer to as "Go!" Advance across the board cautiously placing nullifiers to maximize AC retention. A simple map with simple CRPL. Big thanks to kwinse for helping me out!
Ooh, implementing Go in CRPL. That would be a welcome break from trying to figure out how to do chess.
Yeah I played around with the idea of really figuring out CRPL and genuinely making go.
But I settled for a far easier project till I know code a bit better.
Excellent fun!
I made two really significant mistakes, so the only thing to do is get back on that horse and go again.
Thanks,
H
Great fun, great use of that script. :D
Quote from: Helper on June 16, 2014, 08:15:14 PM
Excellent fun!
I made two really significant mistakes, so the only thing to do is get back on that horse and go again.
Thanks,
H
What mistakes were those? I'm curious on what went wrong. So I can better prevent (or exploit) it in the future.
I couldn't see how scoring worked and it seemed I could advance regardless of whether I wiped out only Creeper emitters or both. I'm sorry, I quit halfway through.
Sounds like you're expecting more than I know how to do <3.
The board is aesthetic, you don't actually (unfortunately) play Go since I can't code that well. I had to ask for help with even basic scripts :x
Advancing without anti-creeper is simply harder than without it, you can continue regardless of if you destroy the anti--emitters. I apologize if it didn't make sense or didn't entertain you: I will do better next time!
Quote from: planetfall on June 16, 2014, 07:13:48 PM
Ooh, implementing Go in CRPL. That would be a welcome break from trying to figure out how to do chess.
Wait, CHESS is on your summer projects list?
Dude, board games are ambitious.
Quote from: Flabort on June 16, 2014, 10:16:10 PM
Quote from: planetfall on June 16, 2014, 07:13:48 PM
Ooh, implementing Go in CRPL. That would be a welcome break from trying to figure out how to do chess.
Wait, CHESS is on your summer projects list?
Dude, board games are ambitious.
Eeyup. 4D chess, ideally -- I have some ideas, actually. Thing is, I'm not sure I can do even 2D chess without exceeding the opcode limit per frame, and that's just for hot-seat chess with the computer doing nothing but enforcing the rules.
rambling and off-topic
For example, what will the interface be? That has processing implications. Obviously, click on a piece to select, click again to move. But there are some interesting challenges in that. Do I want it to calculate beforehand which moves are valid? That way, I can just have it spawn clickable cores on those squares - click one, move the core (or more likely, simply set the initial location's Square.crpl's piece variable to "1" and the new location's variable to "WhitePawn" or whatever piece it is. That way, if all goes as planned, I can call "piece" 0 GetCoresWithVar to get all occupied squares since strings evaluate to 0, and then I can use StartsWith to determine their color. Though I'm not sure that will work.)
On the other hand, if I do that, it has to do check calculations on every potential move, which is... unpleasant. On the other hand I could just not display valid moves to the player - just select and it tests if the square being moved to is valid. However this would not provide instructions to those who don't know how to play chess, which would be especially terrible for 3D or 4D variants.
Besides, even if I did that, I would have to run a checkmate/stalemate detection at the end of each turn. So then why not just run through each piece on each turn, compile its possible moves, and store them in a list. If, at the end of doing this, no possible moves were found, test if the king is in check. If it is, checkmate, if not, stalemate. Sounds easy, right? It's certainly within the realm of possibility for my own limited coding expertise. But doing it with less than 1,000,000 opcodes? Less sure. If I do some black magic involving execution order (which is based on UID's) and splitting the calculation between multiple cores (each piece calculates its possible moves once a certain variable is set to true, then sets that variable to false, then the game controller core determines checkmate once the variables are all false again). Slightly annoying making pieces not selectable until the calculation is complete, but not impossibly complex. I've had a few more ideas on how to do it just while writing this.
Thankfully, the 3D chess board I want to use is the same size as the 2D chess board (4x4x4 vs 8x8) and the 4D one is only 4 times that size (4x4x4x4) so those won't have too many more potential moves to look at at once... in theory. Though more dimensions would mean more directions to look at for check. Blah.
I hate to point out an argument in that but 4d implies the capability to move pieces in TIME as the last argument I hear for dimension four was that it could be considerd as time so 4d ches is a game where you move a pawn and suddenly the board fills with black queens.
Also I am reading a book series where go is referenced
Here's a hint:try to make figures of eight.i hears they is hard to capture
Also avoid opponents bumping the table when you win.
Speaking of which playing that chess game sounds fun
Also here's a suggestion how about you have a core that manages a set section of the board then sets a variable to true and then sets it's activation variable to false then just run that in a string of cores.
However seing as I can't code cprl to save myself this suggestion may be completely worthless but I am willing to throw stuff at the wall to see what sticks and what doesn't and what turns in to three chickens and several tonnes of mixed building materials including lumps of ice
I think planetfall means 4 spatial dimensions and none of time.
Also there is no "4th" dimension, there are 4 dimensions(macroscopically), but they "can't" be numbered.
(an analogy: if you pour three cups of water together(simultaniously), you get water with a volume of three cups. In this water, you can tell that there are three cups, but not which is the first, second or third cup.)
:)
There are also 2 "types" of dimensions- spatial dimensions and dimensions of time. They can be completely separate, it just happens that in our universe there are as many dimensions as there are.
Quote from: SuperDan on June 18, 2014, 01:01:38 AM
I think planetfall means 4 spatial dimensions and none of time.
Also there is no "4th" dimension, there are 4 dimensions(macroscopically), but they "can't" be numbered.
(an analogy: if you pour three cups of water together(simultaniously), you get water with a volume of three cups. In this water, you can tell that there are three cups, but not which is the first, second or third cup.)
:)
There are also 2 "types" of dimensions- spatial dimensions and dimensions of time. They can be completely separate, it just happens that in our universe there are as many dimensions as there are.
Thanks for pointing this out
The only isue is it breakers my head
And I still don't get the 4d chess thing
Here.
Try this (http://cesarkawakami.github.io/2048-5D/), and see if it helps you understand multiple dimension better.
That game is played on a 2x2x2x2x2 grid (5 spatial dimensions). The regular 2d game is played on a 4x4 grid, so in number of tiles, this one has twice as many as the original.
So in 4d chess (2d being 8x8), the board may look like this:
Spoiler
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
X0X0 0X0X X0X0 0X0X
0X0X X0X0 0X0X X0X0
A 4x4 grid, extended into 4 grids in a third direction (represented horizontally) and then extended 4 rows of grids in a fourth direction (represented vertically). So you have a 4x4 grid of 4x4 grids of tiles.