How does one implement pointers in Lisp? There is no implicit memory, so one have to explicitly specify the chunk of memory to work on. Which potentially could be optimized by loading array pointers into segment registers (getting bounds checks and protected memory at no cost). Also, there is no malloc. For now I devised following simple macro: (defmacro with-ptr ((name base &optional (offset 0)) &body xs)
(let ((o (gensym "p"))
(b (gensym "a")))
`(let ((,o ,offset)
(,b ,base))
(macrolet ((,name (op &rest as)
(let ((o ',o)
(b ',b)
(v (gensym "v")))
(case op
(++ `(let ((,v (aref ,b ,o)))
(incf ,o ,@as)
,v))
(-- `(let ((,v (aref ,b ,o)))
(decf ,o ,@as)
,v))
(base b)
(offset o)
(start? `(= ,o 0))
(end? `(= ,o (length ,b)))
(avail? `(< ,o (length ,b)))
(move-to-head `(setf ,o 0))
(move-to-last `(setf ,o (- (length ,b) 1)))
(otherwise `(aref ,b (+ ,o ,@as)))))))
(symbol-macrolet ((,name (aref ,b ,o)))
,@xs)))))
Not%20bad.pgm
A super real time MMORPG, with classes, 2hu fighter, hacker, stealth, combat, etc..
Should we the came something like Metal Core 二[o]RISC? You know, after the board game, a pun for the architecture, and obvious call to the genre. Or just RISC, with fonts resembling each of the games main logos for the same.
Name:
Anonymous2013-08-04 3:16
>>14
I like it. I would appreciate a game that is fun for seasoned programmers, educational for beginners, and has enough other interesting content to not get boring.
So what would a typical level be? Gensoko has been taken over by a militant group and must infiltrate their base. After freezing a guard she gets to a computer and uses the map reduce function to disable the security cameras. In order to unlock the door to the level 5 security area, she must write an algorithm to solve a 100x100 sudoku puzzle.
I could see it being singe player, but how do you make it multiplayer? With teamwork? Some hack while others sneak? Or could it be competitive? Maybe one team needs to secure a system or a facility while the other needs to break in...all software that can be used has exploits everywhere, so the only way to get more security is with lots of redundancy...
Name:
Anonymous2013-08-04 7:00
Capture the flag for a digital key. The key is supplied in request responses to trusted clients, so you can't just lock it in a basement somewhere...social engineering? It could get too macro, and you can't see the action anymore.
the problem with hacking games is that hacking is actually boring. It;s only exciting because the mundane details end up adding to the capability to exploit another's system. But in a game the system is fictional, so the reward is less. So the effort required in the hacking must also be less. But then that is also less rewarding...
Name:
Anonymous2013-08-04 7:37
>>17 What are the base and offset functions?
Because we want good old C/C++ (setf (p ++) (q ++)) idiom to work in Lisp.