-
Список говнокодов пользователя vistefan
Всего: 73
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
void permutate(int a[10], int n) {
// God bless mr. Donald E. Knuth;
// Tons of oil to English bell ringers!
// WARNING: It's dangerous to go alone, take this^H read this shit
int c[10], o[10], j, s, q;
for (j = 1; j <= n; j++) {
c[j] = 0;
o[j] = 1;
}
while (1) {
check(a, n);
j = n;
s = 0;
while (1) {
do {
q = c[j] + o[j];
if (q < 0) { o[j] = -o[j]; --j; }
} while (q < 0);
if (q == j) {
if (j == 1) return; else ++s;
o[j] = -o[j];
--j;
continue;
}
int t = a[j - c[j] + s];
a[j - c[j] + s] = a[j - q + s];
a[j - q + s] = t;
c[j] = q;
break;
}
}
}
Реализация алгоратма "простых изменений" по описанию из Кнута (т4. Комбинаторный поиск, генерация всех перестановок).
Напрашивающиеся goto раздражают, было бы приятно увидеть менее пахучие реализации. Не смог нагуглить, забугорного названия этого алгоритма не знаю, а про "простые изменения" тинай вики молчит.
vistefan,
13 Декабря 2013
-
+125
- 1
- 2
- 3
- 4
- 5
int prev, next;
// next should not be equal to prev;
next = radnom(MAX);
if (next = prev)
next = random(MAX);
Просто передаю концепцию на общеславянском.
Будет интересно посчитать насколько всё-таки это говно уменьшает вероятность совпадения при разных MAX.
vistefan,
21 Августа 2013
-
+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
// ==UserScript==
// @name GK_nickcolors
// @namespace GK
// @description Highlighting usernames relying their ID's. (Oldfag detector).
// @include http://govnokod.ru/*
// @include http://www.govnokod.ru/*
// @version 0
// @grant none
// ==/UserScript==
var re = /(\d+)$/;
const TOP_BORDER = 8000;
function getColor(href) {
var res = re.exec(href);
var id = parseInt(res[0]);
var coeff = id / TOP_BORDER;
var b = 40;
var g = Math.floor(255 * coeff);
var r = Math.floor(255 - g);
return 'RGB(' + r + ',' + g + ',' + b + ')';
}
function nickColors() {
$ = unsafeWindow.jQuery;
$('p.author a:nth-child(2), strong.entry-author a').each(function() {
this.style.color = getColor(this.href);
});
}
document.onkeydown = function (event) {
if (!document.getElementById) return;
if (window.event) event = window.event;
if (event.ctrlKey)
if ((event.keyCode ? event.keyCode : event.which ? event.which : null) == 13)
nickColors();
}
Скроллишь уютненький. Видишь - срач. И не поймёшь, кто прав, кто виноват. Клацаешь Ctrl+Enter - и вот оно, олдфаги краснеют, зеленки зеленеют.
(Правда диссонанс из-за того, что крестик-то как раз-таки красный, а галочка - зелёная).
Вдохновился http://govnokod.ru/13516#comment190221 тут.
Заодно расквитайте за незнание JS без остатка.
vistefan,
02 Августа 2013
-
+124
- 1
"(\{\{([#%$])([^:\}]+)(:([^\}]+))?\}\})"
Регуляркоговно.
Заменено на
"(\{\{([#%$])(.+?)(:(.+))?\}\})"
vistefan,
25 Июля 2013
-
+143
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
function handle($handler) {
//...
ob_start();
include("./handlers/$handler.php");
$result = ob_get_contents();
ob_end_clean();
return $result;
}
Требуется результат работы внешнего скрипта вывести посреди работы внутреннего. Есть ли варианты без голимой буферизации выходного потока?
vistefan,
03 Июля 2013
-
+114
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
#include <stdio.h>
/* Программа выводит ASCII-коды введённых символов */
int main()
{
int a[255];
int i;
for (i = 0; i < 256; i++) {
a[i] = i;
}
int c;
while ((c = getchar()) != EOF) {
if (c != '\n')
printf("%d\n", a[c]);
}
return 0;
}
vistefan,
15 Сентября 2012
-
+123
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
static void Main() {
Random random = new Random();
...
int n1 = notations[random.Next(max)];
int n2 = notations[random.Next(max)]; // дублирование кода!
....
//исправлено на
int n1 = notations[random.Next(max)];
int n2 = n1;
}
vistefan,
09 Сентября 2012
-
+56
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
public function analyse($args) {
$i = -1;
$length = 0;
$pictures = array();
foreach ($args as $string) {
switch (trim($string)) {
case '{':
$i++;
$pictures[$i] = new element();
$length++;
break;
case '}':
break;
default:
if (preg_match('/^ {0,}([A-Za-z]{1,})\s{0,}:\s{0,}\'([\S\s]{0,})\';/iu', $string, $matches)) {
$pictures[$i]->setProperty($matches[1], $matches[2]);
}
break;
}
}
return new container($pictures, $length);
}
Рукопашный парсинг Json-подобного синтаксиса.
vistefan,
15 Августа 2012
-
+75
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
public function fromRimToDec($str) {
$i = 1;
$ii = 2;
$iii = 3;
$iv = 4;
$v = 5;
$vi = 6;
$vii = 7;
$viii = 8;
$ix = 9;
$x = 10;
return $$str;
}
public function fromDecToRim($str) {
$RimDigit = array(1 => 'i', 4 => 'iv', 5 => 'v', 9 => 'ix', 10 => 'x');
$result = '';
if ($str <= 3) {
for ($i = 0; $i < $str; $i++) {
$result = $result.$RimDigit[1];
}
} else if ($str > 5 && $str <= 8) {
$result = $RimDigit[5];
for ($i = 5; $i < $str; $i++) {
$result = $result.$RimDigit[1];
}
} else {
$result = $RimDigit[$str];
}
return $result;
}
Две феерически говёных взаимнообратных функции которые используются в супер функционале чьей-то самописной цмс для автоматического преобразования нумерованных списков с римскими\арабскими цифрами. (Да да, в этой цмс списки с римскими цифрами ограничены по длине десятью итемами, а обычные списки обрабатываются отдельно.) Вся алгебра непозиционных систем счисления меркнет в сравнении.
vistefan,
19 Июля 2012
-
+63
- 1
- 2
- 3
- 4
- 5
private function lowercase($s) {
$chars_hi = utf8_encode('ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁ');
$chars_lo = utf8_encode('abcdefghijklmnopqrstuvwxyzабвгдежзийклмнопрстуфхцчшщъыьэюяё');
return strtr($s, $chars_hi, $chars_lo);
}
Картина маслом: Велосипедист бьётся лбом о локали.
Сие говно выдаёт нечто из греческого алфавита вместо 'ё'.
vistefan,
19 Июля 2012