Из архивов Linux16.net: Поэтическое программирование

(Опубликовано летом 2007 года пользователем Mabel ныне aka Yababay)

На bash.org.ru нашел стихотворенье, написанное на языке С:

<он> я хочу прочитать тебе стихи!
<он> кхм, волнуюсь))
<она> внимательно слушаю ;)
<он> #include <std_pushken.h>
<он> Йа.помню(чудноеМгновенье);
<он> Передо мной ты.bringToFront();
<он> Как { виденье.show(); Sleep(10); виденье.hide(); }
<он> (ГенийЧистойКрасоты)ты;
<он> =)
<она> мда...


Улыбнуло нипадецки)). И ведь всё правильно: и include, и вызов методов с передачей аргументов, и приведение типа. Весь обеденный перерыв идея написать что-то подобное вертелась в голове. До такой степени, что не мог приступить к своим основным профессиональным обязанностям. В конце концов решил потратить полчаса на то, чтобы запрограммировать стихотворенье М.Ю. Лермонтова «Бородино» на языке Java (благо пишу быстро). Вот что получилось:
/** © 2007, Mabel */

package delu.vremya.rabote.xyz;

import klasseghule.lermontov.*;

class Moskau{

  public static final int FRANTSUZU = 1;
  public static final int NEMTSU = 2;
  public static final int AMERIKOSU = 3;
  public static final int CHUKCHE = 4;

  public static final int SPALENNAYA_POJIAROM = 1;
  public static final int UTONUVSHAYA_V_OKEANE = 2;
  public static final int ULETEVSHAYA_V_KOSMOS = 3;
  public static final int PROVALIVSHAYASYA_POD_ZEMLYU = 4;
  public static final int PROYOBANNAYA_PRAVITELSTVOM = 5;

  private int komuOtdata;
  private int chtoSluchilos;
  boolean darom;

  public Moskau(int chtosl, int komu){
    chtoSluchilos = chtosl;
    komuOtdata = komu;
  }

  public int komuTakiOtdata(){return komuOtdata;}
  public int chtoTakiSluchilos(){return chtoSluchilos;}
}

public class Dedushko { // aka "Дядя"

  public Moskau ask(Moskau mosk){
    if(mosk.komuTakiOtdata() == 1 && mosk.chtoTakiSluchilos() == 1){
      mosk.darom = false;
      String[] stih = klasseghule.lermontov.Borodino.getText();
      boolean b = false;
      for(int i = 0; i < stih.length; i++){
        b = stih[i].startsWith("Да, были люди в наше время");
        if(b)System.out.println(stih[i]);
      }
      return mosk;
    }
    else{
      System.out.println("Внучег! Учи матчасть!");
      return null;
    }
  }

  public static void main(String[] args){

    // А теперь внимание! Строки, ради которой весь этот огород нагорожен, то есть
    // "Скажи-ка, дядя, ведь не даром
    // Москва, спаленная пожаром,
    // Французу отдана":

    Moskau mosk = new Dedushko().ask(new Moskau(Moskau.SPALENNAYA_POJIAROM, Moskau.FRANTSUZU));
    if(mosk == null) return; // Исключение на случай если спрашивающий 
                             // не знает курс истории за 5 класс (см. метод ask класса Dedushko)
    else if(!mosk.darom) 
        System.out.println("Довайте паблагодарим дедужко за интерестный садержательный росказ!");
    else trow new MarazmException("Дедужко! Выпей йаду"); // Исключение на случай если дядя впал в маразм
  }
}


Кстати, не поленился пропустить через компилятор и исправить пару опечаток (закомментировав, естественно, импорт несуществующего пакета). Не воспринимайте всерьез и не судите строго. Может кому эта шуточная программа и пригодится для тренеровки извилин.
  • +2
  • 09 января 2010, 13:32
  • yababay

Комментарии (1)

RSS свернуть / развернуть
+
0
ТОСТ — он же КЛАСС:
Да здравствует все то…
Благодаря чему…
Мы ни смотря ни на что…
avatar

Markony

  • 09 января 2010, 19:19

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.