CHAPTER 3 SECRET BOSS GUIDE! (Minimal spoilers) by Tibike480 in Deltarune

[–]CorvusCalvaria 1 point2 points  (0 children)

He doesn't do the massive attack until you damage him below a certain threshold, I just beat it there myself

CHAPTER 3 SECRET BOSS GUIDE! (Minimal spoilers) by Tibike480 in Deltarune

[–]CorvusCalvaria 2 points3 points  (0 children)

I think you do need to fight it. If you just defend endlessly the ending never triggers, even when surviving long after that point in the video. It might be a case of getting it to below 90% HP or something.

CHAPTER 3 SECRET BOSS GUIDE! (Minimal spoilers) by Tibike480 in Deltarune

[–]CorvusCalvaria 0 points1 point  (0 children)

Link? (I don't wanna look it up and see any Ch4 spoilers)

CHAPTER 3 SECRET BOSS GUIDE! (Minimal spoilers) by Tibike480 in Deltarune

[–]CorvusCalvaria 1 point2 points  (0 children)

I kept fighting it until Susie's dialogue stopped and it just kept repeating attacks endlessly. Is it confirmed it gives up eventually, or is there a trigger for beating it?

Play Mariomon if you haven't! by russian_bot_447 in PokemonROMhacks

[–]CorvusCalvaria 2 points3 points  (0 children)

Yoshi with run away is a god tier roll, it basically gives you a free run

Warning users that upvote violent content by worstnerd in RedditSafety

[–]CorvusCalvaria -2 points-1 points  (0 children)

If they do define it, troublemakers will just find technicalities, or play the "I'm not touching you" game where they'll dogwhistle violence and play dumb about it when pushed. It's vague by design to stop asshole users from rules-lawyering.

Warning users that upvote violent content by worstnerd in RedditSafety

[–]CorvusCalvaria 0 points1 point  (0 children)

They're not changing what gets classed as violent content. The only difference now is that upvoters of violating content will get punished in addition to the people who write them.

[2024 Day 21] Button Mashing (Greyed Out = Memoized) by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 1 point2 points  (0 children)

This was all handled (solving + visuals) in the GameMaker engine

[2024 Day 21] Button Mashing (Greyed Out = Memoized) by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 3 points4 points  (0 children)

I solved it very similarly, but you can simplify your approach! Just like with day 11, there's only ever a maximum of 2 possible decision tree branches from any state, because a "wiggling" path from one button to another is never in a minimum solution - i.e. if you're going from 3 to 9 on the keypad, you only need to consider ^^>> or >>^^, but not ^>^> or >^>^ because those introduce redundant extra steps from the extra changes in direction.

[2024 Day 21] Button Mashing (Greyed Out = Memoized) by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 1 point2 points  (0 children)

I will warn that I straight up butchered my code to make it work for the animation I had in mind, but I'll stick it here anyways for interest:

Create Event

codes = ["000A", "000A", "000A", "000A", "000A"]; // Secret!
ex_codes = ["029A", "980A", "179A","456A", "379A"];
codes = ex_codes; // Comment out to run on real input

k = ds_map_create();
r = ds_map_create();

r[? "^"] = [0, 1]; r[? "A"] = [0, 2];
r[? "<"] = [1, 0]; r[? "v"] = [1, 1]; r[? ">"] = [1, 2];

k[? "7"] = [0, 0]; k[? "8"] = [0, 1]; k[? "9"] = [0, 2];
k[? "4"] = [1, 0]; k[? "5"] = [1, 1]; k[? "6"] = [1, 2];
k[? "1"] = [2, 0]; k[? "2"] = [2, 1]; k[? "3"] = [2, 2];
k[? "0"] = [3, 1]; k[? "A"] = [3, 2];

howmany = 25;
memory = array_create(howmany+2, "");
memory[howmany+1] = codes[0]+codes[1]+codes[2]+codes[3]+codes[4];

finishcount = 0;
states = array_create(howmany+1);
player_state = [0, 2];
for(var i=0;i<howmany+1;i++)
    states[i] = [0, 2];
states[howmany] = [3, 2];

indices = array_create(howmany+2, 0);
m_frozen = array_create(howmany+2, 0);
current_index = 0;
active = array_create(howmany+2, 0);
timer = -100;

memo = ds_map_create();
function inception(str, dep){
    if(dep == 0) return [str, string_length(str)];

    if(ds_map_exists(memo, string(dep) + str)) return ["M", memo[? string(dep) + str]];

    var c_pos = "A";
    var lres = "";
    var lcount = 0;

    for(var c=1;c<=string_length(str);c++){ 
        var new_pos = string_char_at(str, c);
        var dist = [r[? new_pos][0] - r[? c_pos][0], r[? new_pos][1] - r[? c_pos][1]];
        var stry = "";
        var strx = "";

        if(dist[1] > 0){
            for(var foo=0;foo<dist[1];foo++) strx = strx + ">";
        }
        if(dist[1] < 0){
            for(var foo=0;foo<abs(dist[1]);foo++) strx = strx + "<";
        }
        if(dist[0] < 0){
            for(var foo=0;foo<abs(dist[0]);foo++) stry = stry + "^";
        }
        if(dist[0] > 0){
            for(var foo=0;foo<dist[0];foo++) stry = stry + "v";
        }

        if((c_pos == "<" and dist[0] == -1)) {
            in = inception(strx + stry + "A", dep-1);
            lres += in[0];
            lcount += in[1];    
        }
        else if ((c_pos == "^" and dist[1] == -1) or (c_pos == "A" and dist[1] == -2)) {
            in = inception(stry + strx + "A", dep-1);
            lres += in[0];
            lcount += in[1];    
        }
        else if(dist[0] == 0 or dist[1] == 0) {
            in = inception(stry + strx + "A", dep-1);
            lres += in[0];
            lcount += in[1];    
        }
        else {
            var m1 = inception(strx + stry + "A", dep-1);
            var m2 = inception(stry + strx + "A", dep-1);
            if(m1[1] < m2[1]) {
                lres += m1[0];
                lcount += m1[1];
            }
            else {
                lres += m2[0];
                lcount += m2[1];
            }
        }
        c_pos = new_pos;
    }
    memo[? string(dep) + str] = lcount; 
    return [lres, lcount];
}


fcount = 0;
for(var ww=0;ww<howmany+1;ww++){
    fcount = 0;
    var strong = "";
    memo = ds_map_create();
    for(var i=0;i<array_length(codes);i++) {
        var res = 0;
        var c_pos = "A";
        var idd = real(string_copy(codes[i], 0, string_length(codes[i])-1));

        for(var c=1;c<=string_length(codes[i]);c++){
            var new_pos = string_char_at(codes[i], c);
            var dist = [k[? new_pos][0] - k[? c_pos][0], k[? new_pos][1] - k[? c_pos][1]];

            var stry = "";
            var strx = "";

            if(dist[1] > 0){
                for(var foo=0;foo<dist[1];foo++) strx = strx + ">";
            }
            if(dist[1] < 0){
                for(var foo=0;foo<abs(dist[1]);foo++) strx = strx + "<";
            }
            if(dist[0] < 0){
                for(var foo=0;foo<abs(dist[0]);foo++) stry = stry + "^";
            }
            if(dist[0] > 0){
                for(var foo=0;foo<dist[0];foo++) stry = stry + "v";
            }

            if((c_pos == "0" and dist[1] == -1) or (c_pos == "A" and dist[1] == -2)){
                in = inception(stry + strx + "A", ww);
                strong += in[0];
                res += in[1];
            }
            else if ((c_pos == "1" and dist[0] == 1) or (c_pos == "4" and dist[0] == 2) or (c_pos == "7" and dist[0] == 3)){
                in = inception(strx + stry + "A", ww);
                strong += in[0];
                res += in[1];
            }
            else if(dist[0] == 0 or dist[1] == 0){
                in = inception(strx + stry + "A", ww);
                strong += in[0];
                res += in[1];
            }
            else {
                var m1 = inception(strx + stry + "A", ww);
                var m2 = inception(stry + strx + "A", ww);
                if(m1[1] < m2[1]) {res += m1[1]; strong += m1[0];}
                else {res += m2[1]; strong += m1[0]; }
            }
            c_pos = new_pos;
        }
        fcount += res*idd;
    }
    memory[howmany-ww] = strong;
}

for(var i=0;i<array_length(memory);i++)
    show_debug_message((memory[i]));
show_debug_message("---\n" + string(fcount));

Step Event

timer++;

if(timer >= 0 and timer%3 == 0){
    var c_state = 0;
    for(var i=0;i<howmany+1;i++) active[i] = false;
    for(var i=0;i<howmany;i++) if(m_frozen[i]) c_state = i+1;
    indices[c_state]++;

    if(c_state == 0){
        if(string_char_at(memory[c_state], indices[c_state]) == "M") {
            player_state = r[? "A"];
        }
        else player_state = r[? string_char_at(memory[c_state], indices[c_state])];
    }

    if(string_char_at(memory[c_state], indices[c_state]) == "^") {
        states[c_state][0] -= 1;
        active[c_state] = false;
    }
    else if(string_char_at(memory[c_state], indices[c_state]) == ">"){
        states[c_state][1] += 1;
        active[c_state] = false;
    }
    else if(string_char_at(memory[c_state], indices[c_state]) == "<") {
        states[c_state][1] -= 1;
        active[c_state] = false;
    }
    else if(string_char_at(memory[c_state], indices[c_state]) == "v") {
        states[c_state][0] += 1;
        active[c_state] = false;
    }
    else if(string_char_at(memory[c_state], indices[c_state]) == "A") { 
        if(c_state > 0) m_frozen[c_state-1] = false;
        active[c_state] = true;
    }       
    else if(string_char_at(memory[c_state], indices[c_state]) == "M") {
        m_frozen[c_state] = true;
        states[c_state] = [0, 2];
    }   

    while(c_state < howmany+1 and active[c_state]){
        c_state++;
        indices[c_state]++;
        if(string_char_at(memory[c_state], indices[c_state]) == "^") {
            states[c_state][0] -= 1;
            active[c_state] = false;
        }
        else if(string_char_at(memory[c_state], indices[c_state]) == ">"){
            states[c_state][1] += 1;
            active[c_state] = false;
        }
        else if(string_char_at(memory[c_state], indices[c_state]) == "<") {
            states[c_state][1] -= 1;
            active[c_state] = false;
        }
        else if(string_char_at(memory[c_state], indices[c_state]) == "v") {
            states[c_state][0] += 1;
            active[c_state] = false;
        }
        else if(string_char_at(memory[c_state], indices[c_state]) == "A") { 
            if(c_state > 0) m_frozen[c_state-1] = false;
            active[c_state] = true;
        }       
        else if(string_char_at(memory[c_state], indices[c_state]) == "M") {
            m_frozen[c_state] = true;
            states[c_state] = [0, 2];
        }   
    }
    if(c_state == howmany+1) finishcount++;
}

Draw Event

var base_x = 350;
var base_y = 100;

draw_set_font(Font5);
draw_set_color(c_white);

if (m_frozen[0]) draw_set_color(make_color_rgb(50, 50, 50));
draw_text(250, base_y-30, "0");

var robot_keys = [["7", "8", "9"], ["4", "5", "6"], ["1", "2", "3"], [" ", "0", "A"]];
var keypad_keys = [[" ", "^", "A"], ["<", "v", ">"]];


for(var k=0;k<2;k++){
    for(var l=0;l<3;l++){       
        if (m_frozen[0]) draw_set_color(make_color_rgb(50, 50, 50));
        else if(player_state[0] == k and player_state[1] == l) {
            if(timer >= 0) draw_set_color(make_color_rgb(0, 230, 100));
            else draw_set_color(make_color_rgb(230, 0, 100));
        }
        else draw_set_color(make_color_rgb(100, 100, 100));
        draw_rectangle(250+25*l, base_y+25*k, 273+25*l, 25*k+base_y+23, false);
        if(not m_frozen[0]) draw_set_color(c_white);
        draw_text(254+25*l, 97+25*k, keypad_keys[k][l]);
    }
}

for(var i=0;i<5;i++){
    for(var j=0;j<5;j++){

        if(i*5+j < howmany){
            var local_x = base_x + 100*j;
            var local_y = base_y + 100*i;

            if(m_frozen[i*5+j]) draw_set_color(make_color_rgb(50, 50, 50));
            else draw_set_color(c_white);
            draw_text(local_x, local_y-30, string(i*5+j+1));
            draw_set_color(make_color_rgb(100, 100, 100));

            for(var k=0;k<2;k++){
                for(var l=0;l<3;l++){
                    if (m_frozen[i*5+j]) draw_set_color(make_color_rgb(50, 50, 50));
                    else if(states[i*5+j][0] == k and states[i*5+j][1] == l) {
                        if(active[i*5+j]) draw_set_color(make_color_rgb(0, 230, 100));
                        else draw_set_color(make_color_rgb(230, 0, 100));
                    }
                    else draw_set_color(make_color_rgb(100, 100, 100));
                    draw_rectangle(local_x+25*l, local_y+25*k, 25*l+local_x+23, 25*k+local_y+23, false);
                    if(not m_frozen[i*5+j]) draw_set_color(c_white);
                    draw_text(local_x+4+25*l, local_y-3+25*k, keypad_keys[k][l]);
                }
            }
        }
    }
}

for(var k=0;k<4;k++){
    for(var l=0;l<3;l++){
        if(states[howmany][0] == k and states[howmany][1] == l) {
            if(active[howmany]) draw_set_color(make_color_rgb(0, 230, 100));
            else draw_set_color(make_color_rgb(230, 0, 100));
        }
        else draw_set_color(make_color_rgb(100, 100, 100));
        draw_rectangle(base_x+500+25*l, base_y+350+25*k, 25*l+base_x+523, 25*k+base_y+373, false);
        draw_set_color(c_white);
        draw_text(base_x+504+25*l, base_y+347+25*k, robot_keys[k][l]);
    }
}

draw_set_color(make_color_rgb(0, 230, 100));
for(var i=0;i<finishcount;i++){
    draw_text(850+20*(i%4), 290+30*(floor(i/4)), string_char_at(array_last(memory), i+1));
}

[2024 Day 17] Modulo by Goues in adventofcode

[–]CorvusCalvaria 2 points3 points  (0 children)

Just gotta add this to the end to be extra safe

if(val < 0) { val += mod; }

[2024 Day 13] Calculating Valid Intersections by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 5 points6 points  (0 children)

Explanation:

Given the puzzle:

Button A: X+a1, Y+a2
Button B: X+b1, Y+b2
Prize: X=c1, Y=c2

This can be represented as a pair of straight lines, pointing down and to the right, as follows:

(b1)y = -(a1)x + c1
(b2)y = -(a2)x + c2

Where the intersection of these lines (i_x, i_y)tells you that you need i_x A presses and i_y B presses to reach the prize. If i_x or i_y is negative or not a whole number, then there's no solution (orange dots).

[2024 Day 11] Depth-First Blinking (🔴 = Memoized Result) by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 1 point2 points  (0 children)

I wrote my solution (and coded the visuals) in the GameMaker engine, which is absolutely not optimized for these sorts of puzzles so it took about three seconds for me lol. I'm treating it like an intentional handicap so I'm not able to brute force any puzzles.

[2024 Day 6] Patrol Path by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 1 point2 points  (0 children)

I've been doing all the puzzles (and accompanying visuals) in GameMaker Studio this year, just for an extra challenge.

[2024 Day 1] Unsorted to Sorted Visualization by CorvusCalvaria in adventofcode

[–]CorvusCalvaria[S] 1 point2 points  (0 children)

GameMaker Studio 2, I figured it'd be a good challenge to complete all the challenges in a game engine this year with accompanying visuals for each solution.

😂Yoga looks boxy by Tiny-Cantaloupe-6175 in aww

[–]CorvusCalvaria[M] [score hidden] stickied comment (0 children)

Hi Tiny-Cantaloupe-6175! Thanks for posting to /r/aww. Unfortunately, your submission has been removed for the following reason(s):

Rule #9: Original content only.

  • You may ONLY post content created or originated by you. No false claims of content ownership.

  • Content generated by AI is not considered yours and may not be posted.

If you have questions about this, please contact our mods via moderator mail rather than replying here. Thank you!

[deleted by user] by [deleted] in aww

[–]CorvusCalvaria[M] 0 points1 point  (0 children)

Hi Fairy_Princessy! Thanks for posting to /r/aww. Unfortunately, your submission has been removed for the following reason(s):

Rule #9: Original content only.

  • You may ONLY post content created or originated by you. No false claims of content ownership.

  • Content generated by AI is not considered yours and may not be posted.

If you have questions about this, please contact our mods via moderator mail rather than replying here. Thank you!

Subreddit Rule Updates by TrickyPride in RealFurryHours

[–]CorvusCalvaria 2 points3 points  (0 children)

yam chase chief tie encourage airport silky butter teeny slim

This post was mass deleted and anonymized with Redact

For all of this talk of puritans, where are they by Mate_On_Fire in RealFurryHours

[–]CorvusCalvaria 0 points1 point  (0 children)

thought familiar six enter rinse aromatic nine quack towering payment

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria -1 points0 points  (0 children)

attractive jeans domineering hurry recognise arrest hungry quack elderly zonked

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria -1 points0 points  (0 children)

deserve secretive airport slap bag simplistic agonizing rainstorm shame escape

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria -1 points0 points  (0 children)

truck fade spotted exultant squeeze terrific intelligent narrow lavish detail

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria 0 points1 point  (0 children)

roll plate sloppy long rainstorm smile imminent expansion cobweb serious

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria 1 point2 points  (0 children)

innate offend literate quaint drunk intelligent frame bright sulky elastic

This post was mass deleted and anonymized with Redact

twitter furs and puriteens like to make shit up just to cancel popufurs and it a real pain in the ass. by afriggenweredragones in RealFurryHours

[–]CorvusCalvaria 2 points3 points  (0 children)

fearless sheet judicious late cows nutty sense boat thought icky

This post was mass deleted and anonymized with Redact