module AT
where
odd n =
if (n == 0) then
False
else
AT.even (n-1)
even n =
if (n == 0) then
True
else
AT.odd (n-1)
//--- SQL stuff
private SQLsaveState m_SaveState=SQLsaveState.Unset;
[CommandProperty( AccessLevel.GameMaster )]
public SQLsaveState SaveState
{
get { return m_SaveState; }
set {
System.Debugger.Write("itemsavestate_called","{0} changed from ({1} to {2})",this,m_SaveState,value);
if(value!=m_SaveState)
{
System.Debugger.Write("itemsavestate_called","{0} changed from ({1} to {2}) - check1 passed",this,m_SaveState,value);
if(value!=SQLsaveState.Unchanged)
{
System.Debugger.Write("itemsavestate_called","{0} changed from ({1} to {2}) - check2 passed",this,m_SaveState,value);
Item tmp=null;
bool doadd=true;
if(World.ChangedItems.TryGetValue(this.Serial,out tmp))
{
if(tmp==this)doadd=false;
}
if(doadd)
{
System.Debugger.Write("itemsavestate_called","{0} changed from ({1} to {2}) - check3 passed",this,m_SaveState,value);
lock(World.ChangedItems)
{
System.Debugger.Write("itemsavestate","Adding {0} to changed list ({1} to {2})",this,m_SaveState,value);
World.ChangedItems[this.Serial] = this;
}
}
}
m_SaveState=value;
}
}
}
//call this whenever the object gets modified so we can properly set the sql save state
public void Modify()
{
System.Debugger.Write("modifyitem_called",false,"{0} Modified (Item)",this);
if(!World.Loaded)return; //don't do anything at world load or everything ends up getting changed
if(!World.StopSaving && (SaveState==SQLsaveState.Unchanged))
{
SaveState=SQLsaveState.Changed;
System.Debugger.Write("modifyitem",false,"{0} Modified (Item)",this);
}
}
//--- end SQL stuff
#define P(X)j=write(1,X,1)
#define C 39
int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,
*d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0;
s<4;s++)if((k=m[s]+g)>=0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>=16!=M[k]>=16))a[f++
]=s;if(f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g];j=j<f?f:j;f+=c&-16*!j;M[g]=
c|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;--s;P("_")
)P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2
);}
I think you guys may be overreacting. I mean, what's it been? Three, maybe four years...
Code:#define P(X)j=write(1,X,1) #define C 39 int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N, *d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0; s<4;s++)if((k=m[s]+g)>=0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>=16!=M[k]>=16))a[f++ ]=s;if(f){f=M[e=m[s=a[rand()/(1+2147483647/f)]]+g];j=j<f?f:j;f+=c&-16*!j;M[g]= c|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;--s;P("_") )P(" ");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2 );}
/*
░████░ ░████░
██████ ██████ ██
▒██ ██▒ ▒██ ██▒ ██
██ ██ ██▒ ▒██ ██▒ ▒██ ███████
██░ ░██ ██ ██ ██ ██ ███████
▓█▒ ██ ▒█▓ ██ ██ ██ ██ ██ ██ ██
▒█▒░██░▒█▒ ██ ██ ██ ██ ██ ██ ██
█▓▒██▒██ ██ ██ ██ ██ ██
██▓██▓██ ██▒ ▒██ ██▒ ▒██ ██
███▒▒██▓ ▒██ ██▒ ▒██ ██▒ ██░
▒██░░██▒ ██████ ██████ █████
░██ ██ ░████░ ░████░ ░████
*/
Wonderful 🙂 Now we just need code coloring :awe:
[COLOR=RoyalBlue]#include[/COLOR] [COLOR=Red]<iostream>[/COLOR]
[COLOR=Blue]int [/COLOR]main()
{
std::cout << [COLOR=Red]"Like This?\n"[/COLOR];
}
Code:[COLOR=RoyalBlue]#include[/COLOR] [COLOR=Red]<iostream>[/COLOR] [COLOR=Blue]int [/COLOR]main() { std::cout << [COLOR=Red]"Like This?\n"[/COLOR]; }