- 1
#include "commode.h"
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 5
+121
#include "commode.h"
//development might be long and harassing
//we'll need some furniture to keep food and coffee
+15
#include <cstdio>
#include <cstdlib>
#include <fstream>
// #include <cstring>
#include <string>
using namespace std;
string exec = "\"c:\\Program Files (x86)\\GnuWin32\\bin\\wget.exe\"";
string root = "http://techno.org/electronic-music-guide/";
const char* flist = "list.txt";
void getFile(string name)
{
string command = exec + " " + root + name;
system(command.c_str());
}
int main(int argc, char* argv[])
{
ifstream fin(flist);
string name = "";
while(true)
{
if (fin.eof()) break;
getline(fin, name);
getFile(name);
}
return 0;
}
Суть такова: ваш покорный слуга копался в исходниках этого: http://techno.org/electronic-music-guide/ -- ради музыкальных лупов на рингтон. Узнал, что это реализовано swf-модулями, список которых он добыл после объединения кучи скриптов и сортировки в NPP. Осталось лишь найти способ загрузить эти файлы по списку.
Но искать было лень, поэтому реализовано подручными средствами: мозгом, компилятором и случайно попавшимся wget'ом (FTW).
+103
if (s[n][c]='1')and(s[n][c+1]='0')and(s[n+1][c]='0')and(n=1)and(c=1) then writeln('*');
if (s[n][c]='1')and(s[n][c-1]='0')and(s[n+1][c]='0')and(s[n][c+1]='0')and(n=1) then writeln('*');
if (s[n][c]='1')and(s[n][c-1]='0')and(s[n+1][c]='0')and(n=1)and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n-1][c]='0')and(s[n][c-1]='0')and(s[n+1][c]='0')and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n-1][c]='0')and(s[n][c-1]='0')and(n=10)and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n][c+1]='0')and(s[n-1][c]='0')and(s[n][c-1]='0')and(n=10) then writeln('*');
if (s[n][c]='1')and(s[n][c+1]='0')and(s[n-1][c]='0')and(n=10)and(c=1) then writeln('*');
if (s[n][c]='1')and(s[n+1][c]='0')and(s[n][c+1]='0')and(s[n-1][c]='0')and(c=1) then writeln('*');
if (s[n][c]='1')and(s[n][c+1]='.')and(s[n+1][c]='.')and(n=1)and(c=1) then writeln('*');
if (s[n][c]='1')and(s[n][c-1]='.')and(s[n+1][c]='.')and(s[n][c+1]='.')and(n=1) then writeln('*');
if (s[n][c]='1')and(s[n][c-1]='.')and(s[n+1][c]='.')and(n=1)and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n-1][c]='.')and(s[n][c-1]='.')and(s[n+1][c]='.')and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n-1][c]='.')and(s[n][c-1]='.')and(n=10)and(c=10) then writeln('*');
if (s[n][c]='1')and(s[n][c+1]='.')and(s[n-1][c]='.')and(s[n][c-1]='.')and(n=10) then writeln('*');
if (s[n][c]='1')and(s[n][c+1]='.')and(s[n-1][c]='.')and(n=10)and(c=1) then writeln('*');
if (s[n][c]='1')and(s[n+1][c]='.')and(s[n][c+1]='.')and(s[n-1][c]='.')and(c=1) then writeln('*');
Конец решения первой задачи все из той же дистанционки.
На этот раз мопед не мой, а одной юной дамы.
Вот за ЭТО я и недолюбливаю Паскаль: иногда код хер прочитаешь. А еще путаница с типами. И логикой. Гы.
−114
Function Shoot(lay() As String, x, y) As String
Let Shoot = ssMiss
Dim HorCheck As Boolean
Dim i As Byte
If lay(x, y) = ssShip Then
If 1 < x Then
If lay(x - 1, y) = ssEmpty Then GoTo Shoot_Right_Check
Let HorCheck = True
If lay(x - 1, y) = ssShip Then GoTo Shoot_WriteHit
End If
If 2 < x Then
If lay(x - 2, y) = ssEmpty Then GoTo Shoot_Right_Check
If lay(x - 2, y) = ssShip Then GoTo Shoot_WriteHit
End If
If 3 < x Then
If lay(x - 3, y) = ssEmpty Then GoTo Shoot_Right_Check
If lay(x - 3, y) = ssShip Then GoTo Shoot_WriteHit
End If
Shoot_Right_Check:
If x < N Then
If lay(x + 1, y) = ssEmpty Then GoTo Shoot_Up_Check
Let HorCheck = True
If lay(x + 1, y) = ssShip Then GoTo Shoot_WriteHit
End If
If x < (N - 1) Then
If lay(x + 2, y) = ssEmpty Then GoTo Shoot_Up_Check
If lay(x + 2, y) = ssShip Then GoTo Shoot_WriteHit
End If
If x < (N - 2) Then
If lay(x + 3, y) = ssEmpty Then GoTo Shoot_Up_Check
If lay(x + 3, y) = ssShip Then GoTo Shoot_WriteHit
End If
Shoot_Up_Check:
If HorCheck Then GoTo Shoot_Write_Sink
For i = 1 To 3
If i < y Then
If lay(x, y - i) = ssEmpty Then GoTo Shoot_Down_Check
If lay(x, y - i) = ssShip Then GoTo Shoot_WriteHit
End If
Next i
Shoot_Down_Check:
For i = 1 To 3
If y < N - i + 1 Then
If lay(x, y + i) = ssEmpty Then GoTo Shoot_Write_Sink
If lay(x, y + i) = ssShip Then GoTo Shoot_WriteHit
End If
Next i
Shoot_Write_Sink:
Let Shoot = ssSink
End If
Exit Function
Shoot_WriteHit:
Let Shoot = ssHit
End Function
Из решения задачи про морской бой из заочной олимпиады.
Процедура выстрела на твердой логике (ближе к концу перекроил на цикл) и грешном GoTo.
А еще строчка из другой процедуры порадовала. Оставлю её здесь: Dim x, y, i As Byte
−110
Select Case Figure mod 6
...
Case chsQueen 'Ферзь
Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
Picture.Circle (X + 0.5 * Side, Y + 0.15 * Side), 0.08 * Side, Border
Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
Picture.Circle (X + 0.3 * Side, Y + 0.25 * Side), 0.08 * Side, Border
Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
Picture.Circle (X + 0.7 * Side, Y + 0.25 * Side), 0.08 * Side, Border
Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
Picture.Circle (X + 0.85 * Side, Y + 0.35 * Side), 0.08 * Side, Border
Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
Picture.Circle (X + 0.15 * Side, Y + 0.35 * Side), 0.08 * Side, Border
Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.27 * Side, Y + 0.8 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.73 * Side, Y + 0.8 * Side), Border
Picture.Circle (X + 0.5 * Side, Y + 0.35 * Side), 0.5 * Side, Border, 1.35 * Pi, 1.65 * Pi
Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.5 * Side, Border)
Picture.Circle (X + 0.5 * Side, Y + 1.24 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
Picture.Circle (X + 0.5 * Side, Y + 1.1 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
Picture.Line (X + 0.73 * Side, Y + 0.68 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.73 * Side, Y + 0.77 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.68 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.27 * Side, Y + 0.77 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
Let Picture.FillColor = Border
Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.7 * Side, Border)
Call FloodFill(Picture.hdc, X + 0.73 * Side, Y + 0.7 * Side, Border)
Call FloodFill(Picture.hdc, X + 0.31 * Side, Y + 0.68 * Side, Border)
Let Picture.FillColor = Fill
...
End Select
Пишу свои шахматы, с блекджеком и не без них.
Вот, набацал алгоритм векторного рисования ферзя.
Только на это ушло около получаса времени чистого с примесями (подстройки, мать их).
Чую нутром, лучше забить и вырвать клипарт из интернета.