<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=The_Game</id>
	<title>The Game - revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nick-black.com/dankwiki/index.php?action=history&amp;feed=atom&amp;title=The_Game"/>
	<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=The_Game&amp;action=history"/>
	<updated>2026-07-11T14:04:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://nick-black.com/dankwiki/index.php?title=The_Game&amp;diff=4263&amp;oldid=prev</id>
		<title>Dank: Created page with &quot;&lt;pre&gt;Date: Wed, 24 Aug 2011 01:39:15 -0400 From: nick black &lt;dankamongmen@gmail.com&gt; To: splinterfags &lt;splinterfaction@googlegroups.com&gt; Subject: [Splinter Faction] game idea  th...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nick-black.com/dankwiki/index.php?title=The_Game&amp;diff=4263&amp;oldid=prev"/>
		<updated>2011-08-24T05:43:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt;Date: Wed, 24 Aug 2011 01:39:15 -0400 From: nick black &amp;lt;dankamongmen@gmail.com&amp;gt; To: splinterfags &amp;lt;splinterfaction@googlegroups.com&amp;gt; Subject: [Splinter Faction] game idea  th...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;Date: Wed, 24 Aug 2011 01:39:15 -0400&lt;br /&gt;
From: nick black &amp;lt;dankamongmen@gmail.com&amp;gt;&lt;br /&gt;
To: splinterfags &amp;lt;splinterfaction@googlegroups.com&amp;gt;&lt;br /&gt;
Subject: [Splinter Faction] game idea&lt;br /&gt;
&lt;br /&gt;
the objective is to write some program (prove some theorem? generate some&lt;br /&gt;
string?) using a highly formalized, small language, and cards representing&lt;br /&gt;
base lexemes.&lt;br /&gt;
&lt;br /&gt;
the objective is to compile a working program for each round&amp;#039;s required task.&lt;br /&gt;
the tasks can be randomly parameterized, as can the cards, so there&amp;#039;s no need&lt;br /&gt;
to worry about replay value. average complexity of an orthodox problem solution&lt;br /&gt;
ought not be more than 20 cards. a hand will take about 10--15 minutes for&lt;br /&gt;
2--4 intelligent players. less intelligent players might never complete a&lt;br /&gt;
hand, pseudorandomized program construction being rather a losing game.&lt;br /&gt;
&lt;br /&gt;
cards have things like loops, constants, operators, variables, all kinds&lt;br /&gt;
of shit which you can arrange to make a program. take it up a notch: definable&lt;br /&gt;
&amp;quot;primitive recursive function&amp;quot;, &amp;quot;curry&amp;quot;, &amp;quot;monad&amp;quot; etc. preferably make some&lt;br /&gt;
friendly isomorphism or something so people don&amp;#039;t know they&amp;#039;re programming.&lt;br /&gt;
&lt;br /&gt;
cards are sorted according to a random total ordering, aka shuffled. each&lt;br /&gt;
player gets 7 cards. the rest are enqueued face-down. the discard stack is&lt;br /&gt;
initialized empty.&lt;br /&gt;
&lt;br /&gt;
each turn you MUST draw one card and MAY play one card.&lt;br /&gt;
&lt;br /&gt;
drawing:&lt;br /&gt;
 - you may either dequeue a face-down card from the bottom of the queue, or&lt;br /&gt;
 - pop a face-up card from the stack&lt;br /&gt;
&lt;br /&gt;
playing:&lt;br /&gt;
 - you may either move a card from your hand to your program, or&lt;br /&gt;
 - moving a card from your program to the discard pile, or&lt;br /&gt;
 - trojan an opponent&amp;#039;s program with one of your hand&amp;#039;s cards.&lt;br /&gt;
&lt;br /&gt;
your program may be disconnected up until &amp;quot;compile time&amp;quot;; you cannot compile&lt;br /&gt;
a disconnected program! connection of program fragments, however, is restricted&lt;br /&gt;
to those generating valid subprograms (hence desirability of a true CFL). this&lt;br /&gt;
is true for trojaning as well as your own program&amp;#039;s construction.&lt;br /&gt;
&lt;br /&gt;
it is not allowed to refrain from drawing a card, nor to push a card from your&lt;br /&gt;
hand onto the discard stack, because these are useless acts. your hand is&lt;br /&gt;
unbounded, and new cards can be trivially pseudorandomly generated.&lt;br /&gt;
&lt;br /&gt;
all program specs ought probably be purely functional -- perhaps restricted to&lt;br /&gt;
functions on n-ary integers returning integers? don&amp;#039;t want a type system.&lt;br /&gt;
might or might not want state.&lt;br /&gt;
&lt;br /&gt;
if the language made it impossible to generate invalid programs at any point&lt;br /&gt;
(could be enforced by, for instance, cuts in the cards needing be paired up),&lt;br /&gt;
that would be lovely -- attackers could modify your program&amp;#039;s syntax or&lt;br /&gt;
semantics, but not make it invalid in either sense, requiring huge fixups&lt;br /&gt;
&lt;br /&gt;
i&amp;#039;d buy it and play it&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
                                         nick black &amp;lt;nblack@nvidia.com&amp;gt;&lt;br /&gt;
&amp;quot;A main cause of the Roman Empire&amp;#039;s fall was that–lacking zero–they had&lt;br /&gt;
       no way to indicate successful termination of their C programs.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[CATEGORY: Projects]]&lt;/div&gt;</summary>
		<author><name>Dank</name></author>
	</entry>
</feed>