Autor |
Beitrag |
Schestex
Hält's aus hier
Beiträge: 18
Erhaltene Danke: 6
Win10 & Debian(Server)
Perl, Bash, TCL, C, python
|
Verfasst: So 23.12.18 10:16
Der Abschluss heute klappt auch ohne 40 Diamanten, ist das gewollt?
|
|
Lemmy
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: So 23.12.18 10:23
hm... hatte alle Diamanten gesammelt, Spiel hat sich beendet, dann kam "Schade das hat nicht gereicht" und anschließend der Glückwunsch zum Sieg ?!?
|
|
Schestex
Hält's aus hier
Beiträge: 18
Erhaltene Danke: 6
Win10 & Debian(Server)
Perl, Bash, TCL, C, python
|
Verfasst: So 23.12.18 10:28
Lemmy hat folgendes geschrieben : | hm... hatte alle Diamanten gesammelt, Spiel hat sich beendet, dann kam "Schade das hat nicht gereicht" und anschließend der Glückwunsch zum Sieg ?!? |
Ging mir im 2 Durchlauf dann auch so, habe natürlich auch 40 Steine danach gesammelt.
Die Tore haben dann eine Animation, glaube da ist eine Überprüfung untergegangen.
Ist dieses Jahr aber entspannter als im letzten
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: So 23.12.18 19:03
_________________ Ordnung ist das halbe Leben - und sie zu schaffen die andere Hälfte.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 24.12.18 00:40
Hallo,
auch der letzte Versuch des Schach-Rätsels ist beendet. Hier die Lösung
Die Auswertung wäre mit einem zusätzliche Button wahrscheinlich besser gewesen.
In der Offline-Version zum Nachspielen habe ich es geändert.
LG Steffen
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: BenBE
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 24.12.18 01:00
Hallo und frohe Weihnachten,
soeben beginnt der letzte Tag des EE-Adventsgewinnspiels 2018. Als letztes Rätsel gibt es wieder das Puzzeln eines Weihnachtsbildes.
Ich möchte mich bei euch für die Teilnahme bedanken und hoffe, ihr hattet etwas Spaß und Freude.
Besonderer Dank geht an Narses und Christian S.. Narses und Christian haben dieses Jahr durch viel Arbeit das AGS wieder möglich gemacht, da ohne Organisation des AGS "im Hintergrund" nichts funktionieren würde.
Die Gewinner werden in den nächsten Tagen durch Narses bekanntgegeben. Allen, die eine der wertvollen AGS-Tassen gewinnen werden , möchte ich schon gratulieren.
Sobald die letzte Lösung abgegeben wurde, werde ich unter mathematikalpha.de/adventskalender den Adventskalender 2018 als Offline-Version zum Download und Nachspielen bereitstellen; irgendwann am 25. Dezember.
Ich wünsche euch schöne Festtage, viele Geschenke und ein glückliches Neues Jahr 2019.
Wenn nichts dazwischen kommt, so sehen wir uns im Dezember 2019 zum 6.Entwickler-Ecke-Adventskalender wieder.
Steffen
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: BenBE, Christian S., Delphi-Laie, Fiete, Gausi, Hidden, Horst_H, jackle32, Jann1k, Lemmy, Narses, Oliver Marx, Orakel_von_Delphi, pzktupel, Symbroson, Xanthyla
|
|
pzktupel
Hält's aus hier
Beiträge: 129
Erhaltene Danke: 30
|
Verfasst: Mo 24.12.18 04:43
Vielen Dank, für den schönen Zeitvertreib !
Ich wünsche auch allen Frohe, friedliche und besinnliche Weihnachten !!!
Für diesen Beitrag haben gedankt: Narses
|
|
BenBE
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 24.12.18 05:43
Also das Schach-Rätsel sah bei mir in PHP eher länglich aus. Einen Trick, den ich gemacht hab, war die Effekte von Turm und Dame erst am Ende einzutragen, nachdem deren Position auf dem Spielfeld bereits markiert war. Dadurch konnte ich mir die Backtracking-Logik sparen und konnte die Check-Routine inkrementell prüfen.
Source sah dann am Ende so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249:
| <?php
function check($f) { if( $f[0][1] || $f[0][2] || $f[0][5] || $f[1][7] || $f[2][7] || $f[4][0] || $f[4][7] || $f[6][7] || $f[7][2] || $f[7][5] || $f[7][6] || $f[7][7] || ($f[4][5] > 4)) { return false; }
return true; }
function checkAt($f, $a, $b) { if($a >= 0 && $a <= 7) { if($b >= 0 && $b <= 7) { return $f[$a][$b]; } } return 0; }
$board = array( array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0), array(0,0,0,0,0,0,0,0) );
function attack($f, $a, $b) { if($a < 0) { return $f; } if($a > 7) { return $f; } if($b < 0) { return $f; } if($b > 7) { return $f; }
if($f[$a][$b] < 1000) { $f[$a][$b]++; }
return $f; }
function attackB($f, $a, $b) { $f = attack($f, $a - 1, $b - 1); $f = attack($f, $a - 1, $b + 1); return $f; }
function attackK($f, $a, $b) { $f = attack($f, $a - 1, $b - 1); $f = attack($f, $a - 1, $b); $f = attack($f, $a - 1, $b + 1);
$f = attack($f, $a, $b - 1); $f = attack($f, $a, $b + 1);
$f = attack($f, $a + 1, $b - 1); $f = attack($f, $a + 1, $b); $f = attack($f, $a + 1, $b + 1); return $f; }
function attackL($f, $a, $b) { for($l = 1; $l < 8; $l++) { if(checkAt($f, $a - $l, $b - $l) >= 1000 ) { break; } $f = attack($f, $a - $l, $b - $l); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a - $l, $b + $l) >= 1000 ) { break; } $f = attack($f, $a - $l, $b + $l); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a + $l, $b - $l) >= 1000 ) { break; } $f = attack($f, $a + $l, $b - $l); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a + $l, $b + $l) >= 1000 ) { break; } $f = attack($f, $a + $l, $b + $l); } return $f; }
function attackT($f, $a, $b) { for($l = 1; $l < 8; $l++) { if(checkAt($f, $a + $l, $b) >= 1000 ) { break; } $f = attack($f, $a + $l, $b); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a - $l, $b) >= 1000 ) { break; } $f = attack($f, $a - $l, $b); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a, $b - $l) >= 1000 ) { break; } $f = attack($f, $a, $b - $l); } for($l = 1; $l < 8; $l++) { if(checkAt($f, $a, $b + $l) >= 1000 ) { break; } $f = attack($f, $a, $b + $l); } return $f; }
function attackD($f, $a, $b) { $f = attackL($f, $a, $b); $f = attackT($f, $a, $b); return $f; }
function attackS($f, $a, $b) { $f = attack($f, $a - 2, $b - 1); $f = attack($f, $a - 2, $b + 1); $f = attack($f, $a - 1, $b - 2); $f = attack($f, $a - 1, $b + 2); $f = attack($f, $a + 1, $b - 2); $f = attack($f, $a + 1, $b + 2); $f = attack($f, $a + 2, $b - 1); $f = attack($f, $a + 2, $b + 1); return $f; }
function place($f, $a, $p) { $y = $a >> 3; $x = $a % 8; $f[$y][$x] = $p; return $f; }
$board = place($board, 8 + 5, 1012); for($a = 0; $a < 64; $a++) { $game = $board;
$game = place($game, $a, 1019); $game0 = attackS($game, $a >> 3, $a % 8); if(!check($game0)) { continue; }
for($b = 0; $b < 64; $b++) { if($b == 13) { continue; } if($b == $a) { continue; }
$game = place($game0, $b, 1011); $game1 = attackK($game, $b >> 3, $b % 8); if(!check($game1)) { continue; }
for($c = 0; $c < 64; $c++) { if($c == 13) { continue; } if($c == $a) { continue; } if($c == $b) { continue; }
$game = place($game1, $c, 1002); $game2 = attackB($game, $c >> 3, $c % 8); if(!check($game2)) { continue; }
if($game2[4][5] < 2) { continue; }
for($d = 0; $d < 64; $d++) { if($d == 13) { continue; } if($d == $a) { continue; } if($d == $b) { continue; } if($d == $c) { continue; }
$game3 = place($game2, $d, 1020);
for($e = 0; $e < 64; $e++) { if($e == 13) { continue; } if($e == $a) { continue; } if($e == $b) { continue; } if($e == $c) { continue; } if($e == $d) { continue; }
$game = place($game3, $e, 1004);
$game = attackL($game, 1, 5); $game = attackT($game, $d >> 3, $d % 8); $game4 = attackD($game, $e >> 3, $e % 8);
if(!check($game4)) { continue; }
if(4 != $game4[4][5]) { continue; }
echo "\nFound solution:\n"; var_dump($game4); for($y = 0; $y < 8; $y++) { for($x = 0; $x < 8; $x++) { echo (checkAt($game4, $y, $x) >= 10) ? chr((checkAt($game4, $y, $x) % 1000 + 64) & 127) : ((checkAt($game4, $y, $x) > 0) ? chr(checkAt($game4, $y, $x) % 10 + 48) : "_"); } echo "\n"; } echo "\n"; } } } } } |
Geht sicher kürzer, aber tat seinen Job (in etwa 29 Sekunden) und lieferte (_ 0):
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| 1__11_1_ _1_1_L1_ __11221_ 111D2T1S __12241_ _1_1BK2_ 1__1111_ ___1____ |
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Für diesen Beitrag haben gedankt: Mathematiker, Narses
|
|
pzktupel
Hält's aus hier
Beiträge: 129
Erhaltene Danke: 30
|
Verfasst: Mo 24.12.18 10:05
Der Adventskalender
__________________
Der Erste naht - es ist soweit,
bald kommt die schöne Rätselzeit.
Geduldig wartet schon der User,
er weiß - "Ich! bin bestimmt kein Loser."
Die ersten Türchen sind erreicht -
winkt ab und sagt: " Das ist doch leicht !"
Doch schon nach einer Woche
fängts an im Gehirn zu koche!
Der Quizmaster, wer hätte es gedacht -
zog an die Schrauben ab Türchen Acht !
Bis zur 24 ist's noch hin.
Da ist bestimmt noch einiges drin !
Am Ende und nach viel geschussel,
was leichtes - ein Puzzle !
Bonus:
Jaja was leichtes, so dachte er.
Das Puzzle war dann doch ganz schön schwer.
Mit ohne Farbe und 25min danach
fand er endlich den ersehnten Schlaf.
Für diesen Beitrag haben gedankt: BenBE, Hidden, Mathematiker, Narses
|
|
Schestex
Hält's aus hier
Beiträge: 18
Erhaltene Danke: 6
Win10 & Debian(Server)
Perl, Bash, TCL, C, python
|
Verfasst: Mo 24.12.18 10:22
|
|
Symbroson
Beiträge: 382
Erhaltene Danke: 67
Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
|
Verfasst: Mo 24.12.18 13:48
Auch von meiner Seite viele Dank für die tollen Rätsel Mathematiker, Narses, Christian S. und wer sonst alles noch beteiligt war!
Ich wünsche euch allen ein schönes Weihnachtsfest und im Vorraus schonmal einen guten Rutsch ins neue Jahr
Glückwunsch an alle, die von Anfang bis Ende dabei waren und durchgehalten haben
und besonderen Glückwunsch an alle Mit-Treppchensieger
_________________ most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Für diesen Beitrag haben gedankt: Narses
|
|
Orakel_von_Delphi
Hält's aus hier
Beiträge: 3
Erhaltene Danke: 3
Win7
Delphi7
|
Verfasst: Mo 24.12.18 14:33
Ich kann mich der allgemeinen Euphorie nicht anschließen, da ich sehr sehr traurig bin. Noch 341 Tage bis zum nächsten Adventsspiel, wie soll man das aushalten?
Für diesen Beitrag haben gedankt: Horst_H
|
|
Hidden
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Mo 24.12.18 17:10
Orakel_von_Delphi hat folgendes geschrieben : | Noch 341 Tage bis zum nächsten Adventsspiel, wie soll man das aushalten? |
Man macht einen Trainingsplan für das nächste Halbjahr
Januar - Adventskalender 2013
Februar - Adventskalender 2014
März - Adventskalender 2015
April - Adventskalender 2016
Mai - Adventskalender 2017
Juni - Adventskalender 2018
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Zuletzt bearbeitet von Hidden am Di 25.12.18 02:00, insgesamt 1-mal bearbeitet
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Di 25.12.18 01:03
Hallo,
der letzte offene Versuch ist 3 Minuten nach Mitternacht abgelaufen.
Damit ist der diesjährige Entwickler-Ecke-Adventskalender beendet.
Ab sofort findet ihr unter mathematikalpha.de/adventskalender den Kalender zum Offline-Nachspielen. Alternativ geht auch der direkte Download-Link mathematikalpha.de/?...mp;download_id=19703 .
Nicht wundern, aber die Online-Version wird bald nicht mehr spielbar sein.
Das einzige was noch bleibt ist die spannende Verlosung der EE-Tassen.
LG Steffen
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Narses, PantherX
|
|
BenBE
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 25.12.18 01:21
Wird es auch eine Siegerehrung der Erstplatzierten geben?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Gausi
Beiträge: 8538
Erhaltene Danke: 475
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 25.12.18 11:20
Zum Schachrätsel: Da habe ich auch zuerst relativ unkoordiniert rumprobiert. Dabei habe ich die zwei "sinnvollen" Positionen des Springers recht schnell erkannt, habe aber die richtige erstmal ausgeschlossen.
Bei der Dame hatte ich die falsche Annahme, dass sie zu den Angreifern des 4er-Feldes gehört ... war natürlich beides falsch.
Und dann bin ich systematisch rangegangen und habe nach und nach alle Felder ausgeschlossen, wo die Dame definitiv nicht platziert werden kann. Und wenn die einmal richtig steht, ist der Rest der Lösung einfach.
Als kleine Kritik zum wirklich (mal wieder!) großartigen Adventsgewinnspiel: Der Schwierigkeitsgrad stieg meiner Ansicht nach in der letzten Woche deutlich an. Das fand ich ein wenig stressig kurz vor Weihnachten. Alles in allem fand ich es aber wieder richtig toll, mit einigen neuen interessanten Rätseln und Knobelaufgaben, dazu ein paar "alte Bekannte". Auch von mir zum Ende nochmal ein großes Dankeschön an alle, die an der Vorbereitung und Durchführung mitgewirkt haben.
Nur etwas wurmt mich - dass ich die Kistenschubserei schlicht und ergreifend vergessen habe. Leider nur 23 Richtige für mich . Aber dafür habe ich meinen "Meister-Puzzler-Titel" am 24. erfolgreich verteidigt, auch ohne "Strg+Klick".
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: BenBE, Hidden, Mathematiker, Narses
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 25.12.18 16:24
Moin!
Mathematiker hat folgendes geschrieben : | Nicht wundern, aber die Online-Version wird bald nicht mehr spielbar sein. |
So ist es, ich habe soeben den Server-Endpunkt für den Kalender deaktiviert, damit ist die Online-Version nicht mehr nutzbar.
Bitte verwendet ab sofort zum Nachspielen der diesjährigen Rätsel die Offline-Version, die Steffen oben verlinkt hat.
Auch von mir nochmal herzlichen Dank an dich, Steffen, für deinen unermüdlichen Einsatz als unser Quizmaster! Und genau so herzlichen Dank auch nochmal an Christian, der uns dieses Jahr mit der neuen Anmeldeseite für den Kalender sehr viel Ärger für euch und ziemlich viel Nacharbeiten für uns erspart hat!
Mathematiker hat folgendes geschrieben : | Das einzige was noch bleibt ist die spannende Verlosung der EE-Tassen. |
So ist es, das wird Steffen morgen im Laufe des Tages tun.
BenBE hat folgendes geschrieben : | Wird es auch eine Siegerehrung der Erstplatzierten geben? |
Nein, wir werden lediglich die Tassen-Gewinner verkünden. Du darfst dich aber gerne bei einem Getränk deiner Wahl über die reife Leistung, alle Rätsel gelöst zu haben, im Stillen freuen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Für diesen Beitrag haben gedankt: BenBE, Hidden, Mathematiker
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 26.12.18 01:53
Moin!
Unser Quizmaster hat vorhin noch die Verlosung der Preise gestartet, der Server hat folgende Gewinner der unbezahlbaren EE-AGS-Tasse 2018 ermittelt: Allen Gewinnern viel Spaß mit dem neuen Gizmo.
Die Tassen gehen sobald Deutschland wieder "arbeitet" in Produktion und - wie immer - voraussichtlich Anfang Januar in die Post.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
Zuletzt bearbeitet von Narses am Mi 26.12.18 01:56, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: BenBE, Christian S., Delphi-Laie, Hidden, Lemmy, Mathematiker, Xanthyla
|
|
Symbroson
Beiträge: 382
Erhaltene Danke: 67
Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
|
Verfasst: Mi 26.12.18 01:53
Glückwunsch an alle Tassengewinner
auf ein Neues im nächsten Jahr
_________________ most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Für diesen Beitrag haben gedankt: BenBE, Delphi-Laie, Lemmy
|
|
pzktupel
Hält's aus hier
Beiträge: 129
Erhaltene Danke: 30
|
Verfasst: Mi 26.12.18 10:08
Jo auch Glückwunsch.
Mal eine Frage, werden auch Tassen vergeben, wenn die volle Punktzahl nicht erreicht wurde, aber es gab bei ausreichend anderen Teilnehmern diese ?
Für diesen Beitrag haben gedankt: BenBE, Delphi-Laie
|
|
|