'I'D LIKE TO BUY A VOWEL!!!' - Human Resource Machine Part 06 - 1080p HD PC Gameplay Walkthrough

preview_player
Показать описание
Let's Play HUMAN RESOURCE MACHINE! This is a "Hermit's Week With Human Resource Machine" gameplay series, which means I will play and review the game for *about* 7 days/episodes. If you guys really love it and the likes/views are high, we'll turn it into a full blown series! If not...we toss it and find another game ;-) This is a PC gameplay walkthrough in 1080p HD.

About Human Resource Machine:

Program little office workers to solve puzzles. Be a good employee! The machines are coming... for your job.

Human Resource Machine is a puzzle game for nerds. In each level, your boss gives you a job. Automate it by programming your little office worker. If you succeed, you'll be promoted up to the next level for another year of work in the vast office building. Congratulations!

Don't worry if you've never programmed before - programming is just puzzle solving. If you strip away all the 1's and 0's and scary squiggly brackets, programming is actually really simple, logical, beautiful, and something that anyone can understand and have fun with! Are you already an expert? There will be extra challenges for you.

From the creators of World of Goo and Little Inferno. Have fun! Management is watching.

Support your favorite Hermit!!!!

Рекомендации по теме
Комментарии
Автор

For the duplicate removal, you don't need all these extra temporary variables and such.

Consider 14 to be your current pointer to the first empty slot on the board. When you inbox something, you copy it to [14], then you use 13 as a count down. Copy 14 to 13, bump down 13, then grab [14] again, and compare it to [13] with a subtract. If it's zero, then you know that the letter is identical, so you skip it and go back to inbox. Since you did not bump 14, then your loop will copy the new letter over the duplicate old one. However, if you make 13 go all the way to negative, this means you have not seen the letter before, and so you outbox it and bump 14 to point to the next empty slot.

You can get the solution down to 16 instructions this way.

Otto
Автор

throw all the nerdy stuff away and look at 4min in! THAT HAND AT THE BOTTOM MOVES!

infobox
Автор

I'm deeply impressed :) That last one was pretty epic... One try, on camera, while talking? Nice ^^

Exevium
Автор

I had no idea this game actually went into linked lists... I'm actually rather impressed

GuitarGuruGaming
Автор

I had no idea this was a game about programming! I LOVE programming, but thought this was some sort of Fallout Shelter-type game.

you_just
Автор

Excellent job on Scavenger Chain, I was sure it wouldn't work (I had a different solution in mind), but wow! You ARE a genius GenerikB :)

pepzi_
Автор

I don't think you need that end of string zero. If check array equals place array you've hit the end. it saves you one instruction on copying the end of string zero.

rbarkoch
Автор

@20:00 ish, you don't actually need the place array. It's a little complicated, but if you look closely, you'll notice that every time you use the place array, it has the same value as the check array. You have to move a a couple of things around to get it to work, though.

epigeios
Автор

Genny, ur so talented. You make like 3 videos a day while other you tubers make 1 and complain. Your funny and make me smile. You deserved 10M subs.

DoritoDan
Автор

For the final challenge, the column number will be address % 4 (% means modulus) and the row number will be math.ceil(address / 4) (math.ceil() means round up). You could attempt to implement the assembly versions of these operations in order to derive the coordinates of an address.

TheMRCFULCAMERON
Автор

I think you don't need the Place Array. The Check Array can do double duty. Once you reach the "zero" after checking the list, the Check Array is always one number less than what your Place Array would be. You can Bump the Check Array one more after you outbox and then place the zero in the new location.

akphoffman
Автор

That awkward moment when you need to pause the video just to understand what the data and address does.

neverfail
Автор

The problem with the duplicate was that when checking, you were supposed to count down. When you place the letter, you copy the current place array to the check array and you bump it down. When bumping check if it's negative and you're at the end. Placing the 0s doesn't do anything because there are other ways to compare. Fr example, instead of checking if the tile was 0, you could check if the place and check array were equal, meaning that you're about to check the next location to place in, which hasn't been initialized yet. If you do that *before* the comparison then it also returns.

DreadKyller
Автор

This is already beyond my brain's comprehension...

exdarkness
Автор

Hi Genny,
You asked us to comment about that problem with duplicate letters.
If you write the zero immediately after writing the letter, something like:
COPYFROM LETTER
OUTPUT LETTER
BUMP UP CHECKARRAY
COPYFROM 14
COPYTO [CHECKARRAY]
instead of writing the zero (at the end of the string) at the top of your listing,
then you don't need the PLACEARRAY variable at all.
That is the way to save space.

You still need the zero at the end of the string, but since CHECKARRAY always points to the correct place where the letter gets written, bumping it up by one will always point to the correct place where the zero needs to go.
Hence, no need for the PLACEARRAY variable, eliminating some rules in the source code. :)
Enjoy! :)

mpeijzel
Автор

Wow! You are so good at writing letters with a mouse, Genny.

ItsJustKnight
Автор

With your Check Array, you're always setting it to zero, so that you check through the letters going "forwards" - starting at zero, bumping up, and carrying on until you get to the end. That means you're using two steps in the code to set what the Check Array value is: one to initially set it to zero, and then one to reset it when the code starts looping.

Instead, you could try copying from the Place Array value, and then bumping down - check through the list "in reverse". That will make the number of processes shorter because you're "ignoring" the zero at the end of the string... and because the bump command causes you to pick up the value from the floor, you can use a Jump If Zero to know when you've finished checking - ie. to know when you've checked what is in square one.

Less logical, but more efficient maybe?

ountouchable
Автор

This can also be done by counting down from the place array number and checking for a negative on the check array. It saves a couple of steps and is considerably faster.

Malorie
Автор

I got it down to 17 commands, but I went backwards. Inefficient, but effective.

1)copy from /14
2)copy to /12
3)copy to /0
a.
4)bump + /12
5)copy to /14
6)inbox
7)copy to /13
8)copy to /[12]
b.
9)bump- /14
10)copy from /[14]
11)jump if 0 /c.
12)sub /13
13)jump if 0 /a.
14)jump /b.
c.
15)copy from /13
16)outbox
17)jump /a.

dwagonsnare
Автор

I think the ineficiency was at the prep/step,
you could remove 2 commands from it.
move the 2 jump destinations up to the top, and remove the double commands (Copyfrom (14) and Copyto Place Array)
im not 100% sure, but i think this is it :3

dirk