Школоло / Говнокод #13792 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
Program KrestZero;
...

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin

  case m[arow,acol]of
     1: DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpkrest);
     0:  DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpfon);
     2:  DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpnul);
  end;


end;
function win:boolean;
var a:byte;
begin
  result:=false;
  k:=0;
  for I := 0 to 2 do
     if m[0,i]=a then k:=k+1;
  if k=3 then begin result:=true; exit; end;
    
    
end;

procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  acol,arow:integer;
begin
   DrawGrid1.MouseToCell(x,y,acol,arow);
   if (m[arow,acol]<>0) then
    ShowMessage('Нельзя!')
   else
   begin
    inc(hod);
    if hod mod 2 =1 then m[arow,acol]:=1
    else m[arow,acol]:=2;
    if win then  ShowMessage('Победа!');
    
   end;
end;

procedure TForm1.FormShow(Sender: TObject);
var i,j:byte;
begin
   bmpkrest:=TBitmap.Create;
   bmpkrest.LoadFromFile('krest.bmp');
   bmpfon:=TBitmap.Create;
   bmpfon.LoadFromFile('fon.bmp');
   bmpnul:=TBitmap.Create;
   bmpnul.LoadFromFile('nol.bmp');
   for i:=0 to 2 do
     for j:=0 to 2 do
      m[i,j]:=0;
   hod:=0;
end;

А вот так, товарищи, кодит препод в одной из шаражек в нашем родном Владикавказе.
В коде ничего не менял - выложил, как есть.
Одно только название - krestzero уже поднимает давление настроение.

Запостил: Stertor Stertor, (Updated )

