Wer kann mir sagen, was mein programm macht, ohne es auszuführen? (wenn ich es nicht geschrieben hätte, könnte ich es vermutlich nicht. 😄) Der Stil ist zwar diesmal absicht, aber ...
using System;
using System.Collections.Generic;
using System.Text;
namespace Unknown
{
class Program
{
const bool beg = true;//oder auch false
static void Main(string[] args)
{
ns a,b,r=new ns();
a=r;
Stack<ns> back = new Stack<ns>(9);
r.w = true;
goto fc;
r:if (a.dn < 9)
{
b=a.d[a.dn++];
if (b == null) goto r;
back.Push(a);
a = b;
if (a.dn > 0) goto r;
if (_s(a.s))
{ a.r = 1; a.dn = 9; a.wn = true; goto r; }
if((a.s & 87381) == 87381)
{a.r = 0; a.dn = 9; goto r;}
goto fc;
}
if (back.Count > 0)
{
b = a;
a = back.Pop();
if (a.r > -b.r) a.r = -b.r;
goto r;
}
end:a = r;
if (beg)
{
b = null;
foreach (ns c in a.d)
{
if (c != null)
{ if (b == null || b.r < c.r || ((c.s & 256) != (a.s & 256))) b = c; }
}
a = b;
}
while (true)
{
string ausgabe = System.Environment.NewLine;
for (uint i = 0, z = 1; z != 262144; z *= 4)
{
if (((a.s & z) ^ z) == z) ausgabe += " ";
else
{
if ((a.s & (2 * z)) == 0) ausgabe += ((char)0x58).ToString();
else ausgabe += ((char)0x4f).ToString();
}
if (++i % 3 == 0) ausgabe += " " + (i - 2).ToString() + (i - 1).ToString() + (i).ToString() + System.Environment.NewLine;
}
Console.Write(ausgabe + System.Environment.NewLine);
if (a.wn) { Console.WriteLine(a.w!=beg?"haha":"unmöglich"); goto end; }
if ((a.s & 87381) == 87381) { Console.WriteLine("neu:"); goto end; }
string eingabe="lol";byte next=0;
while (!byte.TryParse(eingabe, out next) || next < 1 || next > 9 || a.d[next - 1] == null)
{ eingabe = Console.ReadLine(); }
a = a.d[next - 1];
if ((a.s & 87381) != 87381 && !a.wn)
{
b = null;
foreach (ns c in a.d)
{
if (c != null)
{ if (b == null || b.r < c.r || ((c.s & 256) != (a.s & 256))) b = c; }
}
a = b;
}
}
fc: for (uint i = 0, z = 1; z != 262144; z *= 4)
{
if (((a.s & z) ^ z) == z)
{
uint s = a.s | (a.w ? z | (z * 2) : z);
b = new ns();
b.s = s;
b.w = !a.w;
a.d[i] = b;
}
i++;
}
goto r;
}
public static bool _s(uint s)
{
return ((s & 1) != 0 && (s & 4) != 0 && (s & 16) != 0 && (((s & 2) != 0) == ((s & 8) != 0)) && (((s & 2) != 0) == ((s & 32) != 0))) ||
((s & 1) != 0 && (s & 256) != 0 && (s & 65536) != 0 && (((s & 2) != 0) == ((s & 512) != 0)) && (((s & 2) != 0) == ((s & 131072) != 0))) ||
((s & 1) != 0 && (s & 64) != 0 && (s & 4096) != 0 && (((s & 2) != 0) == ((s & 128) != 0)) && (((s & 2) != 0) == ((s & 8192) != 0))) ||
((s & 65536) != 0 && (s & 16384) != 0 && (s & 4096) != 0 && (((s & 131072) != 0) == ((s & 32768) != 0)) && (((s & 131072) != 0) == ((s & 8192) != 0))) ||
((s & 65536) != 0 && (s & 1024) != 0 && (s & 16) != 0 && (((s & 131072) != 0) == ((s & 2048) != 0)) && (((s & 131072) != 0) == ((s & 32) != 0))) ||
((s & 256) != 0 && (s & 4) != 0 && (s & 16384) != 0 && (((s & 512) != 0) == ((s & 8) != 0)) && (((s & 512) != 0) == ((s & 32768) != 0))) ||
((s & 256) != 0 && (s & 64) != 0 && (s & 1024) != 0 && (((s & 512) != 0) == ((s & 128) != 0)) && (((s & 512) != 0) == ((s & 2048) != 0))) ||
((s & 256) != 0 && (s & 4096) != 0 && (s & 16) != 0 && (((s & 512) != 0) == ((s & 8192) != 0)) && (((s & 512) != 0) == ((s & 32) != 0)));
}
class ns
{
public ns[] d=new ns[9];
public byte dn = 0;
public uint s;
public bool w,wn=false;
public float r=1;
}
}
}
PS: wer es schafft soll bitte die Zahlen posten oder nen Screenshot machen.
Hallo floste,
ich kann dir zwar nicht sagen, was dein programm macht, da dies für mich zu viel kopfrechnen bedeuten würde 😁
ich möchte dich aber darauf hinweisen, dass es hier vor ein paar tagen einen sehr sehr ähnlichen Thread gab: Kleine Code-Rätsel für Zwischendurch
mal schauen, ob es jemand schafft, das ohne auszuführen herauszufinden 8)
mfg
MichlG
Welcher Obfuscator? Habe kein solches Programm benutzt. 😁
für mich zu viel kopfrechnen bedeuten
Zu den Zahlen im Programm: bei den meisten bringt es wohl eher was, die in binär umzurechnen.
Ansonsten: alle Hilfsmittel, die den Code nicht ausführen sind natürlich erlaubt.
nur als kommentar:
wer soll sich denn sowas antun?
wenn ich nur ansatzweise so einen code in unserem projekt sehen würde gäbe es saures für den verantworlichen und anschließend ein großes strg+a -> entf