But it’s kind of fun and not bad for less than half an hour. I made some music! I have and vaguely know how to use GarageBand, so I mostly threw something together:īest song ever? Nah. They say a picture is a thousand words, so here’s about a million: Ludum Dare page, if you’d like to see my entry: I would appreciate a comment if you do anything cool with it. Speaking of which, per the Ludum Dare rules (and because I would have anyways), the full source code: If you’d rather download an executable for Windows/OSX/Linux, you can do so on the GitHub release page: This page will serve as the main entry for Ludum Dare. Feel free to play either the official v1.0 build or the slightly updated (~10 minutes) v1.1 build with:Īnd there you have it. To lose: Kill off all of the plants #keepitaliveĮDIT: I have included a v1.1 update that fixes a few minor bugs.To win: Get the plants to the top of the level.If a block gets stuck, you can hit ENTER to lock it in place.Z and X to rotate it (or crash into things).Left and right to move the block and forth.The most difficult to achieve will probably be point 3 since tetris AI encoded in a CA sounds nearly infeasible by hand. This is just my ideas after thinking for a few minutes, they will probably not work as is in practice, but I think they provide a good starting point for a working-ish solution. I also don't think one could easily implement the saving and restoring of tetris pieces, that would heavily complicate things if we want to stay in a true CA context. Crucially, actual empty cells also needs to be instructed to move in the same way or else you will have issues with uncompleted lines. Each cell that moves down this way needs to also leave behind the empty cell state that instructs cells to fall one block. Move everything down after a line is removed: There has to be some kind of rule that makes static cell blocks fall if the space below it was freed by a destroyed line (using a special empty cell state). We could also imagine cell states which only purpose would be to scan the board at each iteration and chose the best next move, but that would require pausing the falling of blocks in the mean time. Making decisions on how to rotate and move automatically (tetris AI): The empty cell state would probably need to be in fact multiple cell states for which the only purpose is to propagate the current accessible board state, making computations as it propagates upward so that falling pieces can follow the "instruction gradient" from far away. Rotating blocks: The easiest way would be to have a center cell state for each possible piece type and orientation, the rest of the piece would appear and disappear according to the central cell state. If they both meet, they change to a third cell state that propagates horizontally in both directions and disappear. Both of these cell states propagates horizontally to non-empty cells. When a cell from a block is static and touches the side of the world, it changes to the associated world side cell state. Let's see some constraints that would need to be solved and how I would approach that:Ī line needs to disappear when it is filled: for this I would have two cell states, each associated to a side of the world.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |