Hello, Guest the thread was called242 times and contains 2 replays

last post from Bytebreaker at the

Magisches Quadrat 9x9 in V2 Basic

  • Hallo!


    Als Idee für die letzte Coding-Challenge hatte ich ein magisches Quadrat vorgeschlagen.
    Ich habe das jetzt einfach mal in Basic selbst gemacht. Die Idee kam vom letzten Atari ABBUC Clubheft, wo in einem Party-Bericht eine Coding Challenge "Magisches Quadrat" für Atari A8 beschrieben war.


    Da dachte ich, das muss doch auch in V2 Krüppel-Basic gehen. :D


    Wer also mal reinschauen mag, anbei csdb-Link und Direkt-Download.


    https://csdb.dk/release/?id=167013


    Bitte nicht wundern wenn das Programm seine Berechnungen manchmal neu startet, das passiert immer dann, wenn binnen 200 Durchläufe die benötigten Zahlen einer Reihe oder Spalte nicht ermittelt werden konnten.
    Der C64 probiert es so lange, bis es klappt. Wer bei der Frage nach der Rechenprobe "J" eingibt, sieht unter dem Quadrat dann alle Checksummen.


    Schöner Gruß,
    Bytebreaker


    P.S.: Bietet jemand ein größeres Quadrat? :D

  • Hmm... also ich kenne magische Quadrate eigentlich so, daß alle Zahlen von 1 bis N² (N: Seitenlänge) verwendet werden sollen und dann aber auch in allen Zeilen, Spalten und den zwei Diagonalen die gleiche Summe herauskommt.


    Spoiler-Alert: in irgendeiner Input-64 war das mal als Wettbewerb für ein Unterprogramm drin. Die kürzeste Lösung brauchte nur 3 Befehle vor dem RETURN: ein FOR, eine einzige (zugegeben recht komplizierte) Zuweisung, und ein NEXT.

  • Hi Mike!


    (edit)


    Ja, was Du schreibst ist korrekt. Mein Programm weicht aber leicht ab weil ich die genauen Regeln nicht kannte.
    Du gibst eine Zahl zwischen 50 und 250 ein und dieser Wert ist dann die Summe beider Diagonalen, aller Spalten und aller Zeilen. Das mit dem N hoch 2 wusste ich gar nicht. Ich habe nur gemerkt dass es je nach Quadratgröße eine Untergrenze und eine Obergrenze der möglichen Quersummen gibt.


    Ich habe das natürlich nicht so elegant und kurz hinbekommen, sondern nur so, dass es aufgeht.


    Vielleicht ist das Thema ja für den einen oder anderen auch interessant als kleine Kopfnuss und wir tauschen uns hier über kürzeren Code oder größere (oder frei dimensionierbare) Quadrate aus. Den freien Dimensionierbarkeitsaspekt habe ich nicht hinbekommen.