ALGORITHMEN - Teil XVII: Im Gruselkeller der Hirnwindungen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Information: Wir verlosen 4x das Buch Windows 10 - Schritt für Schritt erklärt!

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • ... und ein konkreter Figurenvorschlag (für Menschen mit guten Augen :oops: )

      Quellcode

      1. var brett$=\
      2. " 32,255,255, 97, 98, 99,100,101,102,103,104,255,255, 32, 10, 13,"+\
      3. " 32,255,255, 95, 95, 95, 95, 95, 95, 95, 95,255,255, 32, 10, 13,"+\
      4. " 32, 56,255,254, 16, 4, 3, 5, 4, 16,254,255, 56, 32, 10, 13,"+\
      5. " 32, 55,255, 9, 9, 9, 9, 9, 9, 9, 9,255, 55, 32, 10, 13,"+\
      6. " 32, 54,255, 32,176, 32,176, 32,176, 32,176,255, 54, 32, 10, 13,"+\
      7. " 32, 53,255,176, 32,176, 32,176, 32,176, 32,255, 53, 32, 10, 13,"+\
      8. " 32, 52,255, 32,176, 32,176, 32,176, 32,176,255, 52, 32, 10, 13,"+\
      9. " 32, 51,255,176, 32,176, 32,176, 32,176, 32,255, 51, 32, 10, 13,"+\
      10. " 32, 50,255,155,155,155,155,155,155,155,155,255, 50, 32, 10, 13,"+\
      11. " 32, 49,255, 64,156, 24, 15, 11, 24,156, 64,255, 49, 32, 10, 13,"+\
      12. " 32,255,255,238,238,238,238,238,238,238,238,255,255, 32, 10, 13,"+\
      13. " 32,255,255, 97, 98, 99,100,101,102,103,104,255,255, 32"
      14. WindowTitle "µBrett":WindowStyle 24:Window 300,200-120,190
      15. font 1:cls rgb(255,255,200):color 4,15
      16. Whileloop 190:print chr$(val(substr$(brett$,&Loop,",")));
      17. endwhile:waitinput
      Alles anzeigen

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von p. specht ()

    • Und jetzt bitte kombinieren.
      Ich habe Dein erstes Beispiel dazu erweitert, den Link hattest Du doch schon herausgesucht.


      Quellcode

      1. cls:font 1:declare i&
      2. whileloop 12:i&=&Loop:whileloop 12
      3. if between(i&,3,10) and between(&Loop,3,10)
      4. print if((i&+&Loop) mod 2," ",chr$(176));
      5. else :print ":";:endif:endwhile:print
      6. Endwhile
      7. 'print:print "Bitte jeweils Tastendruck zum Aussuchen von Figurzeichen"
      8. 'Whileloop 0,255:print &Loop,chr$(&Loop)
      9. 'waitinput
      10. 'endwhile
      11. font 1
      12. print "\n Weiss\n"
      13. print " Bauer ";chr$(1),chr$(9)
      14. print " Turm ";chr$(64),chr$(35),chr$(20),chr$(244)
      15. print " Springer ";chr$(156),chr$(36)
      16. print " Laeufer ";chr$(24),chr$(173)
      17. print " Dame ";chr$(15),chr$(12),chr$(209)
      18. print " Koenig ";chr$(11)
      19. print "\n Schwarz\n"
      20. print " Bauer ";chr$(2)
      21. print " Turm ";chr$(254)
      22. print " Springer ";chr$(21)'§
      23. print " Laeufer ";chr$(4),chr$(30)
      24. print " Dame ";chr$(3)
      25. print " Koenig ";chr$(5)
      26. Declare hFont1&,hFont2&, dy%, widestring ws
      27. Def %DT_WORDBREAK 16
      28. Def %DT_CENTER 1
      29. Def %DT_LEFT 0
      30. Def %DT_RIGHT 2
      31. Def %TA_CENTER 6
      32. Def %TA_LEFT 0
      33. Def %TA_RIGHT 2
      34. hFont1& = Create("Font","Arial Unicode MS",30,15,0,0,0)
      35. SetDialogFont hFont1&
      36. ws = "Ich hatte eigentlich diese Zeichen erwartet. Du hattest den Link doch schon gepostet.\n "
      37. ws = ws + chr$(9812) + " white chess king\n "
      38. ws = ws + chr$(9813) + " white chess queen\n "
      39. ws = ws + chr$(9814) + " white chess rook\n "
      40. ws = ws + chr$(9815) + " white chess bishop\n "
      41. ws = ws + chr$(9816) + " white chess knight\n "
      42. ws = ws + chr$(9817) + " white chess pawn\n "
      43. ws = ws + chr$(9818) + " black chess king\n "
      44. ws = ws + chr$(9819) + " black chess queen\n "
      45. ws = ws + chr$(9820) + " black chess rook\n "
      46. ws = ws + chr$(9821) + " black chess bishop\n "
      47. ws = ws + chr$(9822) + " black chess knight\n "
      48. ws = ws + chr$(9823) + " black chess pawn"
      49. dy% = 30
      50. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      51. dy% = dy% + %textheight
      52. ws = chr$(9814) +" "+ chr$(9815) +" "+ chr$(9816) +" "+ chr$(9813) +" "+ chr$(9812) +" "+ chr$(9816) +" "+ chr$(9815) +" "+ chr$(9814) +" "+ chr$(9817) + "\n"
      53. ws = ws + chr$(9820) +" "+ chr$(9821) +" "+ chr$(9822) +" "+ chr$(9819) +" "+ chr$(9818) +" "+ chr$(9822) +" "+ chr$(9821) +" "+ chr$(9820) +" "+ chr$(9823)
      54. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      55. dy% = dy% + %textheight
      56. hFont2& = Create("Font","Tahoma",30,15,0,0,0)
      57. SetDialogFont hFont2&
      58. DrawText 200,dy%,width(%hWnd)-200,0,ws,%DT_WORDBREAK | %DT_LEFT
      59. waitmouse
      60. DeleteObject hFont1&
      61. DeleteObject hFont2&
      62. END
      Alles anzeigen
      Irgendwas läuft da aber schief; das sollen 2 unterschiedliche Zeichensätze sein.
      Als Bild
      ChessFont.PNG
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Michael Wodrich ()

    • Auflösung zu NmR-2 Quersumme 2018
      ------------------------------------
      Die kleinstmögliche Zahl mit Quersumme 2018 wird aus 9ern gebildet. Deshalb brauchen wir dazu 2018 / 9
      = 224 Stellen mit ´9´. Das ergibt aber erst 2016, also kommt noch 2018 mod 9 = 2 vorne dran.
      Die Lösung ist also (225, 2).

      Spoiler anzeigen
      Wer´s genau wissen will:
      299999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    • Abt. Kleine Programmieraufgaben KPA-2 ´Schachfiguren´
      ==========================================
      Fleissige Leute hatten bei KPA-1 auch schon an Figuren auf dem Schachbrett gedacht. Das wird hiermit die nächste Aufgabe.

      Abt. Kleine Programmieraufgaben KPA-3 ´Dame-Grundaufstellung´
      ================================================
      Gesucht: Brett, und jeweils in rot und weiß: Einfache Steine, Damen (= Doppelstein) + Ablage für geschlagene Steine
      Gruss
    • Abt. Kleinstes Schachprogramm der Welt
      ==========================
      BootChess.com Freeware, ein 16 bit-Assemblerprogramm von Red Star Inc, hat 486 Byte. Sollte man gelegentlich mal aus der DOSBOX-Umgebung befreien. Mal sehen, ist eine Zeitfrage ...
      Gruss

      P.S.: Credits den Autoren Olivier “Baudsurfer/RSi” Poudade with help of Peter “QKumba” Ferrie.
      Releasedatum war 2015 (!!!)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Wobei mich das daran erinnert, dass es auch damals für den ZX81 in Grundausstattung mit 1kB RAM (abzüglich Bilschirmspeicher mit ca. 100 Byte für das 9*9 Felder große Spielfeld mit Beschriftung und einigen Bytes für Systemvariablen etc.) ein Schachprogramm in Maschinencode gab.

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X4
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de
    • Abt. Historische Links
      ==============
      Der MMJ Hoyerswerda in Lauta war das Nest für viele XProfan-Programmierer. Unter Leitung von Dietmar Horn (leider viel zu früh verstorben) fanden Menschen zwischen 10 und 60 Jahren aktiv zum Computer. Hier ein Bericht zum 10-Jahres-Jubiläum des Clubs im August 2011.

      Nächsten Monat jährt sich auch der 5. Todestag von Andreas Miethe, dem die XProfaner-Gemeinde viel zu verdanken hat. Seine Familie erhält dankenswerter Weise bis heute seine Homepage, die noch immer zahreiche wertvolle Programme zum Download bereithält!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • Abt. Noch mehr Rätsel - NmR 4
      =======================
      Wieviele Stunden haben 50% eines Drittels eines Vierteltages?

      NmR 5 ´Dreieck´
      =============
      In einem Dreieck ist der Winkel Alpha dreimal so groß wie der Winkel Beta und halb so groß wie Winkel Gamma. Wieviel Grad hat Alpha?

      NmR 6 ´Kostendeckung´
      ==================
      Eine Gruppe von Senioren plant einen Ausflug. Würde jeder 14 € zahlen, wären das 4 € zuwenig. Würde jeder 16 € geben, blieben 6 € über. Welcher Betrag ist zur genauen Kostendeckung zu bezahlen?

      NmR 7 ´Eine Menge Mengen´
      ======================
      Wieviele Mengen haben folgende Eigenschaft: Die Elemente der Menge sind jeweils mindestens 2 positive, aufeinander folgende Ganzzahlen, deren Summe genau 100 ergibt?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • NmR 4

      24 / 4 / 3 / 2 = 1 Std.

      NmR 5

      Spoiler anzeigen

      B * 3 = A
      G / 2 = A
      A + B + G = 180


      Quellcode

      1. Declare a!,b!,g!,x180!
      2. Set("Decimals",2)
      3. print "Schleife über Alpha"
      4. WhileLoop 1,180
      5. a! = &loop
      6. b! = a! / 3
      7. g! = a! * 2
      8. x180! = a! + b! + g!
      9. if (x180! >= 170) and (x180! <= 181)
      10. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      11. endif
      12. EndWhile
      13. print "Schleife über Beta"
      14. WhileLoop 1,180
      15. b! = &loop
      16. a! = b! * 3
      17. g! = a! * 2
      18. x180! = a! + b! + g!
      19. if (x180! >= 170) and (x180! <= 181)
      20. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      21. endif
      22. EndWhile
      23. print "Schleife über Gamma"
      24. WhileLoop 1,180
      25. g! = &loop
      26. a! = g! / 2
      27. b! = a! / 3
      28. x180! = a! + b! + g!
      29. if (x180! >= 170) and (x180! <= 181)
      30. print ">>> Alpha= ";a!,", Beta= ";b!,", Gamma= ";g!,", Summe= ";x180!
      31. endif
      32. EndWhile
      33. print "ende"
      34. waitinput
      35. end
      Alles anzeigen
      Dort also der jeweils letzte Ausdruck....
      Spoiler anzeigen

      Alpha = 54, Alpha hat also 54 Grad
      Beta = 18
      Gamma = 108

      Programmieren, das spannendste Detektivspiel der Welt.
    • Lösung zu NmR 4: Richtig, 1 Stunde. Punkt an Claudia, sie war die Schnellste!

      Lösung zu NmR 5:

      Spoiler anzeigen
      Alpha + Beta + Gamma = 180° Innenwinkelsumme des Dreiecks
      Alpha = 3 Beta = 1/2 Gamma
      |==> Alpha= 3 Beta
      |==> 6 Beta = 1 Gamma.
      Wir setzen ein:
      Alpha + Beta + Gamma = 180°
      3 Beta + Beta + 6 Beta = 180°
      ==> 10 Beta = 180°
      Beta = 180°/10 = 18°
      Alpha = 3 * Beta = 3 + 18° = 54°
      =========================
      Probe: 54°+18°+108°= 180°, q.e.d.
    • Abt. Noch mehr Rätsel - NmR 8: ´Fragen wird man noch dürfen´
      ===============================================
      Das mit der INNENWINKELSUMME des Dreiecks dürfte wohl klar sein.
      Aber was ist denn die AUSSENWINKELSUMME eines Dreiecks?

      P.S.: NmR 6 und NmR 7 sind dzt. noch offen!
    • p. specht schrieb:

      Abt. Noch mehr Rätsel - NmR 8: ´Fragen wird man noch dürfen´
      ===============================================
      Das mit der INNENWINKELSUMME des Dreiecks dürfte wohl klar sein.
      Aber was ist denn die AUSSENWINKELSUMME eines Dreiecks?

      P.S.: NmR 6 und NmR 7 sind dzt. noch offen!
      Spoiler anzeigen
      3 * 360° - 180° - Bevor ihr jetzt zum Taschenrechner greift: 900°
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X4
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de
    • Sind bei NmR 7 auch Leermengen zugelassen? Irgendwie etwas verwirrend das Ganze... -- Passe.

      NmR 6: betrag = (pers * 14 + 4) or (pers * 16 - 6). Da geht auch nichts mehr. Das Buchstaben-Rechnen lag mir noch nie...

      naja, evtl.

      Quellcode

      1. Declare p%,b1!,b2!
      2. Set("Decimals",2)
      3. WhileLoop 1,100
      4. p% = &loop
      5. b1! = (p% * 14 + 4)
      6. b2! = (p% * 16 - 6)
      7. if b1! == b2!
      8. print p%, "Personen"
      9. print "Betrag", b1!
      10. break
      11. endif
      12. EndWhile
      13. print "Dann müssen die",p%,"Personen für den Betrag von",b1!,"Euro jeder", b1! / p%, "Euro bezahlen."
      14. print "ende"
      15. waitinput
      16. end
      Alles anzeigen
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michael Wodrich ()

    • Die Lösung zu NmR 7 ´Eine Menge Mengen´
      --------------------------------------------------
      war ´sauschwer´ und erforderte viel Rechenarbeit. Es sind mehrfache Versuche notwendig. Die Antwort lautet: Es gibt genau 2 Lösungsmengen. Das nachfolgende Progi zeigt, welche.
      Gruss

      Quellcode

      1. WindowTitle "NmR 7"
      2. WindowStyle 24
      3. CLS
      4. font 0
      5. Declare m&,a&,b&,s&,z&
      6. whileloop 2,40
      7. m&=100\&Loop
      8. b&=m&-&Loop\2+1
      9. case b&<0:continue
      10. s&=0
      11. whileloop 1,&Loop
      12. s&=s&+b& : print b&,
      13. inc b&
      14. endwhile :print " = ";s&
      15. if s&=100:inc z&
      16. font 2
      17. print " ";z&;". Lösung: Die Summe der ";&Loop;" Elemente ab ";int(m&-&Loop\2+1);" = 100"
      18. font 0
      19. endif
      20. a&=m&-&Loop\2
      21. case a&<0:continue
      22. s&=0
      23. whileloop 1,&Loop
      24. s&=s&+a& :print a&,
      25. inc a&
      26. endwhile:print " = ";s&
      27. if s&=100:inc z&
      28. font 2
      29. print " ";z&;". Lösung: Die Summe der ";&Loop;" Elemente ab ";int(m&-&Loop\2);" = 100"
      30. font 0
      31. endif
      32. endwhile
      33. font 2
      34. print "\n Antwort: Es gibt ",z&," derartige Menge(n)."
      35. beep
      36. waitinput
      37. end
      Alles anzeigen