July 2008

Java - Der chinesische Liebes-Algorithmus

Es ist schon erstaunlich, was man durch harmloses Surfen im Internet entdeckt. Neulich bin ich auf ein Forum gestoßen, in dem es anscheinend um einen Einführungskurs zur Programmierung ging. Allerdings bin ich mir da auch nicht so sicher, da ich kein chinesisch kann und auf die Übersetzung von babelfish angewiesen war. Das Schöne an der objekt-orientierten Programmierung liegt vor allem in der Anlehnung an die natürliche Welt und genau der Punkt kann manchmal sogar ganz witzig sein. Eine weibliche Studentin der Wuhan University, die westlich von Shanghai liegt, hat zur Übung einen sehr interessanten Algorithmus geschrieben. Das Original ist wahrscheinlich hier , allerdings findet man den Algorithmus bei Google auf ca. 75 verschiedenen chinesischen Seiten insofern ist diese Quellenangabe nicht ganz zuverlaessig. Hier kommt eine ins Englisch übersetzte und leicht in der Syntax abgeänderte Version (abgesehen von and/or/= und ein paar fehlenden Funktionen ist das gültiger Java-Code!):

public class People {
  int age;
  int height;
}
 
public class Boy extend People {
  String appearance;
  int height;
  int salary;
}
 
public class Girl extends People {
  boolean is_Beautiful;
  public String marriage(Boy boy) {
    if (boy.salary < 5000)
      return "go to dead!";
    if (boy.salary <10000 and boy.appearance = "very good")
      return "let me think!!";
    if (boy.salary <10000 and boy.appearance = "not bad"
         or boy.height > 180)
      return "i must ask my Friends";
    if (boy.salary > 10000)
      return "Your are my man!!!!!!!";
}
 
String love (Boy boy, Girl girl) {
  if (boy.has_house () and boy.has_car ()) {
    boy.set(nothing);
    return girl.marriage (boy);
  }
  if (girl.wants_and_so_on ()) {
    while (!(boy.makes_money() > 10000 and girl.feelings > 8)) {
    for (day=1; day <=365; day++) {
      if (day = valentine_day) {
        if (boy.give_girl(rose))
          girl.feelings++;
        else
          girl. feelings--;
      }
      if (day = boy.birthday) {
        boy.age++;
      }
      if (day = girl.birthday) {
        girl.age++;
        if (boy.give_girl (rose)) {
          girl.feelings++;
        else
          girl.feelings--;
      }
      boy. goes_all_out_to_make_money ();
      if (boy.has_house() and boy.has_car())
        boy.set(nothing);
        return girl.marriage(boy);
      }
      girl.feelings--;
    }
    return girl.goto(another_boy);
  }
}

(originally posted on 2008-07-02)