Hilfe beim Starten eines Programms

Pielo

Mitglied
Hallo,

ich habe ein Rätsel im Bereich Geocache, welches Programmierkenntnisse voraussetzt. Da dieses Rätsel zu einer größeren Serie gehört würde ich dieses nur sehr ungern auslassen.

C#:
  static void SEPA(int start)

        {

            int[] array = {

                61, 80, 76, 83, 7, 58, 87, 72, 198, 7,

                94, 227, 85, 90, 74, 79, 91, 7, 76, 92,

                74, 79, 7, 59, 79, 92, 76, 89, 80, 85,

                78, 76, 85, 20, 53, 72, 91, 92, 89, 8

                };

            foreach (int x in array)

            {

                Console.Write("{0}", (char)(start + x));

            }

            Console.WriteLine();

 

            int i = start;

            i *= 3;

            i += 3;

            Console.Write("{0}", (char)i);

            i -= 28;

            Console.Write("{0:00}", i);

            i = i + i + i + i / 2 + i / i;

            Console.Write("{0}", (char)i);

            i += 4;

            i /= 4;

            Console.Write("{0}", (char)(i - 13));

            Console.Write("{0:00}", i);

            i++;

            Console.Write("{0}", (char)i);

            i--;

            i = (i * i - i) / ((i + i + 10) / 10) + i + i / i;

            Console.Write("{0:000}", i);

            i /= 4;

            i += 3;

            i /= 2;

            Console.Write("{0}", (char)i);

            i += i;

            i += 5;

            Console.Write("{0}", (char)i);

            i -= 3;

            i /= 6;

            Console.Write("{0:000}", i);

            i = i * i + i + i + i + i + i;

            Console.Write("{0}", (char)i);

            i -= 4 * 4;

            i /= 5;

            Console.Write("{0}", (char)i);

            i /= 2;

            i -= 2;

            Console.Write("{0:00}", i);

            i *= 4;

            i -= 10;

            Console.Write("{0}", (char)i);

            i = i + i + i + i + i;

            i += i + i + i;

            i -= 2;

            Console.Write("{0:000}", i);

 

            Console.WriteLine();

        }

Dieses Programm muss mit einem Startparameter gestartet werden. Leider weiß ich überhaupt nicht, wie und was ich machen muss.

Habe auch schon mal in einem Onlinecompiler was zu erreichen, aber leider kommen da, logischer Weise, nur unverständliche Fehlermeldungen.

.NET Fiddle

Wäre schön, wenn mir jemand genau zeigen könnte wie ich vorgehen muss, um eine Antwort zu bekommen.

Mit freundlichen Grüßen
Pielo
 

ikosaeder

Teekannen-Agnostiker
Da ich keine Ahnung von C# habe, habe ich das Ganze nach Python portiert.
Leider gibt der Online Interpreter das nicht vollständig aus.
Aber lokal bekommt man einen Text und Koordinaten.

Python:
def SEPA(start):
    array = [
                61, 80, 76, 83, 7, 58, 87, 72, 198, 7,
                94, 227, 85, 90, 74, 79, 91, 7, 76, 92,
                74, 79, 7, 59, 79, 92, 76, 89, 80, 85,
                78, 76, 85, 20, 53, 72, 91, 92, 89, 8
    ]
    for x in array:
        print(f'{chr(start+x)}',end='')
    print('')
    i = start
    i *= 3
    i += 3
    print(f'{chr(i)}',end='')
    i -= 28
    print(i,end='')
    i = int(i + i + i + i / 2 + i / i)
    print(i,end='')
    i += 4
    i = i//4
    print(chr(i - 13),end='')
    print(i,end='')
    i+=1
    print(chr(i),end='')
    i-=1
    i = int((i * i - i) / ((i + i + 10) / 10) + i + i / i)
    print(i,end='')
    i = i // 4
    i += 3
    i = i // 2
    print(chr(i),end='')
    i += i
    i += 5
    print(chr(i),end='')
    i -= 3
    i  = i // 6
    print(chr(i),end='')
    i = i * i + i + i + i + i + i
    print(chr(i),end='')
    i -= 4 * 4
    i = i // 5
    print(chr(i),end='')
    i = i // 2
    i -= 2
    print(chr(i),end='')
    i *= 4
    i -= 10
    print(chr(i),end='')
    i = i + i + i + i + i
    i += i + i + i
    i -= 2
    print(i,end='')

SEPA(25)
 

Technipion

Erfahrenes Mitglied
Da ich keine Ahnung von C# habe, habe ich das Ganze nach Python portiert.
Danke! Das hat es mir ermöglicht auch ein wenig damit rumzuspielen :D

Den Text erhält man in der Tat für einen Startwert von 25. Aber ergeben die Koordinaten für euch irgendeinen Sinn? Ich habe jetzt eine halbe Stunde rumprobiert die Zahlen irgendwie zu kombinieren, aber da landet man teilweise in Frankreich, Russland oder auch Somalia. Man muss die Zahlen schon ziemlich verwursten um in Deutschland zu landen :rolleyes:

Irgendwelche Ideen wie man die Zahlen kombinieren muss (ohne sie jetzt konkret zu spoilern)?

Gruß Technipion

EDIT: Hab's rausgefunden. Bei der Portierung nach Python sind ikosaeder wohl ein paar Flüchtigkeitsfehler passiert. Wenn man das Programm 1 zu 1 portiert, kommen sinnvolle Koordinaten heraus :giggle:

Python:
def SEPA(start):
    array = [
                61, 80, 76, 83, 7, 58, 87, 72, 198, 7,
                94, 227, 85, 90, 74, 79, 91, 7, 76, 92,
                74, 79, 7, 59, 79, 92, 76, 89, 80, 85,
                78, 76, 85, 20, 53, 72, 91, 92, 89, 8
    ]
    for x in array:
        print(f'{chr(start+x)}',end='')
    print('')

    def write(s):
        print(s, end='')

    i = start
    i *= 3
    i += 3

    write(chr(i))

    i -= 28

    write(f'{i:02}')

    i = i + i + i + i // 2 + i // i

    write(f'{chr(i)}')

    i += 4
    i = i // 4

    write(chr(i - 13))
    write(f'{i:02}')

    i += 1

    write(chr(i))

    i -= 1
    i = (i * i - i) // ((i + i + 10) // 10) + i + i // i

    write(f'{i:03}')

    i = i // 4
    i += 3
    i = i // 2

    write(chr(i))

    i += i
    i += 5

    write(chr(i))

    i -= 3
    i  = i // 6

    write(f'{i:03}')

    i = i * i + i + i + i + i + i

    write(chr(i))

    i -= 4 * 4
    i = i // 5

    write(chr(i))

    i = i // 2
    i -= 2

    write(f'{i:02}')

    i *= 4
    i -= 10

    write(chr(i))

    i = i + i + i + i + i
    i += i + i + i
    i -= 2

    write(f'{i:03}')


SEPA(25)
print('')

Ich finde solche Rätsel ja ganz cool.
 
Zuletzt bearbeitet:

ikosaeder

Teekannen-Agnostiker
Danke, ich finde sowas auch ganz toll. Ich habe ein paar Abkürzungen genommen und nicht mehr weitergemacht, als ich den Text las.