Кресты / Говнокод #820 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
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 только усугибило картину. тошнотворно....

guest guest, (Updated )

Комментарии (0)

Кресты / Говнокод #819 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
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);
    }

Опять на арене Стардикт, написанный криворукими китаезами. Вот как они читают значения из БИНАРНОГО файла (это только кусочек листинга):

guest guest, (Updated )

Комментарии (0)

Кресты / Говнокод #817 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
#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;
}

Лабораторная работа (давно было дело... не помню, окончательная версия или нет) :]

Обход матрицы и запись результата обхода в одномерный массив.
а) по правой диагонали начиная с правого верхнего
элемента
б) с левого верхнего.
с) по сперали
д) по сперали начниная с левого верхрего элемента.

guest guest, (Updated )

Комментарии (4, +4)

Кресты / Говнокод #778 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
.....
	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 строк кода сюда не влезают, так что вот примеры стандартных участков кода.

guest guest, (Updated )

Комментарии (2, +2)

Кресты / Говнокод #776 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
int __fastcall TForm1::iscomm(AnsiString str)
{
int i=1;
while (str[i]==' ')
 i++;
if (str[i]=='#')
 {
  return 1;
 }
else
 {
  return 0;
 };
};

borland C++.
Функция определяет, является ли строка комментарием (начинается с #)

guest guest, (Updated )

Комментарии (14, +14)

Кресты / Говнокод #774 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
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 :)

guest guest, (Updated )

Комментарии (2, +2)

Кресты / Говнокод #760 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
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-тегов :) Чтоб наверняка)))

guest guest, (Updated )

Комментарии (8, +8)

Кресты / Говнокод #754 Ссылка на оригинал

0

  1. 1
void example1237891314151920212226272832333438394044454650494847434241373635312928252423181716121110654 (...)

Задали заполнить массив определенной последовательностью...с понятными названиями

guest guest, (Updated )

Комментарии (0)