-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+1
- 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
void text::draw()
{
CmdWinGUI::draw();
COORD temp = startCo; //Разный мусор
COORD tempEnd = startCo;
int16_t _al = 0;
int16_t _an = 0;
int16_t remain = 0;
uint8_t a = 0;
bool fullRow = 1; //Флаги, не изменять
bool alignPrepare = 0;
if (tableLine)
{
temp.Y = temp.Y + lineShift + sepShift;
}
if (!tableFormat)
{
if (alignSetting == ALIGN_C)
{
_al = sizeCo.X/2;
for (uint8_t a = 0;a < 0xFF;++a) //Измеряем длину текстового поля
{
if (textBuffer[a] == NULL)
break;
++remain;
}
temp.X=startCo.X+ _al-remain/2; //Корректируем курсор в соответствии с расчётами
if (temp.X < startCo.X) //Если предыдущие вычисления дали ошибку - выход за предел рамки слева
temp.X = startCo.X; //Корректируем
}
for (;;)
{
SetConsoleCursorPosition(hCon, temp);
if (textBuffer[a] == NULL)
break;
printf("%c", textBuffer[a]);
++temp.X;
++a;
if (temp.X == startCo.X + sizeCo.X - 1) //Проверяем достигло ли рамки, иначе обрываем цикл
break;
}
return;
}
for (uint8_t b = 0;b<=filledRows;++b)
{
if (!fullRow)
{
temp.X = tempEnd.X;
}
tempEnd.X += tableRowSize[b] - 1;
if (alignSetting == ALIGN_C)
{
--temp.X;
//Предварительные расчеты смещения
if (!alignPrepare)
{
for (SHORT a = temp.X;a < 0xFF;++a)
{
if (a == tempEnd.X) //Проверяем достигло ли рамки, иначе обрываем цикл
{
--_an;
break; //половина длины поля таблицы
}
++_an;
}
for (uint8_t a = 0;a < 0xFF;++a)
{
if (tableText[b][a] == NULL)
{
_al = a; //половина длины слова
break;
}
}
alignPrepare = 1; //Подымаем флаг готовности
}
//Коррекция положения курсора в соответствии с результатами блока предварительных расчётов
temp.X += abs(_an / 2) - abs(_al / 2);
_an = 0;
}for (;;){
SetConsoleCursorPosition(hCon, temp); //Ставим курсор в начало/середину/конец поля
if (tableText[b][a] == NULL)
{
fullRow = 0; //При окончании поля текста до заполнения поля снимаем флаг заполнения поля
break;
}
++temp.X;
if (temp.X == tempEnd.X) //Проверяем достигло ли рамки, иначе обрываем цикл
{
fullRow = 1; //При окончании поля в таблице до завершения поля текста прекращаем вывод и выходим из цикла
break;
}
printf("%c", tableText[b][a]);
++a;
}
a = 0;
alignPrepare = 0; //Сбрасываем флаг для следующей итерации
}
if (isChanged)
this->editFlagSwitch();
}
Рендер текста с учётом коллизии слева и справа
siclown,
30 Сентября 2023
-
+1
- 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
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
#include "Windows.h"
void line::draw()
{
CmdWinGUI::draw();
uint8_t modB = 0; //modeByte
COORD tempSt = lineStart;
COORD tempEn = lineEnd;
SHORT dX = abs(lineEnd.X - lineStart.X);
SHORT dY = abs(lineEnd.Y - lineStart.Y);
SHORT sX = lineStart.X < lineEnd.X ? 1 : -1;
SHORT sY = lineStart.Y < lineEnd.Y ? 1 : -1;
SHORT dErr = dX - dY;
SHORT dErr2 = 0;
if (scan)
{
SetConsoleCursorPosition(hCon, lineStart);
for (uint8_t a = 0;a <= lineEnd.X-lineStart.X;++a)
{
modB = lineAtrBuffer[a];
SetConsoleTextAttribute(hCon, modB);
printf("%c", lineSymBuffer[a]);
}
if (isChanged)
this->editFlagSwitch();
return;
}
for (;;)
{
SetConsoleCursorPosition(hCon, tempSt);
printf("%c", lineSym);
if (tempSt.X == tempEn.X&&tempSt.Y == tempEn.Y)
break;
dErr2 = dErr * 2;
if (dErr2 > -dY)
{
dErr -= dY;
tempSt.X += sX;
}
if (dErr2 < dX)
{
dErr += dX;
tempSt.Y += sY;
}
}
if (isChanged)
this->editFlagSwitch();
}
Отрисовка произвольной графической линии в консоли
siclown,
30 Сентября 2023
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
import std.stdio;
interface A {
void M();
}
interface B : A {
final void M() {
writeln("BBBB");
}
}
class C : B {
}
void main() {
auto c = new C();
c.M();
}
а багры здесь тихие
> Error: class `C` interface function `void M()` is not implemented
Desktop,
20 Сентября 2023
-
+1
- 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
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
using System;
using System.Linq;
namespace TheBestGenerator
{
class Symbols
{
protected const string Letters = "abcdefghijklmnopqrstuvwxyz";
protected const string Numbers = "0123456789";
protected const string DefaultSpecialSymbols = @"!#$%&*@\";
protected static Random rand = new Random();
}
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("Введите длину пароля:");
int Len = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(Generator.Password(Len));
}
}
}
class Generator: Symbols
{
static char[] Array_()
{
return (Numbers+Letters+Letters.ToUpper()+DefaultSpecialSymbols).ToCharArray();
}
static char[] Password_Symbols()
{
return Array_().OrderBy(Symbol => rand.Next()).ToArray();
}
public static string Password(int Len )
{
char[] password = Password_Symbols();
Array.Resize(ref password, Len);
return (string.Join("", password));
}
}
}
Генератор паролей. Говнокод с наследованием. Почти ничего не понимаю в нем, но "прогу" с ним написал.
utsutsbabyj,
22 Июля 2023
-
+1
- 1
Бесконечный оффтоп имени Борманда #18
#1: https://govnokod.ru/25864 https://govnokod.xyz/_25864
#2: https://govnokod.ru/25921 https://govnokod.xyz/_25921
#3: https://govnokod.ru/26544 https://govnokod.xyz/_26544
#4: https://govnokod.ru/26838 https://govnokod.xyz/_26838
#5: https://govnokod.ru/27625 https://govnokod.xyz/_27625
#6: https://govnokod.ru/27736 https://govnokod.xyz/_27736
#7: https://govnokod.ru/27739 https://govnokod.xyz/_27739
#8: https://govnokod.ru/27745 https://govnokod.xyz/_27745
#9: https://govnokod.ru/28307 https://govnokod.xyz/_28307
#10: https://govnokod.ru/28631 https://govnokod.xyz/_28631
#11: (vanished) https://govnokod.xyz/_28742
#12: (vanished) https://govnokod.xyz/_28752
#13: (vanished) https://govnokod.xyz/_28754
#14: https://govnokod.ru/28759 https://govnokod.xyz/_28759
#15: https://govnokod.ru/28765 https://govnokod.xyz/_28765
#16: (vanished) https://govnokod.xyz/_28818
#17: (vanished) https://govnokod.xyz/_28819
nepeKamHblu_nemyx,
16 Июля 2023
-
+1
admin,
15 Июля 2023
-
+1
- 1
- 2
- 3
- 4
- 5
- 6
public int hashCode() {
HashCode h = new HashCode();
h.addValue(mFirst);
h.addValue(mSecond);
return h.hashCode();
}
Наалоцируем даже там, где нужны только примитивы
https://github.com/Netflix/netflix-commons/blob/519178a/netflix-commons-util/src/main/java/com/netflix/util/Pair.java#L119-L124
Tike,
29 Июня 2023
-
+1
- 1
Приватный дневник-тред, который никто не прочтёт, чтобы писать сюда всякие секреты.
Это место для тех, кто устал от публичности социальных сетей.
Здесь можно взять любой логин, не указывая настоящего имени,
вести свой дневник, закрыв его от части или всего виртуального
мира. До 75% записей на сайте подзамочные — для избранных
читателей. Можно писать в тред, который кроме вас вообще
никто не прочтет.
JloJle4Ka,
20 Июня 2023
-
+1
- 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
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
// https://github.com/torvalds/linux/blob/b6dad5178ceaf23f369c3711062ce1f2afc33644/rust/alloc/alloc.rs#L376
pub const fn handle_alloc_error(layout: Layout) -> ! {
const fn ct_error(_: Layout) -> ! {
panic!("allocation failed");
}
fn rt_error(layout: Layout) -> ! {
unsafe {
__rust_alloc_error_handler(layout.size(), layout.align());
}
}
unsafe { core::intrinsics::const_eval_select((layout,), ct_error, rt_error) }
}
// https://github.com/torvalds/linux/blob/b6dad5178ceaf23f369c3711062ce1f2afc33644/rust/kernel/lib.rs#L96-L103
fn panic(info: &core::panic::PanicInfo<'_>) -> ! {
pr_emerg!("{}\n", info);
// SAFETY: FFI call.
unsafe { bindings::BUG() };
// Bindgen currently does not recognize `__noreturn` so `BUG` returns `()`
// instead of `!`. See <https://github.com/rust-lang/rust-bindgen/issues/2094>.
loop {}
}
// https://github.com/torvalds/linux/blob/master/include/asm-generic/bug.h#L51-L68
/*
* Don't use BUG() or BUG_ON() unless there's really no way out; one
* example might be detecting data structure corruption in the middle
* of an operation that can't be backed out of. If the (sub)system
* can somehow continue operating, perhaps with reduced functionality,
* it's probably not BUG-worthy.
*
* If you're tempted to BUG(), think again: is completely giving up
* really the *only* solution? There are usually better options, where
* users don't need to reboot ASAP and can mostly shut down cleanly.
*/
#ifndef HAVE_ARCH_BUG
#define BUG() do { \
printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \
barrier_before_unreachable(); \
panic("BUG!"); \
} while (0)
#endif
О том, как в ядре Linux говнораст обрабатывает ошибку аллокации
j123123,
19 Июня 2023
-
+1
- 1
- 2
- 3
// Всем привет. Я тоже принёс говнокода, но в необычном формате.
// А именно, я написал мини-книгу "60 антипаттернов для С++ программиста".
// https://pvs-studio.ru/ru/blog/posts/cpp/1053/
Там вы найдёте и реальный C++ говнокод и просто вредные советы в духе "Пишите код так, как будто его будет читать председатель жюри IOCCC и он знает, где вы живёте (чтоб приехать и вручить вам приз)".
Если сразу не понятно почему "совет" вреден, то там есть соответствующий разбор.
Готов подискутировать про написанное. Ну и приглашаю накидывать в комментариях аналогичные советы.
P.S. Предупреждаю: там много букв. Сразу запасайтесь кофе/энергетиком. Или попкорном :)
Andrey_Karpov,
15 Июня 2023