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$leveltrue)) {
            
$position $level[0] ? $position $position 1;
        }
    }
    return 
$position;
}

?>

Jak zwykle, jak ktoś ma jakieś uwagi, usprawnienia do kodu, to zapraszam do wypowiadania się ;).

Komentarze do wpisu "CodeCup.pl - zadanie 17":

1.

BTM napisał(a):
10 kwietnia 2008, 21:00:44

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

2.

Draakhan napisał(a):
10 kwietnia 2008, 21:15:32

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 ;).

3.

Niecodziennik krytyczny napisał(a):
14 kwietnia 2008, 21:54:04

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[...]

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.