- 1
#define ItIsNotRecommendedToLookToInvalids_OlderPersonsAndPeopleWithWeakNerves int main
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+179.1
#define ItIsNotRecommendedToLookToInvalids_OlderPersonsAndPeopleWithWeakNerves int main
Мало ли...
+154
bool tblmove(tbltype &tbl, tblmoveT move)
{
tblpos emptypos = tblgetempty(tbl);
tblelmnt elmnt;
switch(move)
{
case UP:
if(emptypos.i == tbl.begin()) break;
elmnt = (emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j));
(emptypos.i-1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case DOWN:
if(emptypos.i+1 == tbl.end()) break;
elmnt = (emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j));
(emptypos.i+1)->at(distance((emptypos.i)->begin(),emptypos.j)) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case LEFT:
if(emptypos.j == (emptypos.i)->begin()) break;
elmnt = *(emptypos.j-1);
*(emptypos.j-1) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
case RIGHT:
if(emptypos.j+1 == (emptypos.i)->end()) break;
elmnt = *(emptypos.j+1);
*(emptypos.j+1) = EMPTYEL;
*(emptypos.j) = elmnt;
return true;
}
return false;
}
кусок из самопальных пятнашек. stl только усугибило картину. тошнотворно....
+140.6
p2 = p2 + sizeof("\nbookname=") - 1;
p3 = strchr(p2, '\n');
bookname.assign(p2, p3 - p2);
p2 = strstr(p1, "\nauthor=");
if (p2)
{
p2 = p2 + sizeof("\nauthor=") - 1;
p3 = strchr(p2, '\n');
author.assign(p2, p3 - p2);
}
p2 = strstr(p1, "\nemail=");
if (p2)
{
p2 = p2 + sizeof("\nemail=") - 1;
p3 = strchr(p2, '\n');
email.assign(p2, p3 - p2);
}
p2 = strstr(p1, "\nwebsite=");
if (p2)
{
p2 = p2 + sizeof("\nwebsite=") - 1;
p3 = strchr(p2, '\n');
website.assign(p2, p3 - p2);
}
p2 = strstr(p1, "\ndate=");
if (p2)
{
p2 = p2 + sizeof("\ndate=") - 1;
p3 = strchr(p2, '\n');
date.assign(p2, p3 - p2);
}
p2 = strstr(p1, "\ndescription=");
if (p2)
{
p2 = p2 + sizeof("\ndescription=") - 1;
p3 = strchr(p2, '\n');
description.assign(p2, p3 - p2);
}
p2 = strstr(p1, "\nsametypesequence=");
if (p2)
{
p2 += sizeof("\nsametypesequence=") - 1;
p3 = strchr(p2, '\n');
sametypesequence.assign(p2, p3 - p2);
}
Опять на арене Стардикт, написанный криворукими китаезами. Вот как они читают значения из БИНАРНОГО файла (это только кусочек листинга):
+142.8
#include <stdio.h>
#include <alloc.h>
#define PRINT_RESULT {for(cheacksum1=0,i=MaxV-1;i>=0;cheacksum1+=vect[i--]);for(j=i=cheacksum2=0;j<MaxA;i<MaxA?cheacksum2+=mass[j][i++]:(j++,i=0));printf("CHEACKSUM: %d <-> %d\n",cheacksum2,cheacksum1);}
int main(void)
{
int **mass,*vect,MaxV,MaxA,x,y,i,j,z,k,l,s,m,cheacksum1,cheacksum2;
MaxV *= MaxV = MaxA = 200;
for(i=0,vect=(int*)malloc(sizeof(int)*MaxV),mass=(int**)malloc(sizeof(int*)*MaxA);i<MaxA;mass[i++]=(int*)malloc(sizeof(int)*MaxA));
for(i=0,j=0;i<MaxA;j<MaxA?mass[i][j++]=rand()%10:(i++,j=0));
/* A */ for(y=z=j=0,i=x=MaxA-1;y<MaxA;(j>=MaxA||i>=MaxA?((x>0?x--:y++),i=x,j=y):vect[z++]=mass[i++][j++]));
PRINT_RESULT;
/* B */ for(y=x=z=j=i=0;y<MaxA;(j>=MaxA||i<0?((x<MaxA-1?x++:y++),i=x,j=y):vect[z++]=mass[i--][j++]));
PRINT_RESULT;
/* C */ for(s=z=k=0,l=1,m=x=y=MaxA%2==0?m=x=y=MaxA/2-1:MaxA/2;x<MaxA&&y<MaxA&&x>=0&&y>=0;k++<l?vect[z++]=mass[s==1?y++:s==3?y--:y][s==0?x++:s==2?x--:x]:(k=0,s++<3?(s==2?l++:0):(s=0,l++)));
PRINT_RESULT;
/* D */ for(z=x=y=k=0,s=-1,l=MaxA-1;l>=0;l>0?k++<l?vect[z++]=mass[s==0?y++:s==2?y--:y][s==1?x--:s==0||s==2?x:x++]:(k=0,s++<3?(s==2?l--:0):(s=0,l--)):(vect[z]=mass[y][x],l--));
PRINT_RESULT;
for(x=0;x<MaxA;free(mass[x++])); free(vect); free(mass);
return 0;
}
Лабораторная работа (давно было дело... не помню, окончательная версия или нет) :]
Обход матрицы и запись результата обхода в одномерный массив.
а) по правой диагонали начиная с правого верхнего
элемента
б) с левого верхнего.
с) по сперали
д) по сперали начниная с левого верхрего элемента.
+155.4
.....
double CHTerritory;
int CHNextGeneration;
int CHPeople;
int CHScTurns;
int CHDefMin;
int CHDefMax;
int CHAtMin;
int CHAtMax;
int CHArmies;
int CHGrain;
int CHScientist;
double CHMoney;
int CHUnHP_1;
int CHArm;
int CHATT;
int CHDEFF;
int CHUnHP;
int CHArm_1;
int AtChoice;
....
Begin:
int Choice;
cout << "\n""Year: ";
cout << Year;
cout << "\n""Money ";
cout << Money;
cout << " $";
Tax = People / 2;
cout << "\n""Tax: ";
cout << Tax;
cout << " $";
cout << "\n""Territory: ";
cout << Territory;
cout << " KM^2";
cout << "\n""What do you want?";
cout << "\n""Science - 1, Army - 2, Agrarian Production - 3,";
cout << "\n""Social Question - 4, Next Year - 5, Spy - 6, Exit - 7: ";
cin >> Choice;
if(Choice == 1)
{
goto Science;
}
if(Choice == 2)
{
goto Army;
}
if(Choice == 3)
{
goto AgrarianProduction;
}
if(Choice == 4)
{
goto SocialQuestion;
}
if(Choice == 5)
{
goto NextYear;
}
if(Choice == 6)
{
goto Spy;
}
if(Choice == 7)
{
goto Replay;
}
else
{
cout << "\n""TbI Tynou ?";
cout << "\n";
goto Begin;
}
....
if(AmUnHP_1 <= 0)
{
AmArmies = AmArmies - 1;
goto LKJMNZZA;
}
else
{
goto LKJMNZZB;
}
Моя одна из первых "серьезных" программ на С++, показывающая, что даже без знаний (главное - желание) можно писать БОЛЬШИЕ программы. Программа - стратегическая консольная игра, исходник в 64 КБ и все в... ОДНОЙ функции main :) также тогда еще не знал о существовании массивов, switch и многого другого:) К сожалению все 4000 строк кода сюда не влезают, так что вот примеры стандартных участков кода.
+141.4
int __fastcall TForm1::iscomm(AnsiString str)
{
int i=1;
while (str[i]==' ')
i++;
if (str[i]=='#')
{
return 1;
}
else
{
return 0;
};
};
borland C++.
Функция определяет, является ли строка комментарием (начинается с #)
+162.5
UGL_STATUS CBitmap::StretchBlt(CBitmap * src,int srcIndex, int index)
{
UGL_GC_ID gc;
UGL_POS srcWidth;
UGL_POS srcHeight;
UGL_POS width = Width();
UGL_POS height = Height();
UGL_RECT srcRect = src->Rect();
UINT32 * srcDataLine;
UINT32 * destDataLine;
if( src == NULL )
return UGL_STATUS_ERROR;
...
}
см. строки 8 и 12-13 :)
+150
tmp = (tmp <= a) ? a : tmp;
Не то чтобы говнокод, но и от ": tmp;" никак не избавится. Да и if писать ломает...)
-- Aquarius
+1035.7
string html;
fill(html);
string cleaner = "</font>""</font>""</font>""</font>""</font>""</font>"
"</font>""</font>""</font>""</font>""</font>""</font>"
"</b></b></b></b></b></b></b></b>"
"</i></i></i></i></i></i></i></i>";
html += cleaner;
return html;
китаеза таким образом борется с закрытием HTML-тегов :) Чтоб наверняка)))
+148
void example1237891314151920212226272832333438394044454650494847434241373635312928252423181716121110654 (...)
Задали заполнить массив определенной последовательностью...с понятными названиями