07.09.2017, 12:58
(Dieser Beitrag wurde zuletzt bearbeitet: 07.09.2017, 13:00 von Semax.
Bearbeitungsgrund: Syntaxfehler behoben
)
Lösungscodevalidierung finde ich gut. Und es geht für mich auch schon in die richtige Richtung.
Kleine Anmerkungen:
- prescribed: Statt 'prescribed 4 9' hätte ich eher sowas wie 'prescribed ---9-----' erwartet. Das wäre bei mehreren Vorgaben leichter für den Ersteller zu schreiben und zu prüfen.
- chars: Könnte vielleicht eher 'allowedChars' heißen. Das passt besser zusammen mit folgenden zusätzlichen Bedingungen:
- charsAtLeast <Zahl> <Wort>: Alle im <Wort> vorkommenden Zeichen müssen mindestens <Zahl> mal im Lösungscode vorkommen.
- charsAtMost <Zahl> <Wort>: Alle im <Wort> vorkommenden Zeichen dürfen höchstens <Zahl> mal im Lösungscode vorkommen.
- charsExactly <Zahl> <Wort> -> charsAtLeast <Zahl> <Wort>, charsAtMost <Zahl> <Wort>
Und dann habe ich gerade überlegt, wie man einen Lösungscode für Japanische Summen sinnvoll zur Verfügung stellen könnte. Sowas wie japsum <Length> <MinZahl> <MaxZahl> (z.B. japsum 12 0 8).
Zum einen bräuchte man eine Hilfsfunktion zum Zusammenbauen von Wörtern, da nicht alle Inhalte mit 123.. starten, z.B.:
- word <Zahl1> <Zahl2> <Zahl3>: Alle Zahlen von <Zahl1> bis <Zahl2> im Abstand von jeweils <Zahl3>
(z.B. word -4 8 2 => -4,-2,0,2,4,6,8)
Und dann bräuchte man noch etwas, um Wörter zu verbinden, da ja nicht nur die Zahlen, sondern auch die Schwarzfelder eingegeben werden müssen (z.B. mit x oder X).
- <Wort1> & <Wort2> -> Wort1Wort2 (oder wie auch immer man das in dieser Syntax schreiben würde...)
japsum <Zahl1> <Zahl2> <Zahl3> -> length <Zahl1>, charsAllowed X & word <Zahl2> <Zahl3> 1, charsAtMost 1 word <Zahl2> <Zahl3> 1
Um nicht alle Rätselarten hardzucoden, sollten diese Zwischenbedingungen so flexibel wie möglich sein.
Und dann müsste man wohl auch über Präzedenz und/oder Klammern nachdenken.
Kleine Anmerkungen:
- prescribed: Statt 'prescribed 4 9' hätte ich eher sowas wie 'prescribed ---9-----' erwartet. Das wäre bei mehreren Vorgaben leichter für den Ersteller zu schreiben und zu prüfen.
- chars: Könnte vielleicht eher 'allowedChars' heißen. Das passt besser zusammen mit folgenden zusätzlichen Bedingungen:
- charsAtLeast <Zahl> <Wort>: Alle im <Wort> vorkommenden Zeichen müssen mindestens <Zahl> mal im Lösungscode vorkommen.
- charsAtMost <Zahl> <Wort>: Alle im <Wort> vorkommenden Zeichen dürfen höchstens <Zahl> mal im Lösungscode vorkommen.
- charsExactly <Zahl> <Wort> -> charsAtLeast <Zahl> <Wort>, charsAtMost <Zahl> <Wort>
Und dann habe ich gerade überlegt, wie man einen Lösungscode für Japanische Summen sinnvoll zur Verfügung stellen könnte. Sowas wie japsum <Length> <MinZahl> <MaxZahl> (z.B. japsum 12 0 8).
Zum einen bräuchte man eine Hilfsfunktion zum Zusammenbauen von Wörtern, da nicht alle Inhalte mit 123.. starten, z.B.:
- word <Zahl1> <Zahl2> <Zahl3>: Alle Zahlen von <Zahl1> bis <Zahl2> im Abstand von jeweils <Zahl3>
(z.B. word -4 8 2 => -4,-2,0,2,4,6,8)
Und dann bräuchte man noch etwas, um Wörter zu verbinden, da ja nicht nur die Zahlen, sondern auch die Schwarzfelder eingegeben werden müssen (z.B. mit x oder X).
- <Wort1> & <Wort2> -> Wort1Wort2 (oder wie auch immer man das in dieser Syntax schreiben würde...)
japsum <Zahl1> <Zahl2> <Zahl3> -> length <Zahl1>, charsAllowed X & word <Zahl2> <Zahl3> 1, charsAtMost 1 word <Zahl2> <Zahl3> 1
Um nicht alle Rätselarten hardzucoden, sollten diese Zwischenbedingungen so flexibel wie möglich sein.
Und dann müsste man wohl auch über Präzedenz und/oder Klammern nachdenken.