Achtung: Die E-Mail-Adresse hat sich geändert, bitte nicht versehentlich an die alte schreiben.
Momentan habe ich 11 Aufgaben vorrätig. Vorschläge für neue Rätsel nehme ich immer gerne an (bitte als Mail und als Betreff für Vorschläge rdw-vorschlag enthalten lassen (in klein).
RDW 2007/5 - Raetsel der Woche Nummer 5 des Jahres 2007
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Regeln:
~~~~~~~
* Bitte nicht vor Ablauf der ersten 72 Stunden (= drei Tage)
nach Veröffentlichung Hinweise, Spoiler, Lösungen oder
Lösungsteile posten!
* Verständnisfragen dürfen selbstverständlich auch vor
Ablauf der drei Tage in diesem Thread gestellt
werden. Diskussionen über Lösungsansätze gehören aber
nicht hierher.
* Die Verwendung von Modulen ist generell erlaubt, wird jedoch
das ganze Problem von einem Modul erschlagen, so macht das
die Lösung langweilig -- und das ist nicht unbedingt der
Sinn dieser Rätsel.
* Erst wenn die drei Tage abgelaufen sind, werden Lösungen in
das Wiki gestellt und hier verlinkt.
* Sobald die Lösungen veröffentlicht wurden darf hier
natürlich über sie diskutiert werden.
* Die Lösungen sollten nicht unbedingt von jedem Einzelnen
gepostet, sondern vor allem per E-Mail an mich geschickt
werden, damit ich sie testen, "bewerten" und zusammenfassen
kann. Die Adresse dafür lautet:
ishka <---Minus---> rdw <---At---> kettenbruch <---Punkt---> de
Im Betreff sollte 'RDW' (also wirklich RDW und nicht Rätsel der
Woche oder andere Ausformulierungen) und die Nummer des Rätsels
stehen. Hilfreich wäre neben dem Quelltext der Benutzername
im Forum sowie Perl- und OS-Version (siehe auch perl -v).
Die Aufgabe:
~~~~~~~~~~~~
Gib zu einer Liste von Feldern (auf einem Feld mit zwei
Koordinaten), welche zusammenhängen, den Umfang an, wobei
Löcher zu ignorieren sind.
Beispiel:
~~~~~~~~~
Die Ascii-Zeichnungen bei der Eingabe gehören nicht wirklich zur
Eingabe, sondern dienen nur zum schnelleren Verständnis der Beispiele
Es genügt, wenn man eine der im Beispiel gezeigten
Parametervarianten implementiert (also ;-separierte Liste mit je
zwei einstelligen Zahlen, oder ;-separierte Liste mit je mit , getrennten
beliebigen ganzen Zahlen)
Beispiel:
Eingabe:
11
#
Ausgabe:
4
Eingabe:
-3,1;-3,2;-2,2
#
##
Ausgabe:
8
Eingabe:
11;22
#
#
Ausgabe:
8
Eingabe:
11;12;22;10;20;30;40;31;32
####
# #
###
Ausgabe:
14
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}