-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+138
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
/// <summary>
/// Преобразование системных наименований клавиш в "понятные пользователю"
/// </summary>
/// <param name="key">Нажатая системная клавиша</param>
/// <returns>Понятное представление</returns>
public static string ReplaceKeyCode(System.Windows.Forms.Keys key)
{
switch (key)
{
case Keys.OemQuestion: return "'?'";
case Keys.OemOpenBrackets: return "'{'";
case Keys.Oemtilde: return "'~'";
case Keys.Next: return "PageDown";
}
switch (key)
{
case Keys.A: return "A";
case Keys.Add: return "Num'+'";
case Keys.Alt: return "Alt";
case Keys.B: return "B";
case Keys.Back: return "Backspace";
case Keys.C: return "C";
case Keys.Cancel: return "Cancel";
case Keys.Clear: return "Clear";
case Keys.ControlKey: return "Ctrl";
case Keys.D: return "D";
case Keys.D0: return "0"; case Keys.D1: return "1"; case Keys.D2: return "2"; case Keys.D3: return "3";
case Keys.D4: return "4"; case Keys.D5: return "5"; case Keys.D6: return "6"; case Keys.D7: return "7";
case Keys.D8: return "8"; case Keys.D9: return "9"; case Keys.Decimal: return "Num'.'";
case Keys.Delete: return "Delete";
case Keys.Divide: return "Num'/'";
case Keys.Down: return "Down";
case Keys.E: return "E";
case Keys.End: return "End";
case Keys.Escape: return "Esc";
case Keys.F: return "F";
case Keys.F1: return "F1";
case Keys.F10: return "F10";
case Keys.F11: return "F11";
case Keys.F12: return "F12";
case Keys.F2: return "F2";
case Keys.F3: return "F3";
case Keys.F4: return "F4";
case Keys.F5: return "F5";
case Keys.F6: return "F6";
case Keys.F7: return "F7";
case Keys.F8: return "F8";
case Keys.F9: return "F9";
case Keys.G: return "G";
case Keys.H: return "H";
case Keys.Home: return "Home";
case Keys.I: return "I";
case Keys.Insert: return "Insert";
case Keys.J: return "J";
case Keys.K: return "K";
case Keys.L: return "L";
case Keys.M: return "M";
case Keys.N: return "N";
case Keys.Next: return "Next";
case Keys.NumPad0: return "Num0";
case Keys.NumPad1: return "Num1";
case Keys.NumPad2: return "Num2";
case Keys.NumPad3: return "Num3";
case Keys.NumPad4: return "Num4";
case Keys.NumPad5: return "Num5";
case Keys.NumPad6: return "Num6";
case Keys.NumPad7: return "Num7";
case Keys.NumPad8: return "Num8";
case Keys.NumPad9: return "Num9";
case Keys.O: return "O";
case Keys.Oem1: return "';'";
case Keys.Oem5: return "'/'";
case Keys.Oem6: return "'{'";
case Keys.Oem7: return "\"";
case Keys.OemMinus: return "'-'";
case Keys.OemPeriod: return "'>'";
case Keys.Oemcomma: return "'<'";
case Keys.Oemplus: return "'+'";
case Keys.P: return "P";
case Keys.PageUp: return "PageUp";
case Keys.Q: return "Q";
case Keys.R: return "R";
case Keys.S: return "S";
case Keys.ShiftKey: return "Shift";
case Keys.Space: return "Space";
case Keys.Subtract: return "Num'-'";
case Keys.T: return "T";
case Keys.Tab: return "Tab";
case Keys.U: return "U";
case Keys.Up: return "Up";
case Keys.V: return "V";
case Keys.W: return "W";
case Keys.X: return "X";
case Keys.Y: return "Y";
case Keys.Z: return "Z";
case Keys.Menu: return "Alt";
case Keys.Multiply: return "Num'*'";
default: return string.Empty;
}
}
HLW,
02 Марта 2013
-
+16
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
BOOL EnsureThreadIsSuspended (HANDLE hThread, Thread* pThread)
{
STATIC_CONTRACT_NOTHROW;
STATIC_CONTRACT_GC_NOTRIGGER;
WRAPPER_CONTRACT;
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_INTEGER;
BOOL ret;
ret = ::GetThreadContext(hThread, &ctx);
return ret;
}
А ведь и правда, никто не гарантирует, что поток будет остановлен к тому моменту, когда SuspendThread() вернет управление...
Ccik,
06 Февраля 2013
-
+77
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
public static long[] intArrayToLongArray(int[] in) {
long[] out = new long[in.length];
for (int i=0, n=in.length; i<n; i++)
out[i] = in[i];
return out;
}
public static void vibrateByResource(Context context, int resId) {
Vibrator vibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = intArrayToLongArray(context.getResources().getIntArray(resId));
vibrator.vibrate(pattern, -1);
}
vibrateByResource(this, R.array.vibroPatternSuccess);
vibrate() принимает только long[], но не int[], в ресурсах могут храниться только int[] но не long[]. В результате родился вот такой говнокодик.
bormand,
30 Января 2013
-
+13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
void SetInterruptHandler(int id, unsigned int offset) {
__asm cli;
unsigned int *idt = (unsigned int*)0;
idt[id*2+0] = 0x00080000 | (offset & 0x0000FFFF);
idt[id*2+1] = 0x00008E00 | (offset & 0xFFFF0000);
__asm sti;
}
Как и обещал в http://govnokod.ru/12413#comment166763, выкладываю исходник говнолоадера, запускающего 32-х битный сишный код с дискетки: https://github.com/bormand/tryos, хотя судя по всему никому это не интересно...
Если кому-то все-таки придет в голову странное желание это собрать - нужна вижуалка (к сожалению код написан лет 5 назад, когда я юзал вижуалку) и nasm. Путь к nasm прописываем в Makefile, запускаем nmake, полученный floppy.dsk можно скормить виртуалбоксу, или же зарезать на дискету, если удастся вспомнить как она выглядит...
UPD: Скрин http://rghost.ru/43035733.view
bormand,
14 Января 2013
-
+23
- 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
#include <iostream>
using namespace std;
class Class {
public:
explicit Class(int a) : m_int(a) {}
int get() const { return m_int; }
void swapThis(int a) {
delete this;
Class **thisptr = reinterpret_cast<Class**>(&a);
thisptr--;
*thisptr = new Class(a);
cout << "this: " << this << endl
<< "that: " << *thisptr << endl;
}
private:
int m_int;
};
int main() {
Class *s = new Class(13);
s->swapThis(42);
cout << s->get() << endl;
delete s;
return 0;
}
Что творит хакингкостылинг + инлайн методы.
http://ideone.com/5Kyitw
Elvenfighter,
29 Декабря 2012
-
+65
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
public TransportEntry getTransportEntry(int transportId) {
TransportEntry result = null;
AbstractTransport transport = TransportManager.getInstance(getActivity()).getTransportById(transportId);
if (mTransports == null || transport == null)
return null;
int count = mTransports.size();
for (int i = 0; i < count; i++) {
final TransportEntry entry = mTransports.get(i);
if (entry.getTransportId() == transportId) {
// нашли нужный транспорт. вернем его, если что...
result = entry;
// если он еще и онлайн - то сразу возвращаем - самое подходящее
if (transport.isUserOnline(entry.getData()))
return result;
}
}
return result;
Если что...
dkunin,
17 Декабря 2012
-
+102
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
switch (occupation.name)
{
case "architecture and engineering occupations:":
if (occupation.isNB)
{
if (occupation.maleId == ex_nb_id)
{
model.ArchitectureAndEngineeringOccupationsMalePercentageNB = occupation.percent;
}
if (occupation.femaleId == ex_nb_id)
{
model.ArchitectureAndEngineeringOccupationsFemalePercentageNB = occupation.percent;
}
}
else
{
if (occupation.maleId == ex_city_id)
{
model.ArchitectureAndEngineeringOccupationsMalePercentageCity = occupation.percent;
}
if (occupation.femaleId == ex_city_id)
{
model.ArchitectureAndEngineeringOccupationsFemalePercentageCity = occupation.percent;
}
}
break;
case "arts, design, entertainment, sports, and media occupations:":
if (occupation.isNB)
{
if (occupation.maleId == ex_nb_id)
{
model.ArtsDesignEntertainmentSportsAndMediaOccupationsMalePercentageNB = occupation.percent;
}
if (occupation.femaleId == ex_nb_id)
{
model.ArtsDesignEntertainmentSportsAndMediaOccupationsFemalePercentageNB = occupation.percent;
}
}
else
{
if (occupation.maleId == ex_city_id)
{
model.ArtsDesignEntertainmentSportsAndMediaOccupationsMalePercentageCity = occupation.percent;
}
if (occupation.femaleId == ex_city_id)
{
model.ArtsDesignEntertainmentSportsAndMediaOccupationsFemalePercentageCity = occupation.percent;
}
}
break;
case "business and financial operations occupations:":
if (occupation.isNB)
{
if (occupation.maleId == ex_nb_id)
{
model.BusinessAndFinancialOperationsOccupationsMalePercentageNB = occupation.percent;
}
if (occupation.femaleId == ex_nb_id)
{
model.BusinessAndFinancialOperationsOccupationsFemalePercentageNB = occupation.percent;
}
}
else
{
if (occupation.maleId == ex_city_id)
{
model.BusinessAndFinancialOperationsOccupationsMalePercentageCity = occupation.percent;
}
if (occupation.femaleId == ex_city_id)
{
model.BusinessAndFinancialOperationsOccupationsFemalePercentageCity = occupation.percent;
}
}
break;
case "community and social services occupations:":
if (occupation.isNB)
{
if (occupation.maleId == ex_nb_id)
{
model.CommunityAndSocialServicesOccupationsMalePercentageNB = occupation.percent;
}
if (occupation.femaleId == ex_nb_id)
{
model.CommunityAndSocialServicesOccupationsFemalePercentageNB = occupation.percent;
}
}
else
{
if (occupation.maleId == ex_city_id)
{
model.CommunityAndSocialServicesOccupationsMalePercentageCity = occupation.percent;
}
if (occupation.femaleId == ex_city_id)
{
model.CommunityAndSocialServicesOccupationsFemalePercentageCity = occupation.percent;
}
}
эх жаль здесь ограничение на 100 строк всего лишь...не поместилось всего 200+ отборного ветвления. известный до боли мегапрограммер наваял очередной шедевр)))) по мотивам http://govnokod.ru/10448 и http://govnokod.ru/10313 и еще http://govnokod.ru/12136...
mangyst,
29 Ноября 2012
-
+98
- 1
- 2
- 3
public String toString() {
return new String(body.toString());
}
Но зачем?
3.14159265,
14 Ноября 2012
-
+127
- 1
- 2
- 3
- 4
- 5
if(Normal(Pawn.Acceleration) Dot Vect(1,0,0) > 0)
{
tempRot.Yaw = 0;
Pawn.SetRotation(tempRot);
}
Из туториала по UDK. Почему просто не написать Pawn.Acceleration > 0 ?
tirinox,
12 Ноября 2012
-
+126
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
infixr 6 `then'`
then' True = fst
then' False = snd
if' = id
else' suc fail = (suc, fail)
main = do
print $ if' (1<5) `then'` "true" `else'` "false"
print $ if' False `then'` "true" `else'` "false"
bormand
У ифа особый синтаксис. Как ты его реализуешь?
Challenge accepted:
Сначала был тред
http://govnokod.ru/12068#comment159236
а потом родилось говно:
http://ideone.com/rOKDPP
Реализовал if. За правильными приоритетами операций и ассоциативностью не следил.
HaskellGovno,
07 Ноября 2012