Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:labirinto

Labirinto

Introdução

O objectivo deste exercício consiste em ler determinadas coordenadas de um ficheiro e gerar o seu output, gerando uma espécie de labirinto. O seguinte exemplo será o input:

1T1b5T
1T2b1T1b2T
1T1b1T2b2T
1T3b1T1b1T
3T3b1T
1T3b1T1b1T
5T1*1T
  1. 3T = TTT
  2. 2b = Dois espaços em branco
  3. 1* = Character especial

O input poderá ser alterado, desde que seja mantida a respectiva estrutura.

Class Labirinto

Class Labirinto {
 
    function write_lab() {
        $file = "lab.in";
        $fw = fopen($file, "w");
        fwrite($fw, "1T1b5Tn1T2b1T1b2Tn1T1b1T2b2Tn1T3b1T1b1Tn3T3b1Tn1T3b1T1b1Tn5T1*1T");
    }
 
    function read_lab() {
        $file = "lab.in";
        $linhas = file($file);
        for ($i = 0; $i < count($linhas); $i++) {
            for ($a = 0; $a < 9; $a++) {
                switch ($linhas[$i][$a]) {
                    case $linhas[$i][$a]:
                        if ($linhas[$i][$a + 1] == 'b') { // b = espaços
                            echo str_repeat("&nbsp;", $linhas[$i][$a]);
                            break;
                        } else if ($linhas[$i][$a + 1] == '*') { // * = Character especial
                            echo str_repeat("*", $linhas[$i][$a]);
                            break;
                        }
                    default:
                        echo str_repeat("T", $linhas[$i][$a]); // T = letra
                        break;
                }
            }
            echo "<br>";
        }
    }
}

Conclusão

Lembrei-me de desenvolver este exercício em PHP porque já o havia feito em Java, apesar de nesta última linguagem ter ficado muito aquém deste algoritmo.

Artigo escrito por bioshock

dev_web/php/labirinto.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)