I love the idea! I never got too seriously into Core War but I remember discovering it as a high school student and getting exposed to assembly programming. I think that the "natural" language that this game uses is quite intuitive and the whole game is a great way to get started with assembly.
However, I do find the UI quite unintuitive at certain points. Especially when I wrote a program, I couldn't figure out how to run it in the local training assembly.
Slightly unrelated, but does anyone know what font is being used on the website? "Dos" is the only reference to it in the CSS stylesheet but I can't seem to find it online.
You can achieve a similar effect with a two instruction program where each one copies the other two forwards. In fact you can submit it exactly if you use with the bit encoding of instructions to construct the program in memory.
I feel like not being able to treat data as code and code as data limits the strategy a lot.
You can't read what code is in a cell, you can only read and write data. So you can't do self-modifying code, beyond blindly copying an existing code cell somewhere else.
hello! i just discovered this forum post was the reason why my server load got off the charts :p
Thanks so much for all the nice comments!!
In the game instructions are also data, the ones called "data" just happen to be empty instructions. So you can modify instructions on the fly!
For instance adding +1 to a WRITE X TO Y statement will affect the Y parameter, so you can do self modifying programs. There is all sort of clever stuff you can do but I haven't tried too much - but you can also create instructions by adding or masking existing instructions :) there's also a handful of useful undocumented operations like multiply or skip if greater.
The whole source is at github.com/Rackover/assembly so if you feel like becoming a mastermind you can check out how the compiler looks like and predict how it will react to live instruction modification
[0] https://en.m.wikipedia.org/wiki/Core_War
reply