CodeCup.pl - zadanie 17
Prezentuję kolejne moje kodziwo z serii rozwiązań zadań publikowanych w serwisie CodeCup.pl. Treść zadania to "Napisać funkcję, która obliczy współrzędną kuli po przetoczeniu przez daną liczbę poziomów i zapadni" (pełna treść zadania). Tym razem zadanie było prościutkie, udało mi się je rozwiązać w kilkanaście minut, łącznie z opracowaniem przypadków testowych. Co więcej, pochwalę się, że moje rozwiązanie ma aż 7 linijek kodu z nawiasami zamykającymi i returnem włącznie, a przykładowe rozwiązanie zadania ma tych linijek 26, tak więc udało mi się otrzymać w rezultacie dodatkowe punkty za styl. A o to i kodziwo:
<?php
function code($args) {
$position = 0;
foreach ($args as $level) {
while (!in_array($position, $level, true)) {
$position = $level[0] ? $position + 1 : $position - 1;
}
}
return $position;
}
?>
Jak zwykle, jak ktoś ma jakieś uwagi, usprawnienia do kodu, to zapraszam do wypowiadania się ;).
Kategorie: Studia i nauka, Techblog, Webdesign Trackback URL

Teżem dostał punkty ;-)
{geshi}<?php
function code($arr) { $start = 0; foreach($arr as $item) { $mod = ($item0 == true) ? 1 : -1; $slice = array_slice($item, 1); // oszczedz pamiec i cpu, w for tez… for($p = $start , $end = abs(max($slice)); $p * $mod <= $end ; $p += $mod) { if(in_array($p, $slice)) { $start = $p; break; } } } return $start;
}
?>{/geshi}
Jogger jak zawsze popsuje więc phpfi: http://phpfi.com/308955
Można powiedzieć, że pomysł na rozwiązanie ten sam mieliśmy. Różni się tylko w szczegółach ;).
Podoba mi się wykorzystanie array_slice, za to w „$item0 true" to " true” uznałbym za nadmiarowe ;).
CodeCup.pl - zadanie 20
Tym razem w konkursie programistycznym Codecup pojawiło się zadanie podchwytliwe - ciekawe ile osób próbowało tego samego rozwiązania co ja i zdziwiło się pojawiającym się komunikatem :). Treść zadania to napisanie funkcji konwertującej[...]