1

Тема: Кодофлуд, або флудокод

На цьому програмерському форумі мені завжди не вистачало теми, де можна було б показувати свій код. Незалежно від того, що він робить, наскільки грамотно він написаний, чи задавали його зробити на лабах і т.д. Коротше, щось назразок такого:

# fntools.py
def overload(f):
    def decor(f1):
        def call(*args, **kwargs):
            try:
                return f(*args, **kwargs)
            except TypeError:
                return f1(*args, **kwargs)
        call.__doc__=f.__doc__
        return call
    return decor
        
@overload(overload)
def overload(f1, f2):
    return overload(f1)(f2)
        
@overload(overload)    
def overload(f1, f2, *fs):
    return overload(overload(f1, f2), *fs)
#ukr_time.py
from fntools import overload
import re

def xvylyny(xv, vidm='н'):
    if xv==0: return ''
    if xv==15:return 'чверть'
    if xv==30:return 'пів'
    if 11<=xv<=19:
        return['оди', 'два', 'три', 'чотир', "п'ят", 'шіст', 'сім', 'вісім', "дев'ят"][xv-11]+"надцять хвилин"
    if vidm=='з':
        if xv==1: return 'хвилину'
        if xv%10==1:return(['', 'десять ', 'двадцять ', 'тридцять ', 'сорок ', "п'ятдесят "][xv//10]+ 'одну хвилину')
    return (['', 'десять ', 'двадцять ', 'тридцять ', 'сорок ', "п'ятдесят "][xv//10]+
        ['хвилин', 'одна хвилина', 'дві хвилини', 'три хвилини', 'чотири хвилини', 
        "п'ять хвилин", "шість хвилин", 'сім хвилин', 'вісім хвилин', "дев'ять хвилин"][xv%10]) 
    
def hodyny(h, vidm='н'):
    flex={'н':'ая', 'р':('ої', 'ьої'), 'д':('ій', 'ій'),  
          'з':'ую', 'о':('ою', 'ьою'), 'м':('ій', 'ій')}[vidm]
    return ([
            'дванадцят', 'перш', 'друг',  'трет',   'четверт',"п'ят", 
            'шост',      'сьом', 'восьм', "дев'ят", 'десят',  'одинадцят'][h%12]
        +flex[0 if h%12!=3 else 1])
def chas(h):
    h%=24
    return ('ночі'  if h<4
       else 'ранку' if h<12
       else 'дня'   if h<16
       else 'вечора')

def hxv_ukr(h, xv):
    return (hodyny(h)+' '+chas(h)                          
                                    if xv==0
      else  xvylyny(xv)+' на '+hodyny(h+1, 'з')+' '+chas(h+1)  
                                    if 1<=xv<=30
      else 'за '+xvylyny(60-xv, 'з')+' '+hodyny(h+1)+' '+chas(h+1))

@overload(hxv_ukr)
def hxv_ukr(s):
    h, xv=map(int, re.findall(r"(\d+):(\d+)",s)[0])
    return hxv_ukr(h, xv)

def md_ukr(m, d):
    m = ("січня лютого березня квітня травня червня"
        " липня серпня вересня жовтня листопада грудня".split()[m-1])
    if 11<=d<=19:
        return['оди', 'два', 'три', 'чотир', "п'ят", 'шіст', 'сім', 'вісім', "дев'ят"][d-11]+"надцяте "+m
    if d%10 == 0:
        return ['', 'десяте ', 'двадцяте ', 'тридцяте '][d//10]+m
    return ['', '', 'двадцять ', 'тридцять '][d//10]+['', 'перше ', 'друге ', 'третє ',    
            'четверте ', "п'яте ", 'шосте ', 'сьоме ', 'восьме ', "дев'яте "][d%10]+m
    

def mdhxv_ukr(m, d, h, xv):
    return md_ukr(m, d)+', '+hxv_ukr(h, xv)

@overload(mdhxv_ukr)
def mdhxv_ukr(s):
    d, m, h, xv=map(int, re.findall(r"(\d+)\.(\d+) (\d+):(\d+)",s)[0])
    return mdhxv_ukr(m, d, h, xv)
    
if __name__=='__main__':
    import sys
    for s in sys.stdin:
        print(hxv_ukr(s))
Подякували: /KIT\1

2

Re: Кодофлуд, або флудокод

#!/bin/bash

scrot /tmp/screen.png
convert /tmp/screen.png -scale 10% -scale 1000% /tmp/screen.png

HOME="/home/fakinyan"

if [[ -f $HOME/.config/screen-lock.png ]]
then
    # placement x/y
    PX=0
    PY=0
    # lockscreen image info
    R=$(file ~/.config/screen-lock.png | grep -o '[0-9]*x[0-9]*' | tail -1)
    RX=$(echo $R | cut -d 'x' -f 1)
    RY=$(echo $R | cut -d 'x' -f 2)

    SR=$(xrandr --query | grep ' connected' | cut -f4 -d' ')
    for RES in $SR
    do
        # monitor position/offset
        SRX=$(echo $RES | cut -d'x' -f 1)                   # x pos
        SRY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 1)  # y pos
        SROX=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 2) # x offset
        SROY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 3) # y offset
    

        PX=$(($SROX + $SRX/2 - $RX/2))
        PY=20
        convert /tmp/screen.png $HOME/.config/screen-lock.png -geometry +$PX+$PY -composite -matte  /tmp/screen.png
        echo "done"
    done
fi
i3lock -e -n -i /tmp/screen.png
Подякували: P.Y.1

3

Re: Кодофлуд, або флудокод

А я вже й забув як воно, кодити.

4

Re: Кодофлуд, або флудокод

Переносимо шкілıні і студентсıкі ґити сıуди? Бгг.

Класика
program alr_lab5;
uses crt;
const m = 500;
type mass = array [1..m] of integer;
var    a, p :            mass;
    n, i, step, k, Min, Max, mx :    integer;
    {controle :        boolean;}

{ Work opration }

procedure ReWrite (var a : mass; var p : mass);
    begin
        for k := 1 to n do begin
            p[k] := a[k];
        end;
    end;

procedure Output (var a : mass; var p : mass);
    begin
    if step <> 0 then write (step:4,' -> ');
        for k := 1 to n do begin
            if step <> 0 then write (p[k]:4)
            else write (a[k]:4);
        end;
        writeln;
    end;

procedure By_console (var a : mass);
    begin
        writeln;
        writeln ('Array:');
        writeln (' #  / Value');
        for i := 1 to n do begin
            write ('#', i:3,':   ');
            read (a[i]);
        end;
        writeln;
    end;

procedure By_random (var a : mass);
    begin
        writeln;
        Randomize;
        writeln ('Array:');
        for i := 1 to n do begin
            a[i] := random(40)-20;
        end;
        Output(a,p);
        writeln;
    end;

{ Sorts }

Procedure StraightInsertion;
    var j, c :    integer;
    begin
        writeln (' --> StraightInsertion <-- ');
        writeln ('St. # / Deformation of array');
        ReWrite (a,p);
        for i := 2 to n do
            begin
            c:=p[i];
            j:=i-1;
            while (j >= 1) and (p[j] > c) do begin
                p[j+1] := p[j];
                j:=j-1;
            end;
            p[j+1]:=c;
            inc(step);
            Output(a,p);
        end;
        writeln;
    end;

Procedure StraightSelection;
    var j, u, v :    integer;
    begin
        writeln (' --> StraightSelection <-- ');
        writeln ('St. # / Deformation of array');
        ReWrite (a,p);
        for i:=1 to N-1 do begin
        v := i;
        for j:=i+1 to N do
        if p[v] > p[j] then v:=j;
        u:=p[i];
        p[i]:=p[v];
        p[v]:=u;
        inc(step);
        Output(a,p);
    end;
        writeln;
    end; 

procedure BubbleSort;
    var    c :        integer;
        f :        boolean;
    begin
        writeln (' --> BubbleSort <-- ');
        writeln ('St. # / Deformation of array');
        ReWrite (a,p);
        repeat
            f := false;
            for i := 1 to n-1 do begin
                if p[i] > p[i+1] then begin
                    f := true;
                    c := p[i];
                    p[i] := p[i+1];
                    p[i+1] := c;
                end;
                inc(step);
                Output(a,p);
            end;
        until not f;
        writeln;
    end;

Procedure ShakerSort;
    Var j, l :    integer;
    Begin
        writeln (' --> ShakerSort <-- ');
        writeln ('St. # / Deformation of array');
        ReWrite (a,p);
        for i := 1 to n div 2 do begin
            if p[i]>p[i+1] then begin
                Min := i+1;
                Max := i;
            end
            else begin
                Min := i;
                Max := i+1;
            end;
            for j := i+2 to n-i+1 do
            if p[j] > p[Max] then Max := j
            else
                if p[j] < p[Min] then Min := j;
            l := p [i];
            p[i] :=p [min];
            p[min] := l;
            inc(step);
            Output(a,p);
            if max = i then max := min;
            l:=p[N-i+1];
            p[N-i+1] := p[max];
            p[max] := l;
            inc(step);
            Output(a,p);
        end;
        writeln;
    end;

Procedure ShellSort;
    Var d, t : integer;
        f : boolean;
    begin
        writeln (' --> ShellSort <-- ');
        writeln ('St. # / Deformation of array');
        ReWrite (a,p);
        d:=N div 2;
        while d > 0 do begin
            f:=true;
            while f do begin
                f := false;
                i := 1;
                for i := 1 to n-d do begin
                    if p[i] > p[i+d] then begin
                        t := p[i];
                        p[i] := p[i+d];
                        p[i+d] := t;
                        f := true;
                    end;
                    inc(step);
                    Output(a,p);
                end;
            end;
            d:= d div 2;
        end;
        writeln;
    end;

{procedure QuickSort(low, high: integer);
var i, j: integer;
    m, wsp: integer;
begin
    ReWrite (a,p);
  i:=low;
  j:=high;
  m:=p[(i+j) div 2];
  repeat
    while p[i+1]<m do Inc(i); 
    while p[j]>m do Dec(j); 
    if i<=j then begin
      wsp:=p[i+1];
      p[i+1]:=p[j];
      p[j]:=wsp;
      Inc(i);
      Dec(j);
    end;
  until i>j;
  if low<j then QuickSort(low, j);
  if i<high then QuickSort(i, high);
end;}

{ Menu }

procedure Startbox (var n : integer);
    var  s :    byte;
    begin
        step := 0;
        writeln ('Which a way to create an array?');
        writeln (' 1 - by console');
        writeln (' 2 - by random');
        write ('Enter your choise: ');
        readln(s);
        writeln;
        write ('How many items do you want (no more ',mx,')? Enter number: ');
        readln (n);
        writeln;
        case s of
            1:    By_console(a);
            2:    By_random(a);
        end;
    end;

procedure Sortbox;
    var  s :    byte;
    begin
        step := 0;
        writeln ('Which type of sorts run?');
        writeln (' 1 - Straight Insertion');
        writeln (' 2 - Straight Selection');
        writeln (' 3 - ',#39,'Bubble',#39,' sort ');
        writeln (' 4 - Shaker-sort');
        writeln (' 5 - Sell',#39,'s sort');
    {    writeln (' 6 - Quick sort');}
        writeln ('Or select another activity?');
        writeln (' 7 - Rewrite array');
        writeln ('(without without changing the number of items)');
        writeln (' 8 - by console');
        writeln (' 9 - by random');
        writeln (' 0 - Exit');
        write ('Enter your action: ');
        readln(s);
        writeln;
        case s of
            1:    StraightInsertion;
            2:    StraightSelection;
            3:    BubbleSort;
            4:    ShakerSort;
            5:    ShellSort;
            {6:    begin 
                                writeln (' --> QuickSort <-- ');
                                writeln ('Deformation of array');
                                QuickSort(0,n);
                                step := 1;
                                Output (a,p);
                                writeln;
                            end;}
            7:    Startbox(n);
            8:    By_console(a);
            9:    By_random(a);
        end;
        if s <> 0 then Sortbox;
    end;    

{ Main }

BEGIN
    clrscr;
    mx := n;
    writeln ('We will ask a few questions for the execution of the great mission of!');
    writeln;
    Startbox (n);
    Sortbox;
END.
Подякували: P.Y.1

5

Re: Кодофлуд, або флудокод

#!cmd /k py -3

def exinsort(l):
    'exclude-insert sort'
    excluded=[]
    # виключити пари, що йдуть не по порядку:
    i=0
    while 0<=i<=len(l)-2:
        if l[i]>l[i+1]:
            for _ in '12':
                excluded.append(l[i]);del l[i]
            if i>0: i-=1
        else:
            i+=1
    # вставити їх прямою вставкою:
    for item in excluded:
        i=0
        while i<len(l):
            if l[i]>=item: break
            i+=1
        l.insert(i, item)

    
if __name__=='__main__':
    for l in list('asdfqwertyuiopghxcvbnmjklzHelloWorld'),[1,3,2], [2,1,0], [1,2,2,0,0,1]:
        exinsort(l)
        print(l)

(Хтось знає, в цього алгоритму сортування є загальноприйнята назва?)

6

Re: Кодофлуд, або флудокод

Це сортування включенням із купою зайвих рухів.

7

Re: Кодофлуд, або флудокод

P.Y. написав:

На цьому програмерському форумі мені завжди не вистачало теми, де можна було б показувати свій код. Незалежно від того, що він робить, ...

Здається на ґітхабі Gist був створений для тих самих цілей.

8

Re: Кодофлуд, або флудокод

Ну і хто читатиме, що я там загістив? Хочу лякати своїм кодом живих людей...

Подякували: 221VOLT, plusxx2

9

Re: Кодофлуд, або флудокод

koala написав:

Це сортування включенням із купою зайвих рухів.

Наскільки я розумію, сортування включенням — це коли я, щоб упорядкувати книжки на полиці, згрібаю їх кудись і потім беру одну за одною й ставлю на своє місце. А тут я намагаюсь вийняти лише ті книжки, що йдуть не по порядку, після чого вставляю вийняті в потрібне місце. Тобто, варіант сортування включенням, оптимізований для вцілому впорядкованого списку, в який було внесено невеликі зміни, що цей порядок порушують.

10

Re: Кодофлуд, або флудокод

P.Y. написав:

Ну і хто читатиме, що я там загістив? Хочу лякати своїм кодом живих людей...

Я читатиму. Але зараз там пусто.
Ось вам список користувачів, які мають там якісь фрагменти :

Подякували: Arete, P.Y., ostap34PHP, 221VOLT4

11 Востаннє редагувалося koala (30.05.2019 19:47:40)

Re: Кодофлуд, або флудокод

Можете згрібати, але краще одразу використовувати місце на початку списку.
Ну і я теж своє давнє викладу. 8-й клас, GWBASIC та MultiEdit...

CHSVET.BAS
10 CLS
19 COLOR 15
20 INPUT "1-ПІРАМІДИ,2-МАЯК,3-ВИСЯЧі САДИ,4-МАВЗОЛЕЙ,5-ХРАМ АРТЕМІДИ,6-КОЛОС,7-ЗЕВС,    8-ВИХІД,9-КІНЕЦЬ ПРОГРАМИ В *GWBASIC*"; A

21 IF A=8 THEN GOTO 40
23 IF A=1 THEN GOTO 60
24 IF A=2 THEN GOTO 170
25 IF A=3 THEN GOTO 300
26 IF A=4 THEN GOTO 400
27 IF A=5 THEN GOTO 500
28 IF A=6 THEN GOTO 700
29 IF A=7 THEN GOTO 910
30 IF A=9 THEN key on : END
33 PRINT "ПРОШУ БЕЗ ЖАРТІВ"
35 GOTO 20
40 GOTO 1180

60 CLS
67 color 6
70  print
80  print
90  print
100 print
101 PRINT "                                    ┌┐                 "
102 print "                                   ┌┴┼┐         ┌┐     "
104 print "                                  ┌┘ └┼┐       ┌┼┴┐    "
106 print "                                 ┌┘   └┼┐     ┌┼┘ └┐   "
108 print "                                ┌┘     └┼┐   ┌┼┘╔╗ └┐  "
110 print "                               ┌┘       └┼┐  └┴─╨╨──┘  "
112 print "                              ┌┘   ╔═╗   └┼┐           "
114 print "                             ┌┘    ║ ║    └┼┐          "
116 print "                             └─────╨─╨─────┴┘          " : COLOR 15
150 goto 20

170 color 8
180 CLS
190 PRINT "                                  ╔╗          "
195 color 30
200 print "                                 ╔╬╬╗         "
204 print "                                 ║║║║         "
206 print "                                ╔╩╩╩╩╗        "
207 color 8
208 print "                                ║    ║        "
210 print "                              │ ║    ║ │      "
212 print "                              ╠═╩════╩═╣      "
214 print "                              ║        ║      "
216 print "                              ║        ║      "
218 print "                              ║        ║      "
220 print "                          ╔═╗ ║        ║ ╔═╗  "
222 print "                          ╠═╬═╩════════╩═╬═╣  "
224 print "                          ╚═╩════════════╩═╝  " : COLOR 15
250 GOTO 20

300 CLS
302 COLOR 7 : PRINT "                               /\/\/\/\/\/\/\              "
304 pRINT "                               ╔═══════════╗               "
306 pRINT "                               ╚╦╦═══════╦╦╝               "
308 pRINT "                                ║║       ║║                "
310 pRINT "                                ║║       ║║                " : COLOR 10
312 pRINT "                   ╒═════┌┐═════╩╬═══════╬╩═════┌┐══════╕  "
314 pRINT "                   │    ┌┘└┐     ╠═══════╣     ┌┘└┐     │  "
316 pRINT "                   │   ┌┘  └┐    ╠═══════╣    ┌┘  └┐    │  "
318 pRINT "                   ╞═══└┐  ┌┘════╩═══════╩════└┐  ┌┘════╡  "
320 pRINT "                   ╞════╧══╧═════╦═══════╦═════╧══╧═════╡  "
322 pRINT "                   │             ╠═══════╣              │  "
324 pRINT "                   │             ╠═══════╣              │  "
326 pRINT "                   ╞═════┌┐══════╩═══════╩══════┌┐══════╡  "
328 pRINT "                   ╞════┬┘└┐═════╦═══════╦═════┬┘└┬═════╡  "
330 pRINT "                   │   ┌┘  └┐    ╠═══════╣    ┌┘  └┐    │  "
332 pRINT "                   │   └┐  ┌┘    ╠═══════╣    └┐  ┌┘    │  "
334 pRINT "                   └────┴──┴─────╨───────╨─────┴──┴─────┘  " : COLOR 15

360 GOTO 20

400 CLS
402 COLOR 15 : PRINT "                                  ╔╦╗                "
404 PRINT "                               ╔══╩╩╩══╗             "
405 PRINT "                            ╔══╣       ╠══╗          "
406 PRINT "                           ╔╩╦═╬═╦═╦═╦═╬═╦╩╗         "
407 PRINT "                           ║ ║ ║ ║ ║ ║ ║ ║ ║         "
408 PRINT "                          ╔╩═╩═╩═╩═╩═╩═╩═╩═╩╗        "
409 PRINT "                          ║                 ║        "
410 PRINT "                          ║                 ║        "
411 PRINT "                    ╔╩╩╗  ║    ┌┐ ╔═╗  ┌┐   ║  ╔╩╩╗  "
412 PRINT "                    ╚══╝  ╚════╩╩═╩═╩══╩╩═══╝  ╚══╝  "
440 GOTO 20

500 CLS
505 COLOR 14 : PRINT "                                     ╔═╗                        "
510 PRINT "                                ┌────╨─╨────┐                   "
520 PRINT "                            ┌───┘╔═╦═╦═╦═╦═╗└───┐               "
530 PRINT "                      ┌─────┘╔═══╩═╩═╩═╩═╩═╩═══╗└──────┐        "
540 PRINT "                  ┌─╥╥┴─╥╥──╥╫──╥╥──╥╥──╥╥──╥╥─╨╥╥──╥╥─┴╥╥─┐    "
550 PRINT "                  │ ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║ │    "
560 PRINT "                  │ ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║ │    "
570 PRINT "                  │ ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║ │    "
580 PRINT "                  │ ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║  ║║ │    "
590 PRINT "                 ┌┴─╨╨──╨╨──╨╨──╨╨──╨╨──╨╨──╨╨──╨╨──╨╨──╨╨─┴┐   "
600 PRINT "                ┌┴──╔══╗──────────────────────────────╔══╗──┴┐  "
610 PRINT "               ┌┴─╔═╩══╩═╗──────────────────────────╔═╩══╩═╗─┴┐ "
620 PRINT "               └──╨──────╨──────────────────────────╨──────╨──┘ " : COLOR 15

670 GOTO 20

700 CLS
701 color 20 : PRINT "                             /\                           "
702 PRINT "                           ═╪╤╤╪═                         " : COLOR 7
703 PRINT "                            └┤├┘┌/\/\┐                    "
705 PRINT "                             ││┌┘    └┐                   "
710 PRINT "                             ││└┐    ┌┘                   "
720 PRINT "                             ││ └┐  ┌┘                    "
730 PRINT "                             │└──┘  └──┐                  "
740 PRINT "                             └─┐     ┌┐│                  "
750 PRINT "                               │     │││                  "
760 PRINT "                               └┐   ┌┘││                  "
770 PRINT "                                │   │ ││                  "
780 PRINT "                                │   │┌┤├┐                 "
790 PRINT "                               ┌┘   └┼┴┴┘                 "
800 PRINT "                               │┌───┐│                    "
810 PRINT "                               ││   ││                    "
820 PRINT "                               ││   ││                    "
830 PRINT "                               ││   ││                    "
840 PRINT "                               ││   ││                    "
850 PRINT "                              ┌┘└┐ ┌┘└┐                   "
860 PRINT "                              └──┘ └──┘                   " : COLOR 15
900 GOTO 20

910  cls
915  color 12
920  PRINT "                   ╔╗         ┌─────┐        ╬╬╬  ╔╗ "
930  PRINT "                   ║╠════════┌┘┌───┐└┐═══════ ║ ══╣║ "
940  PRINT "                   ║║        │ │─│─│ │        ║   ║║ "
950  PRINT "                   ╠╣        └─┼───┴┬┘        ║   ╠╣ "
960  PRINT "                   ║║   ┌──────┘    ├───┬─┐ ┌─╫─┐ ║║ "
970  PRINT "                   ╠╣  ┌┘           │   │ └┐└┐║┌┘ ╠╣ "
980  PRINT "                   ║║  │  ┌┐        │   ├┐ │ │║│  ║║ "
990  PRINT "                   ╠╣  │  ││╚╦╦╝    └┐  ││ │ │║│  ╠╣ "
1000 PRINT "                   ║║ ┌┘  └┴─╨╨─┐    └┬─┤│ └─┘║│  ║║ "
1010 PRINT "                   ╠╣ └────┬────┘   ┌─┘ │└────╫┘  ╠╣ " : color 14
1020 PRINT "                   ║║    ┌─┴─┴──────┘   └───┐ ║   ║║ "
1030 PRINT "                   ╠╣    │                  │ ║   ╠╣ "
1040 PRINT "                   ║╠════│                  │═╬═══╣║ "
1050 PRINT "                   ╠╣    │                  │ ║   ╠╣ "
1060 PRINT "                   ║║    └────┬─┬─────┬─┬───┘ ║   ║║ "  : color 12
1070 PRINT "                   ╠╣        ┌┘ └┐   ┌┘ └┐    ║   ╠╣ "
1080 PRINT "                   ║║    ╔═══╧═══╧═══╧═══╧════╣   ║║ "
1090 PRINT "               ╔═══╩╩════╝                    ╚═══╩╩════╗ "
1130 PRINT "               ╚════════════════════════════════════════╝ " : color 15
1170 GOTO 20
1180 cls
1190 color 12
1200 PRINT "                   ╔╗         ┌─────┐        ╬╬╬  ╔╗ "
1210 PRINT "                   ║╠════════┌┘┌───┐└┐═══════ ║ ══╣║ "
1220 PRINT "                   ║║        │ │─│─│ │        ║   ║║ "
1230 PRINT "                   ╠╣        └─┼───┴┬┘        ║   ╠╣ "
1240 PRINT "                   ║║   ┌──────┘    ├───┬─┐ ┌─╫─┐ ║║ "
1250 PRINT "                   ╠╣  ┌┘           │   │ └┐└┐║┌┘ ╠╣ "
1260 PRINT "                   ║║  │  ┌┐        │   ├┐ │ │║│  ║║ "
1270 PRINT "                   ╠╣  │  ││╚╦╦╝    └┐  ││ │ │║│  ╠╣ "
1280 PRINT "                   ║║ ┌┘  └┴─╨╨─┐    └┬─┤│ └─┘║│  ║║ "
1290 PRINT "                   ╠╣ └────┬────┘   ┌─┘ │└────╫┘  ╠╣ " : color 14
1300 PRINT "                   ║║    ┌─┴─┴──────┘   └───┐ ║   ║║ "
1310 PRINT "                   ╠╣    │                  │ ║   ╠╣ "
1320 PRINT "                   ║╠════│                  │═╬═══╣║ "
1330 PRINT "                   ╠╣    │                  │ ║   ╠╣ "
1340 PRINT "                   ║║    └────┬─┬─────┬─┬───┘ ║   ║║ "  : color 12
1350 PRINT "                   ╠╣        ┌┘ └┐   ┌┘ └┐    ║   ╠╣ "
1360 PRINT "                   ║║    ╔═══╧═══╧═══╧═══╧════╣   ║║ "
1370 PRINT "               ╔═══╩╩════╝                    ╚═══╩╩════╗ "
1380 PRINT "               ╚════════════════════════════════════════╝ " : coloR 15
1385 PRINT "                               ДЯКУЮ ЗА ПЕРЕГЛЯД"
1390 SYSTEM
Подякували: Arete, P.Y., ostap34PHP3

12

Re: Кодофлуд, або флудокод

Програма поліглот.
Підтримуються такі мови:

#include<iostream>//;ooo"><>"v!
#define chr(x)main(){std::/*>$*/cout<<"C++";}/*
print(None and"Perl"or(1/2and"Python 3"or"Python 2"));
#++[++++>---<]>-.---[----->+<3]>-.+++
#[->+++<]>++.++++++++.+++++.-9-------
#.-[--->+<]>--.+[->+++<]>+.++"++++++.
#       @,,,,,,,,,,"Befunge-"<*/
chr(1)
Подякували: P.Y., koala, ostap34PHP, 0xDADA11C7, plusxx, leofun016

13

Re: Кодофлуд, або флудокод

LOAD "CHSVET"
REM Спробую оптимізувати :)
DEL 21-29
DEL 40
DEL 1170-1380
21 ON A GOTO 60, 170, 300, 400, 500, 700, 910, 910
1170 IF A=7 THEN GOTO 20
Подякували: koala1

14

Re: Кодофлуд, або флудокод

P.Y. написав:

варіант сортування включенням, оптимізований для вцілому впорядкованого списку, в який було внесено невеликі зміни, що цей порядок порушують.

Трохи оптимізував методику виключення. Якщо в початковому варіанті до виключених потрапляли обидва сусідні елементи, для яких умова впорядкування порушувалась, то в наступних версіях виключається лише один з них (треба просто вгадати, який з них не на своєму місці — можна вибрати просто випадково 50:50, або ж, краще, поставити цей вибір у залежність від того, в якому місці списку відбувається перевірка: якщо на початку, ймовірніше, зайвим є більший елемент, то вкінці — менший).

Ну і для демонстрації переваг алгоритму краще взяти якийсь напівупорядкований список.

from random import randint

def exinsort(l):
    'exclude-insert sort'
    excluded=[]
    # позбутися пар, що йдуть не по порядку
    # (випадково виключати одного з пари)
    i=0
    while 0<=i<=len(l)-2:
        if l[i]>l[i+1]:
            #for _ in '12':
            if i>=randint(0,len(l)): i+=1
            excluded.append(l[i]); del l[i]
            if i>0: i-=1
        else:
            i+=1
    print(l, '(without excluded)')
    # вставити їх прямою вставкою:
    for item in excluded:
        i=0
        while i<len(l):
            if l[i]>=item: break
            i+=1
        l.insert(i, item)

if __name__=='__main__':
    for l in list('asdfqwertyuiopghxcvbnmjklzHelloWorld'), list('abvhgdegzyijklmnoprstufxcqw'):
        exinsort(l)
        print(l)

Як би ще його оптимізувати?

Подякували: leofun011

15 Востаннє редагувалося P.Y. (31.05.2019 02:51:26)

Re: Кодофлуд, або флудокод

a$="
goto 100
120
bye:
a$="
print "YABASIC"
end
100 rem
200 print "QBASIC"
end
110 print "ChipmunkBASIC"

Поліглот-детектор для трьох діалектів BASIC'а.

P.S. Альтернативний варіант:

a$="
120 data QBASIC
bye:
110 data ChipmunkBASIC
a$="
data "YABASIC"
read a$
print a$
Подякували: /KIT\1

16

Re: Кодофлуд, або флудокод

#!python2
# -*- coding: utf-8 -*-

# розділити t на діапазони, так щоб кожне наступне значення (ОКРУГЛЕНЕ) g(t) чи h(t) відрізнялось від попереднього на 1:
def iround(x):
    return int(round(x))
def ranges(g, h, tmin, tmax):
    t=(tmin+tmax)/2.
    if not tmin<t<tmax>tmin or iround(g(tmin))==iround(g(t))==iround(g(tmax)) and iround(h(tmin))==iround(h(t))==iround(h(tmax)):
        return []
    elif iround(g(tmin))==iround(g(t)) and iround(h(tmin))==iround(h(t)): 
        return ranges(g, h, t, tmax)
    #якщо координати t стоять на 1 клітинку гор/верт/діаг від tmin: 
    elif abs(iround(g(tmin))-iround(g(t)))<=1 and abs(iround(h(tmin))-iround(h(t)))<=1:
        return [tmin]+ranges(g, h, t, tmax)
    else:
        return ranges(g, h, tmin, t)+ranges(g, h, t, tmax)
def points(g, h, tmin, tmax):
    return [[iround(g(t)),iround(h(t))]for t in ranges(g, h, tmin, tmax)]

# підготувати таблицю символів заміщення (в залежності від того, де знаходяться попередня й наступна точка відносно поточної)
line_shapes=[['*' for i in range(9)]for i in range(9)]
for pnf in[
   [1,1, '`'],[2,2, "'"],[3,3,"'"],[4,4,'-'],[5,5, '.'],[6,6, '.'],[7,7,','],[8,8, '-'],
   [1,2, '`'],[2,3, "'"],[3,4,"'"],[4,5,'-'],[5,6, ','],[6,7, ','],[7,8,'-'],[8,1, '`'],
   [1,3, '~'],[2,4, '+'],[3,5,'('],[4,6,'+'],[5,7, '_'],[6,8, '+'],[7,1,')'],[8,2, '+'],
   [1,4, '`'],[2,5,'\\'],[3,6,"/"],[4,7,"_"],[5,8, '_'],[6,1,'\\'],[7,2,'/'],[8,3, "'"],
   [1,5,'\\'],[2,6, '|'],[3,7,'/'],[4,8,'-']
   ]:
    line_shapes[pnf[0]][pnf[1]]=line_shapes[pnf[1]][pnf[0]]=pnf[2]
fill_shapes=[['*' for i in range(9)]for i in range(9)]
#заповнювати праворуч від лінії (контур іде за год.стр.):
for p in[1,2,3,4]:
    for n in[7,6,5,4]:
        fill_shapes[p][n]=']'
for p in[5,6,7,8]:
    for n in[3,2,1,8]:
        fill_shapes[p][n]='['
fill_shapes[4][4]=fill_shapes[8][8]='*'
    

def directions(xy):
 return[1, 2, 3, 0,
         8, 0, 4, 0,
         7, 6, 5, 0][(xy[1]+1<<2)+xy[0]+1]
def shapepoints(pointlist, shapeset):
    def shape(i):
        #shape бере три елементи, починаючи з i, й повертає символ:
        prev_next=[directions([pointlist[ii][j]-pointlist[i+1][j] for j in[0,1]])for ii in [i, i+2]]
        return shapeset[prev_next[0]][prev_next[1]]
    res=[]
    for i in range(len(pointlist)-2):
        res+=[pointlist[i+1]+[shape(i)]]
    res=[pointlist[0]]+res+[pointlist[-1]]#також включити 1-й і останній ел-т....
    return res

#заливка: провести лінію з [ та ], в залежності від напрямку; заповнити проміжок між дужками........

# для кожної точки між діапазонами: вставити символ заміщення в матрицю виводу:
def points2matrix(pointlist, x, y):
    x=iround(x)
    y=iround(y)
    matr=[[' ' for i in range(x+1)] for i in range(y+1)]
    for point in pointlist:
        if 0<=point[0]<=x and 0<=point[1]<=y:
            matr[point[1]][point[0]]='*' if len(point)<3 else point[2]#або point[2], якщо є...
    return '\n'.join(map(''.join, matr))
if __name__=='__main__':
    from math import *
    R=19
    def g(t):
            return cos(t)*R+R
    def h(t):
            return sin(t*3.1)*R+R
    tmin= -pi
    tmax=  pi
    print (points2matrix(shapepoints(points(g,h,tmin,tmax), line_shapes),2*R,2*R))
    raw_input()

17 Востаннє редагувалося P.Y. (04.06.2019 01:22:34)

Re: Кодофлуд, або флудокод

Жорстока BASIC-екзекуція. Проте, як не дивно, chipmunkBASIC цей код тягне (у більшості діалектів він, очевидно, буде невалідним).

10 goto 50
20 print i
30 next
40 end
50 for i = 1 to 5
60 print i
70 goto 20

18 Востаннє редагувалося /KIT\ (01.01.2022 14:28:39)

Re: Кодофлуд, або флудокод

Чому? Це ж просто поліморфний код.

19

Re: Кодофлуд, або флудокод

/KIT\ написав:

>у більшості діалектів він, очевидно, буде невалідним
Чому? Це ж просто поліморфний код.

Обфускований. Поліморфний має поліморфувати, тобто змінювати себе, часто задля обфускації.
Ну і треба дивитися. Мені теж здається, що більшість байткод-компіляторів таке не прожують, хоча звичайний інтерпретатор має виконати.

20

Re: Кодофлуд, або флудокод

leofun01 написав:
P.Y. написав:

Ну і хто читатиме, що я там загістив? Хочу лякати своїм кодом живих людей...

Я читатиму. Але зараз там пусто.
Ось вам список користувачів, які мають там якісь фрагменти :

у мене приватні гісти  :D