- 1
http://archive.today/9LWN
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+129
http://archive.today/9LWN
From: Linus Torvalds
I think goto's are fine, and they are often more readable than large
amounts of indentation.
+150
<?php
require_once("inc/mysql.php");
sleep(3); //Для ajax запроса, потом удалить
// Проверяем, что к нам идёт Ajax запрос
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$city1 = $_POST['city1'];
}else{
exit(); // Заканчиваем работу скрипта, если это не ajax запрос
}
if (isset($city1)) {
$query = "SELECT id_city, id_region, id_country FROM cities WHERE city_name_ru LIKE '$city1'";
$result = mysqli_query($link, $query);// or trigger_error(mysql_error($link)." ".$query);
$row = mysqli_fetch_array($result);
$country = $row['id_country'];
//echo $country;
//echo '<br>';
$region = $row['id_region'];
//echo $region;
//echo '<br>';
$query1 = "SELECT country_name_ru FROM countries WHERE id_country = '$country'";
$result1 = mysqli_query($link, $query1);// or trigger_error(mysql_error($link)." ".$query);
$row1 = mysqli_fetch_array($result1);
echo '<p class=\'country\'>Страна '.$row1['0'].'</p>';
//echo '<br>';
$query2 = "SELECT region_name_ru FROM regions WHERE id_region = '$region'";
$result2 = mysqli_query($link, $query2);// or trigger_error(mysql_error($link)." ".$query);
$row2 = mysqli_fetch_array($result2);
echo '<p class=\'reqion\'>Область '.$row2['0'].'</p>';
}
?>
Прокомментируйте, пожалуйста, как улучшить этот говнокод.
+130
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
namespace SimpleLex
{
class Lexical
{
//Сюда передается путь к файлу конфигурации
public string Path = "";
//Определяем ключевые слова
string regular = "Color|Size|Name";
public void lexical()
{
//Создаем массив строк для дальнейшего заполнения
string[] conf = new string[1024];
//Переменная счетчик
int i = 0;
//Заполняем массив из файла
//Path мы присваиваем значение при создании
//объекта нашего класса.
conf = File.ReadAllLines(Path);
//Запускаем цикл чтения
while (conf.Length - 1 >= i)
{
// Создаем новый объект класса Regex
// и передаем ему в качестве конструктора
// cписок ключевых слов
Regex RegularExp = new Regex(regular);
//Начинаем поиск совпадений в текущей строке
Match match = RegularExp.Match(conf[i]);
while (match.Success)
{
//Ожидаем наличия совпадений
break;
//Если нашли то выпрыгиваем
}
switch (match.Value) // Смотрим что же мы обнаружили и вызываем соответствующий метод
{
case "Color":
//вызываем метод Color_
//и передаем ему текущую строку для разбора
//Предварительно удалив все пробелы с двух сторон
//если они были метод Trim()
Color_(conf[i].Trim());
i++;
break;
case "Size":
size_(conf[i].Trim());
i++;
break;
default:
//все другое пропускаем
i++;
break;
}
}
}
void Color_(string str)
{
int i = 0;
while (str.Substring(i,1)!= "=")
{
//Ищем разделитель в данном случае "="
i++;
}
//Находим и извлекаем нужную нам информацию
string value_ = str.Substring(i + 1, str.Length - (i+1)).Trim();
//Теперь все зависит от вашей фантазии хотите
//Создайте класс который будет устанавливать цвет шрифта
//И.т.д
Console.WriteLine(value_);
Console.ReadKey();
}
void size_(string str)
{
/*
* В этом методе я хочу показать как быть если вы используете
* в своем файле для каждой команды разные разделители
* в теории конечно можно все это засунуть в один метод
* Но я советую в дальнейшем если вы будите применять
* именно такую структуру передавать в метод тип разделителя
* и соответственно искать именно его другое дело если вы имеете
* различный формат входных данных как у нас параметр size имеет
* вид shize X=100,Y=500
*/
//Есть прекрасный метод
int i = 0;
while (str.Substring(i,1) != " ")
{
i++;
}
str = str.Substring(i, str.Length - i).Trim();
string[] commandMas = new string[3];
commandMas = str.Split(',');
(GetPrivateProfileString? Не, не слышал)
Лютый песдеzz с сайта vbbook.ru
+127
#define PIXEL_PARTS_NUM 3
typedef struct _pixel {
char parts[PIXEL_PARTS_NUM];
} pixel;
+124
import elements
import functions
import system
error = 'Ошибок нет'
add = input ('Введите элемент, который вы хотите добавить в таблицу')
table = element.table
addToTable : add
if addTo.table : Successful {
put 'Ошибок нет' }
else
put error
system.exit
На случай, если друг подумает, что ничего не работает..
Писалось на языке без названия, не придумал ещё :)
+154
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
do_action("ws_plugin__s2member_before_paypal_api_response", get_defined_vars());
unset /* Unset defined __refs, __v. */($__refs, $__v);
И опять s2member для wordpress
+143
CFGDBFACADOEBFAAAACOABAOBBGAAODBFADCCCFDOGDACCOGAAAAAACOBDBGAAOCBGDEBDFDADGCBEDAABCOBEECBDAOECFCCFCCEOBDOAABDFOAOBDBOBGOBDBBEECBBAOOBADBADAEGAOCBEFAABCFDBGOAFGBGEBBDBBGBBGBEACOOACAAABCBDADGACAAABDOOAAFCBBDBODCBDFDCBEDAAACEAGACFDCADDFOBCCBOBDGEDEFBAAAABDAACDBDGODGBCBBDCOAEGAOBAEFBOEDGCCGEDBOCFDBEBBEFAOCACGBFEAAEBGFDOBCAADACAAECGEAABDBFACGBGECEGCDADBFACGABOCGGDFEABOCOGCFGCOAAAAAOEAAABGECCODAD
"Змейка" в машинных кодах на системе счисления wct. WctEditor - http://yadi.sk/d/i9Me1IQ7MbHCD.
+138
private static Dictionary<RoleEnum, string> Roles = new Dictionary<RoleEnum, string>
{
{RoleEnum.TeamMember, "Team Member"},
{RoleEnum.ProjectManager, "Project Manager"},
{RoleEnum.ProgramManager, "Program Manager"},
{RoleEnum.PortfolioManager, "Portfolio Manager"},
{RoleEnum.Executive, "Executive"},
{RoleEnum.Undefined, "Undefined"}
};
public static RoleEnum ParseRole(string role)
{
RoleEnum result = RoleEnum.Undefined;
Roles
.Where(_ => _.Value == role)
.ToList()
.ForEach(_ => result = _.Key);
return result;
}
Странное использование дикшинари, очень странное, в обратную сторону можна сказать
+126
program FeyverkFirework;
{$R+}
uses
Crt, Graph;
var
GraphDriver, GraphMode, ErrorCode : Integer;
Ch : Char;
I, J, K, XStart, YStart : Integer;
XX,YY,CC : Array[1..1000] of Integer;
FX,FY,DX,DY : Array[1..70] of Real;
R, T, X, Y : Real;
procedure Explode (C : Integer);
begin
T := -Pi;
I := 0;
Repeat
I := I + 1;
DX[I] := Sin(T)*5;
DY[I] := Cos(T)*5;
FX[I] := X;
FY[I] := Y;
T := T + 0.15;
Until T > Pi;
K := 0;
Repeat
For J := 1 to I do
begin
If C = 0 then
PutPixel (Round(FX[J]),Round(FY[J]),0)
else
PutPixel (Round(FX[J]),Round(FY[J]),Random(GetMaxColor+1));
FX[J] := FX[J] + DX[J];
FY[J] := FY[J] - DY[J];
DY[J] := DY[J] - 0.2;
end;
K := K + 1;
Delay(10); { This was not in the original. }
Until Keypressed or (K > 50);
end;
procedure ShootFireWork;
begin
{ Delay (1000); }
Randomize;
T := Random / 2 - 0.25 + Pi/2;
X := XStart;
Y := YStart;
R := 20;
I := 0;
Repeat
Inc (I);
XX[I] := Round(X);
YY[I] := Round(Y);
CC[I] := GetPixel (XX[I],YY[I]);
If I > 1 then
If (XX[I] = XX[I-1]) and (YY[I] = YY[I-1]) then CC[I] := CC[I-1];
PutPixel (XX[I],YY[I],Random(GetMaxColor+1));
If I > 5 then
PutPixel (XX[I-5],YY[I-5],CC[I-5]);
X := X + Cos(T)*R;
Y := Y - Sin(T)*R;
If T > Pi/2 then
T := T + 0.02
else
T := T - 0.02;
R := R * 0.93;
Delay (20);
Until KeyPressed or (T < 0) or (T > Pi);
For J := I-5 to I do
PutPixel (XX[J],YY[J],CC[J]);
{ ch := readkey; }
Explode (1);
Explode (0);
end;
begin
GraphDriver := Detect;
InitGraph (GraphDriver, GraphMode, '..');
ErrorCode := GraphResult;
If ErrorCode <> grOk then
begin
Writeln ('Graphics Error: ',GraphErrorMsg(ErrorCode));
Halt;
end;
SetColor (GetMaxColor);
XStart := GetMaxX div 2;
YStart := GetMaxY - 20;
Repeat
ShootFireWork;
Until Keypressed;
Ch := ReadKey;
ClearDevice;
CloseGraph;
end.
Работает же! Красиво получается :)
Выполнить код можно здесь: http://pma.clan.su/index.html.
Алгоритм выполнения кода. Жмём E. Вводим код. Нажимаем в левом нижнем углу CoPas editor. Нажимаем R. Радуемся! :)
+83
program FeyverkFirework;
{$R+}
uses
Crt, Graph;
var
GraphDriver, GraphMode, ErrorCode : Integer;
Ch : Char;
I, J, K, XStart, YStart : Integer;
XX,YY,CC : Array[1..1000] of Integer;
FX,FY,DX,DY : Array[1..70] of Real;
R, T, X, Y : Real;
procedure Explode (C : Integer);
begin
T := -Pi;
I := 0;
Repeat
I := I + 1;
DX[I] := Sin(T)*5;
DY[I] := Cos(T)*5;
FX[I] := X;
FY[I] := Y;
T := T + 0.15;
Until T > Pi;
K := 0;
Repeat
For J := 1 to I do
begin
If C = 0 then
PutPixel (Round(FX[J]),Round(FY[J]),0)
else
PutPixel (Round(FX[J]),Round(FY[J]),Random(GetMaxColor+1));
FX[J] := FX[J] + DX[J];
FY[J] := FY[J] - DY[J];
DY[J] := DY[J] - 0.2;
end;
K := K + 1;
Delay(10); { This was not in the original. }
Until Keypressed or (K > 50);
end;
procedure ShootFireWork;
begin
{ Delay (1000); }
Randomize;
T := Random / 2 - 0.25 + Pi/2;
X := XStart;
Y := YStart;
R := 20;
I := 0;
Repeat
Inc (I);
XX[I] := Round(X);
YY[I] := Round(Y);
CC[I] := GetPixel (XX[I],YY[I]);
If I > 1 then
If (XX[I] = XX[I-1]) and (YY[I] = YY[I-1]) then CC[I] := CC[I-1];
PutPixel (XX[I],YY[I],Random(GetMaxColor+1));
If I > 5 then
PutPixel (XX[I-5],YY[I-5],CC[I-5]);
X := X + Cos(T)*R;
Y := Y - Sin(T)*R;
If T > Pi/2 then
T := T + 0.02
else
T := T - 0.02;
R := R * 0.93;
Delay (20);
Until KeyPressed or (T < 0) or (T > Pi);
For J := I-5 to I do
PutPixel (XX[J],YY[J],CC[J]);
{ ch := readkey; }
Explode (1);
Explode (0);
end;
begin
GraphDriver := Detect;
InitGraph (GraphDriver, GraphMode, '..');
ErrorCode := GraphResult;
If ErrorCode <> grOk then
begin
Writeln ('Graphics Error: ',GraphErrorMsg(ErrorCode));
Halt;
end;
SetColor (GetMaxColor);
XStart := GetMaxX div 2;
YStart := GetMaxY - 20;
Repeat
ShootFireWork;
Until Keypressed;
Работает же! Красиво получается :)
Выполнить код можно здесь: http://pma.clan.su/index.html.
Алгоритм выполнения кода. Жмём E. Вводим код. Нажимаем в левом нижнем углу CoPas editor. Нажимаем R. Радуемся! :)