[HN Gopher] Elevator Saga - An elevator programming game
___________________________________________________________________
Elevator Saga - An elevator programming game
Author : warpech
Score : 63 points
Date : 2021-06-12 20:08 UTC (2 hours ago)
(HTM) web link (play.elevatorsaga.com)
(TXT) w3m dump (play.elevatorsaga.com)
| spicybright wrote:
| Are real elevators ever coded with logic like mentioned in this
| thread? Or do they just keep it a simple as possible?
| bombcar wrote:
| They can be. Express elevators and such. But mainly the
| programs are limited to what floor the elevators idle at
| because more complicated programs even if more efficient
| overall often piss people off.
| asiachick wrote:
| I don't remember the article but I remember reading about a
| building management game where the reviewer believed the entire
| game was based around the elevator management code and that
| writing that code was fun for the programmer but the game itself
| was not fun for the player.
|
| It looks like this highlights the "fun for the programmer" part.
| aidenn0 wrote:
| Maybe Sim Tower? The game was pretty boring, but building and
| managing elevators to keep people happy was a fun challenge.
| adenozine wrote:
| I used to interview programmers with an elevator programming
| problem. Neat to see it expanded so excellently and cleanly in
| this piece. Well done!
| alasdair_ wrote:
| I had this question during a Google interview. The interviewer
| became annoyed when I suggested that an elevator that sometimes
| went backwards to pick ip someone on a just-missed floor could
| at least be interesting, if not perfectly efficient.
|
| They had a preconceived idea that they wanted a stateless
| system and didn't like my stateful approach, even if it was
| potentially better for end users.
| dang wrote:
| One past discussion, plus a one-commenter:
|
| _Elevator Saga: The Elevator Programming Game_ -
| https://news.ycombinator.com/item?id=21425054 - Nov 2019 (1
| comment)
|
| _Elevator Saga - An elevator programming game_ -
| https://news.ycombinator.com/item?id=8929314 - Jan 2015 (104
| comments)
| voldemort1968 wrote:
| I was thinking of creating this very thing on several occasions
| being in an elevator. The logic of elevators is very intriguing
| and more complicated than people realize.
| 7373737373 wrote:
| I'm not sure if this is true. I think all elevators I've
| encountered followed the elevator/SCAN algorithm:
|
| > the elevator continues to travel in its current direction (up
| or down) until empty, stopping only to let individuals off or
| to pick up new individuals heading in the same direction.
|
| with the elevator staying on its last location if there are no
| new requests and there being no buffering time after a request,
| first come first served
|
| https://en.wikipedia.org/wiki/Elevator_algorithm
| dialogbox wrote:
| That is true only for the single elevator system. If there
| are multiple elevators, the system could be extremely
| complicated.
| falldmg wrote:
| Have you ever seen elevators where you select a floor from
| the outside and it gets assigned to one of multiple
| elevators? Those seem like they might be doing something more
| sophisticated.
| disposedtrolley wrote:
| I used to have those elevators where I worked and everybody
| hated them. I think the algorithm was tuned for efficiency,
| so you'd be waiting for an elevator for minutes as it tries
| to batch everyone up, while a dozen other elevators sit
| idle.
|
| This was made worse through the need to specify the number
| of people who are travelling to a specific floor so the
| algorithm can allocate enough space in each elevator. Large
| groups often ignored this so you'd often find that an
| elevator you've waited minutes for is full, and start the
| dance all over again.
|
| https://en.wikipedia.org/wiki/Destination_dispatch
| TheRealNGenius wrote:
| Ah disk scheduling algorithms :)
| https://en.wikipedia.org/wiki/Elevator_algorithm
| lloydatkinson wrote:
| What am I doing wrong? for(elevator of
| elevators) { elevator.on('idle', () => {
| //do some logic with elevator }) }
|
| It only seems to run for the second elevator rather than both of
| them?
| mercora wrote:
| i likely ran into the same or a related issue. i dont know much
| about javascript though. for(var i = 0; i
| < elevators.length; i++) {
| elevators[i].on("idle", function() {
| for(var j = 0; j < floors.length; j++) {
| elevators[i].goToFloor(j); }
| }) }
|
| it only works for "i < 1" and then only the second elevator
| moves... its kinda sad as i immediately enjoyed playing ...
| Jun8 wrote:
| Made me remember an interesting anecdote: During my PhD at Purdue
| I had the good luck to take the Pattern Recognition (nowadays
| would be called ML) from Prof. Fukunaga, one of the pioneers in
| the field (https://en.m.wikipedia.org/wiki/Keinosuke_Fukunaga).
| In one of his classes He mentioned that years ago a company came
| to him, requesting his expertise in optimizing movement of a bank
| of elevators. He thought it would be trivial :-) After telling us
| that all his approaches failed miserably, he had one of his
| impish laughs. Never worked on that problem again. Miss that guy.
| Get a copy of his book if you can, it's written in the "old
| style" but very informative.
|
| Interesting fact: Gen Fukunaga
| (https://en.m.wikipedia.org/wiki/Gen_Fukunaga) founder of anime
| company Funimation is his son.
___________________________________________________________________
(page generated 2021-06-12 23:00 UTC)