Pokazywanie postów oznaczonych etykietą obfuskacja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą obfuskacja. Pokaż wszystkie posty

wtorek, 13 lipca 2010

Program bez średników w C#

Do kompletu przykładów programów bez średników brakuje nam już tylko C#. C++ jest, Java jest, teraz czas na język Microsoftu ;)

Jeżeli ktoś nie zna jeszcze gry w "bum" niech zajrzy do tego posta:

http://wojtek-m.blogspot.com/2010/03/program-w-cc-bez-uzycia-srednikow.html.

Oryginalny program w C# grający w tą grę od 1 do 100 wygląda tak:

using System;

class BumGame
{
  public static void Main(string[] args)
  {
    for (int i = 1; i <= 100; i++)
    {
      if (i % 3 == 0 || i % 5 == 0)
      {
        Console.WriteLine("BUM");
        continue;
      }
      int j;
      for (j = 1; j <= i; j *= 10)
      {
        int digit = (i / j) % 10;
        if (digit == 3 || digit == 5)
        {
          Console.WriteLine("BUM");
          break;
        }
      }
      if (j > i)
      {
        Console.WriteLine(i);
      }
    }
  }
}


Czas usunąć średniki ;) Maina niestety nie udało mi się usunąć... jeszcze ;)

wtorek, 16 marca 2010

Program w Javie bez main() i średników

Ostatnio padło wyzwanie - napisać program bez użycia funkcji main w Javie. Taki komentarz pojawił się przy okazji programu w C bez średników - http://wojtek-m.blogspot.com/2010/03/program-w-cc-bez-uzycia-srednikow.html ;)

Hm, stwierdziłem że podbije poziom trudności i w Javie też ani jeden średnik nie zagości! Co będzie trudniejsze niż w C, bo Java jest bardziej "uporządkowana".

Oryginalny program (do znanej już gry w "bum" - osoby nie w temacie niech zerkną do powyżej podanego posta):

public class BumGame {
  public static void main(String[] args) {
    for (int i = 1; i <= 100; i++) {
      if (i % 3 == 0 || i % 5 == 0) {
        System.out.println("BUM");
        continue;
      }
      int j;
      for (j = 1; j <= i; j *= 10) {
        int digit = (i / j) % 10;
        if (digit == 3 || digit == 5) {
          System.out.println("BUM");
          break;
        }
      }
      if (j > i) {
        System.out.println(i);
      }
    }
  }
}

wtorek, 2 marca 2010

Program w C/C++ bez użycia średników

Czy dostaliście kiedyś zadanie napisać program w C++ (lub C) tak, aby nie użyć ani jednego średnika?

Jak to możliwe? Przecież średnik w prawie każdym języku zajmuje ważne miejsce - a to rozdziela instrukcje (SQL, Pascal, Perl), a to musi kończyć każdą instrukcję (C, C++, C#, Java) - jak więc sobie dać radę bez niego.

Jak zobaczymy - bez problemowo można. Jako przykładowy program-pomocnik do gry w "BUM". Jeżeli ktoś nie zna tej gry (zna ktoś?), to krótki przypomnienie:

1. Grają dwaj gracze. Na przemian mówią kolejne liczby naturalne.
2. Jeżeli gracz ma wypowiedzieć liczbę podzielną przez 3 lub przez 5 to zamiast tej liczby gracz mówi "BUM".
3. Tak samo jeżeli liczba do wypowiedzenia zawiera w sobie cyfrę 3 lub 5 to zamiast tej liczby gracz mówi "BUM".

wtorek, 19 stycznia 2010

Othello w 1200 bajtach C

Ile można pomieścić w 1200 bajtach kodu C?
Roemer B. Lievaart, startując w 1987 w IOCCC (International Obfuscated C Code Contest) zmieścił cały program grający w Othello (Reversi)!