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: