Link:
https://dev.to/iigura/reversio…in-7-lines-code-of-c-3799
Bitte die improved Version nehmen! Läuft schön unter Linux.
Wer hat Lust diesen Code wieder in lesbarere Form zu bringen
VG Peter
Link:
https://dev.to/iigura/reversio…in-7-lines-code-of-c-3799
Bitte die improved Version nehmen! Läuft schön unter Linux.
Wer hat Lust diesen Code wieder in lesbarere Form zu bringen
VG Peter
Sehr beeindruckend.
Pelles-C übersetzt es.
Mit nur zwei warnings.
Nach einem "Auto Intend" sieht es etwas lesbarer aus ...
#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k()
{
if(m[p]==0)
for(i=0;i<8;i++){
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])
c++;
if(c&&m[v]==t)
{
a+=c;
v=p;
if(d)
do
m[v]=t,v+=r[i];
while(m[v]!=t);
}
}
}
char*h="・○●\n";
int main()
{
for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)
m[40]=m[50]=t=s=1;
for(;;a=d=0)
{
for(p=9;p<82;++p)
k(),printf("%.2s",&h[m[p]*2]);
if(a)
for(d=a=s=p=8;a==8;k())
t-2?(scanf("%d %d",&p,&i),p+=i*9):++p;
else if(s)
s=0,printf("pass");
else
break;
t=3-t;
}
return 0;
}
Alles anzeigen
Okay, aber damit es unter Win-10 läuft braucht es die "improved" Version.
Bitte sehr:
int printf(const char*,...);
int scanf(const char*,...);
int p,t,a,d,c,v,i,m[90],s,r[]={-10,-9,-8,-1,1,8,9,10};
char h[]=" - x x\n";
void k()
{
if(m[p]==0)
for(i=0;i<8;i++)
{
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])
c++;
if(c && m[v] == t)
{
a+=c;
v=p;
if(d)
do
m[v]=t,v+=r[i];
while(m[v]-t);
}
}
}
int main(int q,char**z)
{
t=q;
h[2*t+1]='o';
for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)
m[40]=m[50]=s=1;
for(;;a=d=0)
{
for(p=9;p<82;++p)
k(),printf("%.2s",h+m[p]*2);
if(a)
for(d=a=s=p=8;a==8;k())
t-2?scanf("%d %d",&p,&i),p+=i*9:++p;
else if(s)
s=0,printf("pass");
else
break;
t=3-t;
}
return 0;
}
Alles anzeigen
... gerade gesehen, dass es den "Obfuscated C Contest" immer noch gibt.
Unter "winning entries" geht es am 1984 los.
Sehr für Anfänger in der Sprache "C" zu empfehlen um die Schönheit und Reinheit von "C" zu verstehen ...
Sehr für Anfänger in der Sprache "C" zu empfehlen um die Schönheit und Reinheit von "C" zu verstehen ...
Ja, genau. Versuch sowas mal mit einem Python-Programm.
Bei mir geht es anscheinend genau an dieser Stelle mit dem Original nicht - ich bekomme nämlich damit keine Zeilenumbrüche. Wird dann alles als eine Zeile angezeigt - was recht sinnfrei ist ( mit gcc, debian ).
Bei mir geht es anscheinend genau an dieser Stelle mit dem Original nicht - ich bekomme nämlich damit keine Zeilenumbrüche. Wird dann alles als eine Zeile angezeigt - was recht sinnfrei ist ( mit gcc, debian ).
Mit Debian kann ich leider nicht dienen ...
Aber falls du einen Windows PC hast: