« first day (4887 days earlier)      last day (313 days later) » 

4:01 AM
Is that the same one from previous years?
 
5 hours later…
8:51 AM
looks like this could be good.
and an old "demo" gameplay video
only issue I see in the "trailer" is that the character creation seems to only have two very stereotypical body shapes - bulky male and slender female.
@SaintWacko Yup
BG3 adds permadeath.
Day 1 complete
Yes I'm up early. I woke up early and couldn't fall back asleep. Figured I might as well do Advent of Code.
Also knows as "your fault for playing trash game mode and thinking a bug could not kill you" :P
... really, people still play permadeath modes?
When game devs have clearly shown that they can add "features" that can kill you totally out of your control? (note, this is not BG3 specific)
@Fredy31 THIS.
(don't ask me why 20 instead of 10)
9:34 AM
@SPArcheon one thing to keep in mind that as a D&D game, permadeath does make sense in BG3, because in the original P&P game dying meant rolling a new character usually
@Nzall Maybe true, but usually you don't die in a tabletop game because the table crashed or had a bug. Videogames... you do.
and like I said it is not a BG3 specific thing.
Imagine having 100+hours on NMS permadeath and then dying to a clip-thru-floor bug.
Personally, I think I would then use the game disk to play real life Duck Hunt game C.
@SPArcheon No, but tabletop games can have things like the GM making rulings that are inconsistent with the rules of the game, which can be considered bugs
@Nzall if you get so far to fight over the rules (which exist only to give a basic framework for fun IMHO) then you are playing with the wrong persons.
In which case permadeath is the smallest of your problems.
Also, again, don't focus on just BG3, this is valid for any permadeath mode (note: exceptions made for very specific games like some rougelikes where the concept is tied to the game core gimmik, and even then you usually keep some sort of progression - we no longer live in the nethack age )
Also, if one really likes masochistic behaviors in games... there is still the option to Seek Out Mr Eaten Name...
BTW, I won't go in much detail to not annoy others but I would point out that "replayability" is different from "continue playability"
there are games that you can continue to play forever but that you don't want to START AGAIN.
No Man Sky - simple example.
You can play as long as you want, but WHY you think most players HATE expeditions?
Because they force you to start a different save and do the same things again every time.
Repair your ship. Build a base you will never use because as soon as you are done with the expedition you will return to your main save. Gather resources and unlock the same hyperdrive engines again. All for 10 minute worth of time gated content at the end of the expedition.
Reminds me of Fire Emblem Warriors. Which had (optional) units permadeath. In a MUSOU game. For your AI CONTROLLED COMPANIONS TOO
(and people still playing it to show how "Macho" they where, only to reset the game during a mission if someone died)
 
2 hours later…
12:11 PM
@SaintWacko Yah it's not changed. You're already in the leaderboard
 
2 hours later…
1:45 PM
@Ronan How'd you find part 2 today?
It was straightforward, but I'm not pleased with the code for it
@Ronan I also found it straightforward, but their seems to be have been quite a few people that got tripped up by it.
There's a particular pattern in the input that's not in the examples that threw me for a sec
Supposedly a lot of peoples solutions didn't handle overlap very well.
@Ronan If you mean the overlap, I didn't even think about that, but my solution accounted for it anyways. So, happy accident.
Yeah mine didn't, but it was an easy fix for it
1:54 PM
I was looking at some of the first year's puzzles, and the puzzles have definitely gotten more difficult on average since then.
They're still simple in concept, but the actual code needed is more difficult for sure
The early years definitely had some that were super hard to explain, but the code turned out simple if you could understand what it was asking
 
1 hour later…
2:59 PM
Thing is is it Fire emblem rules or Xcom rules for perma death.

Fire emblem (might have changed but when I played) you could roll back to an old save.

Xcom auto saves each turn, no manual saves, so someone dies, you can't roll back
@Fredy31 XCOM allows you to rollback too. Ironman is what disabled loading previous saves.
ah I tought Ironman was active by default in xcom
and could not remember the 1 save mode's name
 
1 hour later…
4:10 PM
Oh right I should install .net 8.0 before setting things up on 7.0
@Unionhawk The fuuuuuttuuuurrreee
4:43 PM
@Wipqozn My handling of overlapping is very dumb and I love it so much
For anyone who wants to see the beautiful stupidity
Wait why the frick does my part 1 work
@SaintWacko Just for accuracy, "zero" is not a valid option
Wait why does my part 2 not work
>:(
4:59 PM
@Batophobia Ah, I wasn't sure, and it was faster to just add it lol
@SaintWacko Thanks I hate it
3
Oh
I see what it's doing
That's sneaky
@SaintWacko I had a feeling this was the approach you used. I agree with @Ronan ,I hate it.
@Unionhawk OVERLAPS BABY
@SaintWacko My solution doesn't care about overlaps at all: github.com/Wipqozn113/adventofcode/blob/main/2023/day1/p2.py
I'm just going to make deleting using System.Text.RegularExpressions; its own commit with comment "oh"
@Ronan Isn't it just the worst?
5:05 PM
@SaintWacko A lot of people on r/adventofcode did that.
@Wipqozn Oh, haha
@SaintWacko yeah it's how I knew exactly what your solutio n was before looking, ha.
@SaintWacko Does typescript have a replacefirst() function?
or find first
I suppose regex does find first by default, depending on how you config it
Right
.replace just functions like replaceFirst
Gotta give it a regex with /g to make it to all
@SaintWacko oh good
It was finding last that gave me the snag, but I found a simple way of doing it
5:09 PM
Oh wait
I just need to learn how to use regex I think?
I do wish javascript had python's array slicing
Having to use .slice is stupid
Well, in that case, suggestion for how you could improve your solution. Instead of running the "Replace" on the same string over and over. Just create multiple instances of the string, one for each replacement.
Buut I wish python had javascript's dictionary key access, because having to do ['key'] is stupid
You don't need to worry about the o1ne stuff in that case.
Just need to remember which of your strings had the earliest occurrence of the string number, then search that string for what's the first instance of a number.
This is my typescript solution for reference github.com/Nanor/advent_of_code/blob/main/2023/days/day1.ts
5:11 PM
And then just find the first and the last digits in each modfied string?
@SaintWacko My coworker and I had a laugh at this. Better than my solution
Er
In all modified strings
@Fredy31 doesn't really matter. Why would you put permadeath on AI controlled characters in a MUSOU type game.
@MBraedley I think your repo is private
@SaintWacko No. You just need to know which string had the earliest (And latest) replacement happen, then search that string for an actual numeric digit, to see if it happens before.
For find the last instance, did anyone reverse the string and then just do a "findFirst()" with backwards strings? aka one == eno, two == owt, et cetera.
5:13 PM
@Ronan Oh dang, that's clever
I like it
Yeah, adding a greedy selector before the regex makes it try to make it as long as possible so you'll get the last match
@SaintWacko Python was perfect for this one, since string[n:m] works just fine if m extends beyond the end of the string.
> snum == input[i : i + len(snum)]
Which is why that works . Where snum is one, two, three, et cetera.
@SaintWacko There, fixed
@MBraedley Unless I'm in caching hell, it's still a 404
maybe, settings didn't save
5:16 PM
Same
They don't autosave in github
Silly github. All games have autosaving now.
Right?
Github is the best game
Now it workS!
@MBraedley My favourite part about your program is it's 69 lines. Nice.
there we go, had to click 3 times, not twice
Considering you have an empty comment, I'm wondering if that was intentional.
5:17 PM
Dangit, now I have to remember how to read C++
not at all intentional
@SaintWacko The hardest bit about that is the terrible regex library in the standard library
@MBraedley Are you trying to stick to just the standard library again this year?
I forget, can you do a using std; to get rid of all those std:: bits?
Yeah, but if I need to I'll look for vcpgks
@SaintWacko Yes, but most style guides say not to do that.
@MBraedley Pulls in too much overhead?
5:19 PM
@MBraedley Oh interesting
@Wipqozn Risk of name collisions
@MBraedley OKay, figured it had to be one of the two.
Especially from C macros like min and max. If you have using std but don't #define NOMINMAX then you're going to use the C macros instead of getting the desired compiler error.
Speaking of which, I should probably add that to my CMakeLists.txt
there we go that looks much less dumb. Some less dumb.
I do like that I can just give First and Last a Func<char, bool> without it needing to be a lambda
@MBraedley Nasty
@Unionhawk You're 2 lines away from being Nice.
@Unionhawk but also, I like it.
5:35 PM
No I don't know why it captures an empty group in Groups[0] and frankly, I'm too afraid to figure it out
That's some dark wizard shit I'm sure
@Unionhawk Could the ? (optional) somehow be matching...nothing?
but it's also not a ? at the en d so yeah
Nah that (?= is something about lookahead, which, something something allows overlaps?
But also doesn't capture a match which is why it allows overlaps
But yeah it matches nothing (matches.values has a bunch of empty strings) but it captures groups like normal
Normalish anyway
The worst part is our python friends apparently have some shit like Overlaps=true if I recall the first SO answer I found on the topic of regex overlaps
5:57 PM
@Unionhawk That's because Python is magical and does all things
@Unionhawk I might try this tonight (or later this afternoon). Already gave it a shot, but I think I need to use regex_iterator instead of regex_token_iterator.
6:14 PM
Unrelatedly, carrying two bags in payday is super fun
6:44 PM
Is it tomorrow yet? I need more advent of code.
I'm curious how difficult tomorrow will be. It's only day 2, but it's also the weekend, and weekends are usually harder.
6:57 PM
@Wipqozn I mean, today had a rare early edge case
7:12 PM
@MBraedley That is true
@MBraedley actually, I'm probably not including windows.h, so probably don't have to worry about NOMINMAX but it's still good practice anyway.
7:40 PM
Updated my part 2 solution based on @Unionhawk's regex. Should probably std::transform the regex iter into a vector of strings (would make what's happening in the lookup clearer), but whatever.
8:36 PM
@Wipqozn Not anymore :(
 
2 hours later…
10:24 PM
@MBraedley It's gotten worse then, smh
 
1 hour later…
11:30 PM
Woooo tier 7 relic achieved
Taking Berserker since I don't think I am legally allowed to take soul steal with my other relics
(production, bankers, and farmers should be good enough for heals and prayer restoration)

« first day (4887 days earlier)      last day (313 days later) »