4 ms·
240: left 26, up 27, right 30, up 32, right 33, up 35, left 38, down 41, left 42, down 45, right 50, up 53, right 54, up 58, right 59, up 60, right 61, up 66, r
by csallen 7y ago
240: left 26, up 27, right 30, up 32, right 33, up 35, left 38, down 41, left 42, down 45, right 50, up 53, right 54, up 58, right 59, up 60, right 61, up 66, right 67, up 69, right 71, up 73, right 78, down 81, right 82, down 83, right 84, down 85, right 87, down 88, right 90, down 93, right 94, down 95, right 99, up 100, right 103, down 109, left 112, down 113, left 114, down 115, left 116, down 119, left 123, down 127, left 130, down 131, right 132, down 135, left 136, down 137, left 142, up 145, left 148, up 151, left 161, up 169, right 172, up 177, left 178, up 179, right 182, up 191, right 200, down 203, right 205, down 207, right 211, down 215, right 222, down 227, left 228, down 229, right 233, down 234, right 235, down 240
- deleted 7y ago[deleted]
- aur09 7y agoThis is impressive. I can tell that you effectively group the red squares together, but I can't figure out exactly how you went about it. What was your thought process?
- csallen 7y agoI wrote a solver that's just brute-forcing solutions. Specifically, it's doing a depth-first search through a tree where every node is a move with four child moves (left, up, right, and down). From what I can tell, the strategy is mostly what other people are doing by hand: go to one side, delay there to gather red dots for as long as possible, then move to an adjacent side. Repeat. The solver has a few tactical tricks as well, involving knowing how to get as close to red dots as possible without getting hit, and also how to move such that the dots group together. I just posted a game with a score of 346 where you can see this quite clearly. It's able to actually get in more than two full laps around.
- shhsshs 7y agoI made a JS snippet to parse/execute moves formatted like this: function parseMoves(str) { const toks = str.split(',') const moves = [] for (const tok of toks) { const [dir, num] = tok.trim().split(' ') moves.push(...new Array(num - moves.length).fill(dir)) } return moves } function toCharCode(key) { switch (key) { case 'down': return 40 case 'up': return 38 case 'right': return 39 case 'left': return 37 } } async function doMoves(str) { const moves = parseMoves(str) for (const move of moves) { await new Promise(resolve => setTimeout(resolve, 100)) myRPG.parseKeyPress({ keyCode: toCharCode(move) }) } } doMoves('left 26, up 27, right 30, up 32, right 33, up 35, left 38, down 41, left 42, down 45, right 50, up 53, right 54, up 58, right 59, up 60, right 61, up 66, right 67, up 69, right 71, up 73, right 78, down 81, right 82, down 83, right 84, down 85, right 87, down 88, right 90, down 93, right 94, down 95, right 99, up 100, right 103, down 109, left 112, down 113, left 114, down 115, left 116, down 119, left 123, down 127, left 130, down 131, right 132, down 135, left 136, down 137, left 142, up 145, left 148, up 151, left 161, up 169, right 172, up 177, left 178, up 179, right 182, up 191, right 200, down 203, right 205, down 207, right 211, down 215, right 222, down 227, left 228, down 229, right 233, down 234, right 235, down 240')
- benburk 7y ago248: left 26, up 27, right 30, up 33, left 36, up 41, right 44, up 45, right 48, down 51, right 52, down 55, left 62, down 69, right 74, down 75, right 76, down 79, right 80, down 82, right 86, down 91, right 92, down 93, right 98, up 101, right 102, up 103, right 104, up 105, right 106, up 107, right 110, up 114, right 118, up 119, right 122, up 127, left 130, up 131, left 132, up 133, left 134, up 135, left 136, up 139, left 142, up 143, left 144, up 147, left 150, up 153, left 154, up 155, left 160, down 163, left 166, down 169, left 177, down 185, right 189, down 193, right 195, down 197, right 200, down 203, right 206, down 209, right 210, down 213, right 218, up 221, right 222, up 223, right 224, up 225, right 226, up 227, right 230, up 233, right 236, up 239, right 243, down 244, up 247, left 248
- csallen 7y ago346: left 26, up 27, right 30, up 32, right 33, up 35, left 38, down 41, left 42, down 45, right 50, up 53, right 54, up 58, right 59, up 60, right 61, up 66, right 67, up 69, right 71, up 73, right 78, down 81, right 82, down 83, right 84, down 85, right 87, down 88, right 90, down 93, right 94, down 95, right 99, up 100, right 103, down 109, left 112, down 113, left 114, down 115, left 116, down 119, left 123, down 127, left 130, down 131, right 132, down 135, left 136, down 137, left 142, up 145, left 148, up 151, left 161, up 169, right 174, up 179, left 180, up 181, right 184, up 189, left 190, up 192, right 193, up 194, right 195, up 196, right 202, down 205, right 207, down 209, right 212, down 215, right 219, down 221, right 226, up 227, right 230, down 237, left 241, down 243, left 244, down 247, left 248, down 249, left 252, down 253, left 254, down 257, left 258, down 259, left 262, down 263, left 264, down 267, left 272, up 275, left 277, up 279, left 283, up 286, left 287, up 289, left 293, up 299, right 302, up 303, right 304, up 308, right 311, up 313, right 316, up 321, left 323, up 326, right 332, down 335, right 338, down 341, right 344, down 346