Комментарии (39) RSS

  • Кто минусует, вы хоть объясняйте за что, иначе негламурно как-то( Так и хочется заплюсовать.
    Ответить
    • Здесь лабы и прочие поделки не любят.
      Давай что-то с продакшена.
      Ответить
      • ога, они унылы и неинтересны.
        К тому же большинство занимается продакшоном, а лабы - [давно] пройденный этап.
        Ответить
        • Ну так я ж тролль. И я никогда не троллю злобно. Моя цель повеселить, развлечь участников. Заебался программист на работе, зашел на минутку на форум, почитал мои опусы, настроение поднялось - опять за работу. Как то так.
          Ответить
  • Объясни лучше, за что плюсовать?
    Не надо путать предмет "Шаблоны проектирования" с основами программирования, где цель - привлечь и заинтересовать на простых примерах.
    Ответить
    • Не дури,гость.

      function win:boolean;
      var a:byte;
      begin
        result:=false;
        k:=0;
        for I := 0 to 2 do
           if m[0,i]=a then k:=k+1;
        if k=3 then begin result:=true; exit; end;

      переменные нигде не объявлены ранее, т.е не инициализированы. Автор просто поленился лишний раз проверить исходник и выложил как есть: пошли на хуй, как хотите, так и ебитесь, #define true false
      на будущее - прежде чем что-то спезднуть, подумай.
      Ответить
      • > переменные нигде не объявлены ранее, т.е не инициализированы.
        Ну и как мы должны были об этом догадаться, если там вверху "..."?
        Ответить
          • Качать архивы и копаться в залежах говна лень. Этим должен заниматься выкладывающий код на ГК, отобрав для читателей самые интересные и самодостаточные фрагменты.
            С уважением, ваш кэп.
            Ответить
              • Да, кстати. Когда я просил у совета с дельфями, я не троллил - Вы зря так думаете. Я действительно пишу прогу и скоро опубликую ее.
                На будущее: когда я собираюсь троллить участника, я прямо его об этом предупреждаю, но строго говоря, Вам это знать незачем, Вас я никогда еще не троллил.
                Ответить
      • >переменные нигде не объявлены ранее, т.е не инициализированы.
        >на будущее - прежде чем что-то спезднуть, подумай.
        Именно. Глобальные переменные инициализируются нулями сами, поля классов тоже.
        Ответить
    • Ага, зачем спидовать в одиночку, когда можно заразить побольше людей и спидовать хором.
      Видели.
      ...без друзей меня чуть-чуть, а с друзьями много!
      Ответить
    • Анкета липовая. И вообще, гость, как-то это низко с твоей стороны, тебе не кажется?
      Ответить
        • НЕ переходите по ссылке, видео не из приятных
          Два года назад видел в ргхосте.
          Так у него же на лбу нет надписи "Я кавказец". Это может быть чувак любой нации. У нас бы его уже порвали за такое.
          Ответить
          • Сажать надо таких законтаченных недолюдей. Жаль, что не при советах живем, такого попустительства бы не было.
            Ответить
            • Кто-нибудь может подсказать реализацию "корзины" на Делфи?
              Сохранять/восстанавливать нужно следующие свойства:
              имя файла, его размер и дату помещения.
              Я в принципе сделал - создается класс, который впоследствие записывается в файл с помощью tfilestream. Имя помещаемого файла - string[255], записывается так:
              stream.write(filename,sizeof(filename))
              ,
              читается так же. Но есть одно огро-о-омное "НО":
              имя файла может быть и больше 256 символов - велик риск остаться с расширенным очком, а по-другому никак не получается сохранить string. Может, кто подскажет?
              Ответить
              • > а по-другому никак не получается сохранить string
                Ну например классическим способом - запиши сначала длину строки в виде 4-байтного инта, а затем содержимое строки. Чтение аналогично.

                Как-то так (с поправкой на то, что я давно ничего не писал на пасцале):
                function writeString(stream : TFileStream; s : string);
                var len: cardinal;
                begin
                    len := length(s);
                    stream.write(len, sizeof(cardinal));
                    stream.write(pchar(s), len);
                end;
                Ответить
                • <function writeString(stream : TFileStream; s : string);
                  writeString
                  >

                  Испортила Вас сишка!! )) Сразу чувствуется матерый сишник.
                  Ответить
                    • Вот какие гоатсе постят на забугорных форумаххх:
                      procedure TStreamEx.writeString(const data: string);
                      var
                         len: cardinal;
                         oString: UTF8String;
                      begin
                         oString := UTF8String(data);
                         len := length(oString);
                         self.WriteBuffer(len, 4);
                         if len > 0 then
                            self.WriteBuffer(oString[1], len);
                      end;
                      
                      function TStreamEx.readString: string;
                      var
                         len: integer;
                         iString: UTF8String;
                      begin
                         self.readBuffer(len, 4);
                         if len > 0 then
                         begin
                            setLength(iString, len);
                            self.ReadBuffer(iString[1], len);
                            result := string(iString);
                         end;
                      end;


                      Бля, я рву волосы на очке - переписать из за такой хуетени целый класс коммунистической партии, блять.
                      Ответить
                      • Надо же. Прокатило. Тока не прямо в лоб
                        stream.write(str,length(str))

                        а через анус:
                        stream.write(str,length(str)*sizeof(char))


                        В общем, Борманду респект и уважение.
                        Ответить
                    • Вот такой говнокод получился: http://ideone.com/2Lr6JI

                      Реквестирую в тред Тараса, пусть польет меня говном из ушата за этот код.
                      Ответить
                      • Ансишная строка гробит идею. А код по-моему, ничего.

                        Вот только это не понятно:
                        for i := 0 to size-1 do
                        begin
                        if (i <> 0) and ((i mod 16) = 0) then
                        WriteLn;
                        Write(IntToHex(b[i], 2), ' ');
                        end;
                        WriteLn; // нах тут writeln? Writeln же вроде печатает строку в стандартное устройство вывода??
                        Ответить
                        • > Ансишная строка гробит идею
                          Ну ты можешь любую другую поюзать, хоть String, хоть WideString. Код не поменяется (хотя с вайдстрингом, если я не туплю, придется подомножать на размер символа).

                          > Или это консолечка, я ее маму бля ебал?!
                          Она самая, на ideone только консолечки запускаются. Как ты туда форму собрался засовывать? 🙂 Да и консольки для демонстрации такой простой фигни имхо само то: меньше отвлекающего кода.

                          P.S. HexDump чисто дебажная функция, чтобы посмотреть на то, как в стрим упаковались данные. Не обращай внимания...
                          Ответить
                          • Я из-за этой же хуетени выкинул Лажаруса - теперь понимаю, что зря; Length упорно возвращал в два раза большую длину строки. Оказывается, нужно было использовать utf8-строки и делить результат на размер 1 символа (sizeof(char))
                            Вот такой я дурашка.

                            Борманд, как ты думаешь, возможно ли на этом Лажарусе что-нибудь более-менее серьезное написать? Как работать с сетью? Кроссплатформенность не интересует. Я только под винду.
                            Ответить
                            • Лажарус это же только IDE 🙂 Вопрос равносилен "можно ли что-то написать на визуал студии?".

                              А на FPC, по идее, писать можно. Они же половину классов с делфи спиздили, да и синтаксические фишки тоже. На нем вроде как даже делфинье VCL взлетает (или его аналог, не помню).

                              Но сам я его никогда не юзал, поэтому х.з.
                              Ответить
                              • Много раз хотелось найти какую-нибудь "свою" среду разработки, освоить ее и постоянно кодить на этом языке. Бля, но сколько раз уже ошибался: то среда разработки оказывалась платной, то язык не подходящий, то приходилось трахаться с глючным компилятором.
                                Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8