• 0 Posts
  • 32 Comments
Joined 1 year ago
cake
Cake day: June 22nd, 2023

help-circle








  • I just finished Scorn, it was very interesting.

    I feel like the combat wasn’t necessary since the puzzles and exploration felt like the main focus of the game, but at the same time, I don’t know how they could have made the environment feel dangerous without the threat of death. There was a puzzle later in the game that did require you to injure yourself, but I don’t think that would have worked as a replacement for combat in the rest of the game, and being present throughout the game would lessen the impact of it in the short moment where it is actually necessary. Also, the guns were very neat looking, so that is an additional upside to having combat.

    Even though this sounds like a lot of complaining, I don’t think I could come up with any other criticisms, as pretty much everything else about the game felt perfect. I don’t think it is the sort of thing I will play again, but it will be something I will think back on more than most other games.





  • Python

    Part 1: https://github.com/porotoman99/Advent-of-Code-2023/blob/main/Day 7/part1.py

    Code
    import os
    
    filePath = os.path.dirname(os.path.realpath(__file__))
    inputFilePath = filePath + "\\adventofcode.com_2023_day_7_input.txt"
    # inputFilePath = filePath + "\\part1.txt"
    
    def typeSort(hand):
    	cardCount = {
    		"2": 0,
    		"3": 0,
    		"4": 0,
    		"5": 0,
    		"6": 0,
    		"7": 0,
    		"8": 0,
    		"9": 0,
    		"T": 0,
    		"J": 0,
    		"Q": 0,
    		"K": 0,
    		"A": 0
    	}
    	for card in hand:
    		cardCount[card] += 1
    	cardTotals = list(cardCount.values())
    	cardTotals.sort(reverse=True)
    	if(cardTotals[0] == 5):
    		return 6
    	elif(cardTotals[0] == 4):
    		return 5
    	elif(cardTotals[0] == 3 and cardTotals[1] == 2):
    		return 4
    	elif(cardTotals[0] == 3):
    		return 3
    	elif(cardTotals[0] == 2 and cardTotals[1] == 2):
    		return 2
    	elif(cardTotals[0] == 2):
    		return 1
    	else:
    		return 0
    
    def bucketSort(camelCard):
    	totalScore = 0
    	cardOrder = ["2","3","4","5","6","7","8","9","T","J","Q","K","A"]
    	hand = camelCard[0]
    	totalScore += cardOrder.index(hand[4]) * 15 ** 1
    	totalScore += cardOrder.index(hand[3]) * 15 ** 2
    	totalScore += cardOrder.index(hand[2]) * 15 ** 3
    	totalScore += cardOrder.index(hand[1]) * 15 ** 4
    	totalScore += cardOrder.index(hand[0]) * 15 ** 5
    	return totalScore
    
    hands = []
    bids = []
    
    with open(inputFilePath) as inputFile:
    	for line in inputFile:
    		lineSplit = line.split()
    		hand = lineSplit[0]
    		bid = lineSplit[1]
    		hands.append(hand)
    		bids.append(bid)
    
    bids = [int(bid) for bid in bids]
    
    camelCards = list(zip(hands,bids))
    
    typeBuckets = [[],[],[],[],[],[],[]]
    
    for camelCard in camelCards:
    	hand = camelCard[0]
    	typeScore = typeSort(hand)
    	typeBuckets[typeScore].append(camelCard)
    
    finalCardSort = []
    
    for bucket in typeBuckets:
    	if(len(bucket) > 1):
    		bucket.sort(key=bucketSort)
    	for camelCard in bucket:
    		finalCardSort.append(camelCard)
    
    camelScores = []
    
    for camelIndex in range(len(finalCardSort)):
    	scoreMultiplier = camelIndex + 1
    	camelCard = finalCardSort[camelIndex]
    	camelScores.append(camelCard[1] * scoreMultiplier)
    
    print(sum(camelScores))
    

    Part 2: https://github.com/porotoman99/Advent-of-Code-2023/blob/main/Day 7/part2.py

    Code
    import os
    
    filePath = os.path.dirname(os.path.realpath(__file__))
    inputFilePath = filePath + "\\adventofcode.com_2023_day_7_input.txt"
    # inputFilePath = filePath + "\\part1.txt"
    
    def typeSort(hand):
    	cardCount = {
    		"J": 0,
    		"2": 0,
    		"3": 0,
    		"4": 0,
    		"5": 0,
    		"6": 0,
    		"7": 0,
    		"8": 0,
    		"9": 0,
    		"T": 0,
    		"Q": 0,
    		"K": 0,
    		"A": 0
    	}
    	for card in hand:
    		cardCount[card] += 1
    	jokerCount = cardCount["J"]
    	cardCount["J"] = 0
    	cardTotals = list(cardCount.values())
    	cardTotals.sort(reverse=True)
    	if(cardTotals[0] + jokerCount == 5):
    		return 6
    	elif(cardTotals[0] + jokerCount == 4):
    		return 5
    	elif(
    		cardTotals[0] + jokerCount == 3 and cardTotals[1] == 2
    		or cardTotals[0] == 3 and cardTotals[1] + jokerCount == 2
    	):
    		return 4
    	elif(cardTotals[0] + jokerCount == 3):
    		return 3
    	elif(
    		cardTotals[0] + jokerCount == 2 and cardTotals[1] == 2
    		or cardTotals[0] == 2 and cardTotals[1] + jokerCount == 2
    	):
    		return 2
    	elif(cardTotals[0] + jokerCount == 2):
    		return 1
    	else:
    		return 0
    
    def bucketSort(camelCard):
    	totalScore = 0
    	cardOrder = ["J","2","3","4","5","6","7","8","9","T","Q","K","A"]
    	hand = camelCard[0]
    	totalScore += cardOrder.index(hand[4]) * 15 ** 1
    	totalScore += cardOrder.index(hand[3]) * 15 ** 2
    	totalScore += cardOrder.index(hand[2]) * 15 ** 3
    	totalScore += cardOrder.index(hand[1]) * 15 ** 4
    	totalScore += cardOrder.index(hand[0]) * 15 ** 5
    	return totalScore
    
    hands = []
    bids = []
    
    with open(inputFilePath) as inputFile:
    	for line in inputFile:
    		lineSplit = line.split()
    		hand = lineSplit[0]
    		bid = lineSplit[1]
    		hands.append(hand)
    		bids.append(bid)
    
    bids = [int(bid) for bid in bids]
    
    camelCards = list(zip(hands,bids))
    
    typeBuckets = [[],[],[],[],[],[],[]]
    
    for camelCard in camelCards:
    	hand = camelCard[0]
    	typeScore = typeSort(hand)
    	typeBuckets[typeScore].append(camelCard)
    
    finalCardSort = []
    
    for bucket in typeBuckets:
    	if(len(bucket) > 1):
    		bucket.sort(key=bucketSort)
    	for camelCard in bucket:
    		finalCardSort.append(camelCard)
    
    camelScores = []
    
    for camelIndex in range(len(finalCardSort)):
    	scoreMultiplier = camelIndex + 1
    	camelCard = finalCardSort[camelIndex]
    	camelScores.append(camelCard[1] * scoreMultiplier)
    
    print(sum(camelScores))
    

    I tried to do this one as quickly as possible, so the code is more messy than I would prefer, but it works, and I don’t think the solution is too bad overall.

    Edit: I went back and changed it to be a bit better. Here are my new solutions:

    Part 1 v2: https://github.com/porotoman99/Advent-of-Code-2023/blob/main/Day 7/part1v2.py

    Code
    import os
    
    filePath = os.path.dirname(os.path.realpath(__file__))
    inputFilePath = filePath + "\\adventofcode.com_2023_day_7_input.txt"
    # inputFilePath = filePath + "\\part1.txt"
    
    CARD_ORDER = "23456789TJQKA"
    
    def typeSort(camelCard):
    	cardCount = {}
    	for card in CARD_ORDER:
    		cardCount[card] = 0
    	hand = camelCard[0]
    	for card in hand:
    		cardCount[card] += 1
    	cardTotals = list(cardCount.values())
    	cardTotals.sort(reverse=True)
    	if(cardTotals[0] == 5):
    		return 6
    	elif(cardTotals[0] == 4):
    		return 5
    	elif(cardTotals[0] == 3 and cardTotals[1] == 2):
    		return 4
    	elif(cardTotals[0] == 3):
    		return 3
    	elif(cardTotals[0] == 2 and cardTotals[1] == 2):
    		return 2
    	elif(cardTotals[0] == 2):
    		return 1
    	else:
    		return 0
    
    def handSort(camelCard):
    	totalScore = 0
    	hand = camelCard[0]
    	totalScore += CARD_ORDER.index(hand[4]) * 15 ** 1
    	totalScore += CARD_ORDER.index(hand[3]) * 15 ** 2
    	totalScore += CARD_ORDER.index(hand[2]) * 15 ** 3
    	totalScore += CARD_ORDER.index(hand[1]) * 15 ** 4
    	totalScore += CARD_ORDER.index(hand[0]) * 15 ** 5
    	return totalScore
    
    hands = []
    bids = []
    
    with open(inputFilePath) as inputFile:
    	for line in inputFile:
    		lineSplit = line.split()
    		hand = lineSplit[0]
    		bid = lineSplit[1]
    		hands.append(hand)
    		bids.append(int(bid))
    
    camelCards = list(zip(hands,bids))
    camelCards = sorted(camelCards, key=lambda x: (typeSort(x), handSort(x)))
    
    camelScores = []
    
    for camelIndex in range(len(camelCards)):
    	scoreMultiplier = camelIndex + 1
    	camelCard = camelCards[camelIndex]
    	camelScores.append(camelCard[1] * scoreMultiplier)
    
    print(sum(camelScores))
    

    Part 2 v2: https://github.com/porotoman99/Advent-of-Code-2023/blob/main/Day 7/part2v2.py

    Code
    import os
    
    filePath = os.path.dirname(os.path.realpath(__file__))
    inputFilePath = filePath + "\\adventofcode.com_2023_day_7_input.txt"
    # inputFilePath = filePath + "\\part1.txt"
    
    CARD_ORDER = "J23456789TQKA"
    
    def typeSort(camelCard):
    	cardCount = {}
    	for card in CARD_ORDER:
    		cardCount[card] = 0
    	hand = camelCard[0]
    	for card in hand:
    		cardCount[card] += 1
    	jokerCount = cardCount["J"]
    	cardCount["J"] = 0
    	cardTotals = list(cardCount.values())
    	cardTotals.sort(reverse=True)
    	if(cardTotals[0] + jokerCount == 5):
    		return 6
    	elif(cardTotals[0] + jokerCount == 4):
    		return 5
    	elif(
    		cardTotals[0] + jokerCount == 3 and cardTotals[1] == 2
    		or cardTotals[0] == 3 and cardTotals[1] + jokerCount == 2
    	):
    		return 4
    	elif(cardTotals[0] + jokerCount == 3):
    		return 3
    	elif(
    		cardTotals[0] + jokerCount == 2 and cardTotals[1] == 2
    		or cardTotals[0] == 2 and cardTotals[1] + jokerCount == 2
    	):
    		return 2
    	elif(cardTotals[0] + jokerCount == 2):
    		return 1
    	else:
    		return 0
    
    def handSort(camelCard):
    	totalScore = 0
    	hand = camelCard[0]
    	totalScore += CARD_ORDER.index(hand[4]) * 15 ** 1
    	totalScore += CARD_ORDER.index(hand[3]) * 15 ** 2
    	totalScore += CARD_ORDER.index(hand[2]) * 15 ** 3
    	totalScore += CARD_ORDER.index(hand[1]) * 15 ** 4
    	totalScore += CARD_ORDER.index(hand[0]) * 15 ** 5
    	return totalScore
    
    hands = []
    bids = []
    
    with open(inputFilePath) as inputFile:
    	for line in inputFile:
    		lineSplit = line.split()
    		hand = lineSplit[0]
    		bid = lineSplit[1]
    		hands.append(hand)
    		bids.append(int(bid))
    
    camelCards = list(zip(hands,bids))
    camelCards = sorted(camelCards, key=lambda x: (typeSort(x), handSort(x)))
    
    camelScores = []
    
    for camelIndex in range(len(camelCards)):
    	scoreMultiplier = camelIndex + 1
    	camelCard = camelCards[camelIndex]
    	camelScores.append(camelCard[1] * scoreMultiplier)
    
    print(sum(camelScores))
    





  • You might be able to try putting

    getstage TG03
    

    in the console to figure out where the game thinks you are in the quest. The quest page on UESP should have a table at the bottom that gives a breakdown of what the values mean. You can try doing what the quest expects of you, or using

    setstage TG03 [stage]
    

    to put the quest back on track. Make sure to make a save before messing with the console, last time I broke something with it, I had to redo 10 hours since my last save


  • As far as I’m aware, the inclusion of real-world animal species in the older anime and games was due to the lack of variety in existing Pokemon species. The last time I know they referred to a real animal was in 2016, where the Pokedex entry for Raichu says it can knock out an Indian elephant. More recently, Raichu’s Pokedex entry was updated to instead say it can incapacitate a Copperajah.