Привет, форумчане!
Тема конкурса навеяна этим тредом и программкой http://www.ioccc.org/1984/anonymous/anonymous.c , на которую я пару-тройку месяцев назад наткнулся в каментах к этой теме.
Итак, условия конкурса на главного дурака: написать самую дурацкую и нечитабельную программу, которая, однако, нормально компилится и желательно что-то делает. В каментах указывать язык программирования, как откомпилировать и как запускать. Ну и что она вообще делает ещё можно указать. Дополнительное условие конкурса на главного антидурака: восстановить исходный код самой дурацкой программы так, чтобы он снова стал понятен. Антидурак по определению тоже является дураком, т. к. умный человек, понятно, такой хренью заниматься не будет.
Первое место в обеих номинациях каждый волен определять сам по собственной методике, желательно как можно более дурацкой.
Призов нет. Только моральные поощрения самых фееричных дураков в каментах типа «афтар, пеши исчо!»
Я, в качестве конферансье и одновременно участника, открываю конкурс своей программой на Си your_name.c, содержащей краткий комментарий, 1 инклуд (для подавления предупреждений, а так можно было бы обойтись и без него), нескольких десятков дефайнов и далее собственно программы, состоящей исключительно из знаков подчёркивания («_»), разделённых пробелами или ньюлайнами.
/**
* The program your_name output your name.
*
* Module: your_name.c
* Compile: gcc -o your_name your_name.c
* Call: ./you_name
* or
* ./you_name firstname secondname thirdname ...
* Author: aureliano15
* License: GPL v.3.
* Copyleft (Ɔ) 2017.
*/
#include <stdio.h>
#define _ (
#define __ )
#define ___ ,
#define ____ [
#define _____ ]
#define ______ ;
#define _______ {
#define ________ }
#define _________ =
#define __________ <
#define ___________ *
#define ____________ +
#define _____________ -
#define ______________ **
#define _______________(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) i##p
#define ________________(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) i##p##c
#define _________________(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) p##k##g##b
#define __________________(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) e##b##m##p##c
#define ___________________(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) h##j##a##q##c##l
#define _______________________________(x) #x
#define ____________________ _______________(+,-,+,/,?,=,~,-,+,/,~,^,?,+,-,+,=,?)
#define _____________________ _______________(+,-,+,/,?,^,~,-,=,/,~,^,?,+,-,=,/,?)
#define ______________________ ________________(z,v,t,b,j,i,x,0,i,w,u,o,9,t,a,n,f,e)
#define _______________________ _________________(m,n,o,i,x,y,i,j,k,b,a,x,y,k,l,m,n,u)
#define ________________________ _________________(s,r,q,d,c,b,a,e,f,g,h,i,j,a,b,c,d,e)
#define _________________________ _______________(a,b,c,d,e,f,g,h,i,j,a,b,c,d,e,f,g,h)
#define __________________________ _________________(f,e,d,c,b,a,s,t,u,k,l,a,b,c,d,e,f,g)
#define ___________________________ ___________________(i,s,t,u,m,n,o,p,q,r,s,f,e,d,l,m,n,o)
#define ____________________________ __________________(h,g,s,t,f,f,g,h,a,b,c,d,e,r,s,t,u,0)
#define _____________________________ ___________________(t,s,r,q,p,p,q,r,s,e,i,n,m,l,s,t,u,v)
#define ______________________________ ________________(p,q,r,s,j,i,h,g,f,e,d,k,l,m,n,o,p,q)
#define ____________________________________________________ __________________(s,t,n,m,s,t,a,b,i,j,k,c,d,e,h,i,j,m)
#define ________________________________ _______________________________(%)
#define _________________________________ _______________________________(:)
#define __________________________________ _______________________________(_)
#define ___________________________________ _______________________________(a)
#define ___________________________________________________ _______________________________(d)
#define ____________________________________ _______________________________(e)
#define _____________________________________ _______________________________(i)
#define ______________________________________ _______________________________(m)
#define _______________________________________ _______________________________(n)
#define ________________________________________ _______________________________(o)
#define _________________________________________ _______________________________(r)
#define __________________________________________ _______________________________(s)
#define ___________________________________________ _______________________________(t)
#define ____________________________________________ _______________________________(u)
#define _____________________________________________ _______________________________(y)
#define ______________________________________________ _______________________________(\n)
______________________ _______________________ _ ______________________
_______________________________________________ ___ ________________________
______________ ________________________________________________ __ _______
________________________ _________________________________________________
____ ___________ ____________________________________ _____________
___________ ________________________________ _____ ______
______________________ __________________________________________________
______ _________________________ _
_______________________________________________ _____________________
___________ _______________________________________ _____________ ___________
______________________________________ __ ___________________________ _
____________________________________ _______________________________________
___________________________________________
____________________________________ _________________________________________
__________________________________
_____________________________________________
________________________________________
____________________________________________
_________________________________________ __________________________________
_______________________________________ ___________________________________
______________________________________ ____________________________________
_________________________________ __________________________________ __ ___
____________________________ _
_________________________________________________ ___ ___________
___________________________________________________ _____________ ___________
________________________________ ___
____________________________________________________ __ ___
___________________________ _ _____________________________________________
________________________________________
____________________________________________
_________________________________________ __________________________________
_______________________________________ ___________________________________
______________________________________ ____________________________________
__________________________________ _____________________________________
__________________________________________ __________________________________
________________________________ __________________________________________
______________________________________________ ___
_________________________________________________ __ ______
__________________________ _______ ___________________________ _
_____________________________________________
________________________________________
____________________________________________
_________________________________________
__________________________________ _______________________________________
___________________________________ ______________________________________
____________________________________ __________________________________
_____________________________________
__________________________________________ __________________________________
__ ______ ______________________________ _
__________________________________________________ _________ ___________
_______________________________________ _____________ ___________
______________________________________ ______
__________________________________________________ __________
_______________________________________________ ______ ____________________
__________________________________________________ __
___________________________ _ ________________________________
__________________________________________ __________________________________
___ ___________ _ ________________________________________________
____________ __________________________________________________ __ __ ______
___________________________ _ ______________________________________________
__ ______ ________ _____________________________ ___________
______________________________________ _____________ ___________
______________________________________ ______ ________
Если кому интересно, как оно работает - сами разбирайтесь. Я уже забыл, пока писал, и сам ничего понять не могу. Но как-то компилится и выполняется.
UPD от 8 апреля 2018. Оставлю-ка здесь для себя на память из этого поста, чтоб не потерялось, из той же оперы:
/**
* Программа putrnd использует суперслучайный алгоритм для генерации
* суперслучайного пароля. Используйте её для генерации надёжных паролей!
*
* Compile: gcc -o putrnd putrnd.c
* Call: ./putrnd
*
* Author: aureliano15
* License: GPL v.3.
* Copyleft (Ɔ) 2018.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int n = rand(), d1=87, d2=0, d3=3, d4=0, d5=0, d6=0, d7=0;
n |= 175684;
n &= 203331;
n += 202755;
n /= 2;
n--;
n >>= 2;
while(putchar(n) && d1>=0)
{
d1=(d1-d2)/d3-d4+d5+d6+d7;
d6-=d7-d6;
if(d4)
{
d5+=5;
d6-=54;
d7+=54;
}
if(d2)
++d4;
++d2;
++d3;
n+=d1;
}
d5-=5;
return (n&d5)-d5;
}
и второй, немного более запутанный вариант:
/**
* Программа putrndgoto использует суперслучайный и суперхитрый алгоритм
* с метками для генерации суперслучайного пароля. Используйте её для
* генерации надёжных паролей!
*
* Compile: gcc -o putrndgoto putrndgoto.c
* Call: ./putrndgoto
*
* Author: aureliano15
* License: GPL v.3.
* Copyleft (Ɔ) 2018.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int n = rand(), d1=87, d2=0, d3=3, d4=0, d5=0, d6=0, d7=0;
goto l13;
l01: d6-=54; goto l04;
l02: ++d3; goto l17;
l03: putchar(n); goto l19;
l04: d7+=54; goto l12;
l05: n--; goto l09;
l06: d6-=d7-d6; goto l10;
l07: n &= 203331; goto l15;
l08: ++d2; goto l02;
l09: n >>= 2; goto l03;
l10: if(d4) goto l16; goto l12;
l11: ++d4; goto l08;
l12: if(d2) goto l11; goto l08;
l13: n |= 175684; goto l07;
l14: d1=(d1-d2)/d3-d4+d5+d6+d7; goto l06;
l15: n += 202755; goto l21;
l16: d5+=5; goto l01;
l17: n+=d1; goto l03;
l18: d5-=5; goto l20;
l19: if(d1<0) goto l18; goto l14;
l20: return (n&d5)-d5;
l21: n /= 2; goto l05;
}