Emoji Vending Machine

23

Não consegue ver o emoji? Clique aqui .

Você simulará uma máquina de venda automática. Os itens são 56 emojis diferentes, que podem ser representados como dois caracteres UTF-8 substitutos, de: 🍅 (U + D83C U + DF45) a 🍼 (U + D83C U + DF7C). Em HTML, esses emojis podem ser representados no formato UTF-16 como & # x1F345 a & # x1F37C . Na base 10, o primeiro caractere UTF-8 possui o valor 55356 . O valor do segundo caractere varia de 57157 a 57212 . Aqui está um programa CJam que gera todos os emojis relevantes. Para evitar confusão, esse desafio será pontuado em caracteres, não em bytes . Alguns emojis têm 2 caracteres, outros 3. Http://www.lettercount.com fornecerá uma contagem precisa para esse desafio.

Preços 💵💵💵

Existem 8 categorias de preços diferentes:

  • US $ 1,00: 🍅🍆🍇🍈🍉🍊🍋
  • US $ 1,50: 🍌🍍🍎🍏🍐🍑🍒
  • US $ 2,00: 🍓🍔🍕🍖🍗🍘🍙
  • US $ 2,50: 🍚🍛🍜🍝🍞🍟🍠
  • US $ 3,00: 🍡🍢🍣🍤🍥🍦🍧
  • US $ 3,50: 🍨🍩🍪🍫🍬🍭🍮
  • US $ 4,00: 🍯🍰🍱🍲🍳🍴🍵
  • US $ 4,50: 🍶🍷🍸🍹🍺🍻🍼

Exibindo a máquina de venda automática

É o que o usuário vê quando o programa é iniciado e após a compra. Você pode usar números regulares em vez de números emoji, mas os números emoji têm a vantagem de ter a mesma largura que outros emojis. Se você usar números emoji, poderá subtrair 14 caracteres da sua pontuação, porque os números emoji têm 3 caracteres cada.

  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🍡🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼 

Se o usuário digitar, G5selecione 🍳. Inserir E6seleciona 🍦.

Adicionando dinheiro 💸💸💸

Para adicionar dinheiro, o usuário deve inserir /e, em seguida, o código de uma moeda ou nota. As moedas são (N) ickel ($ 0,05), (D) ime ($ 0,10) e (Q) mais tarde ($ 0,25). As faturas são (O) ne (US $ 1,00), (F) cinco (US $ 5,00), (T) en (US $ 10,00). Sempre que o usuário adiciona uma nota ou moeda, o programa deve ser exibido Balance: [New Balance]. Apenas uma nota ou moeda pode ser adicionada a cada vez. Aqui está um exemplo que contém três linhas de entrada:

/D
Balance: $0.10
/Q
Balance: $0.35
/F
Balance: $5.35

Selecionando itens

O usuário seleciona um item digitando o código do item, como B2ou C3. Se o usuário não adicionou nenhum dinheiro, o programa deve ser exibido Item Cost: [Cost of Item]. Se o usuário adicionou dinheiro, mas não é suficiente comprar o item, a saída deve ser Insufficient Funds. Item Cost: [Cost of Item]. Se o usuário adicionou dinheiro suficiente, o programa deve gerar:Item at [Item Location] Purchased. Remaining Balance: [Balance - Cost of Item] . Em seguida, em sua própria linha, imprima o emoji do item comprado. Em seguida, imprima toda a máquina de venda automática (consulte "Exibindo a máquina de venda automática") com o item adquirido substituído por Base (U + D83D U + DEAB) Base 10: (55357 57003).

Finalizando o programa

Se o usuário comprar um item que reduz seu saldo a US $ 0,00, o programa será encerrado automaticamente. Como alternativa, se o usuário digitar "Concluído" a qualquer momento, o programa deverá fornecer ao usuário o saldo restante em alteração. A mudança deve ser feita apenas em níquel, moeda de dez centavos e quarto de moeda e deve ser a menor quantidade possível de moedas. Por exemplo, se o saldo restante for de US $ 1,45, a saída deverá serQQQQQDD .

Execução de amostra

(A entrada começa com "-")

  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🍡🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼  
-E1
Item Cost: $3.00
-/F
Balance: $5.00
-E1
Item at E1 Purchased. Remaining Balance: $2.00
🍡 
  1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣
A 🍅🍆🍇🍈🍉🍊🍋
B 🍌🍍🍎🍏🍐🍑🍒
C 🍓🍔🍕🍖🍗🍘🍙
D 🍚🍛🍜🍝🍞🍟🍠
E 🚫🍢🍣🍤🍥🍦🍧
F 🍨🍩🍪🍫🍬🍭🍮
G 🍯🍰🍱🍲🍳🍴🍵
H 🍶🍷🍸🍹🍺🍻🍼
-Done
QQQQQQQQ

Códigos inválidos

  • Se a entrada começar com, /mas não for uma entrada válida em dinheiro, faça a saída Money not Accepted.
  • Se a entrada for um item que já foi comprado, a saída Item out of stock
  • Se a entrada for uma combinação de dígitos e letras que não está no intervalo (como A0ou J2, imprima "Código inválido"
  • Para todas as outras entradas inválidas, imprima "Erro"

Bônus (-15%): Atolamento

Ao vender um item, há 10% de chance de a máquina travar e o item ficar preso. Saída JAM!!!uma vez. Nesse caso, o usuário deve inserir "punch" ou "kick". Cada vez que o usuário faz isso, há 20% de chance de o item se libertar e vendê-lo normalmente. Até o atolamento desaparecer, as únicas entradas reconhecidas são "soco" e "chute". Todas as outras entradas não fazem nada. Aqui está uma amostra:

-A4
Item at A4 purchased. Remaining Balance: $1.00
JAM!!!
-punch
-kick
-kick
-punch
-punch
🍚

(O atolamento foi eliminado. Continue como normal.)

Bônus (-10%): ID

Se o usuário tentar comprar uma bebida alcoólica (qualquer item na última linha, exceto a mamadeira), você deverá exigir uma prova de idade. Para fazer isso, você pede ao usuário que multiplique dois números aleatórios entre 13 e 19 (inclusive). Saída ID required: [13-19]x[13-19] = ?. Se o usuário responder corretamente, a compra poderá ser concluída. Caso contrário, imprima 🔞 (U + D83D U + DD1E) base 10: (55357 56606)

Desafio alternativo: Minecraft

Esse desafio parece ser algo possível no Minecraft. Para criar com sucesso uma versão Minecraft deste programa, o jogador deve

  • Tenha uma grade 8x7 para selecionar entre 56 itens exclusivos
  • Poder adicionar dinheiro à balança (talvez use tipos diferentes de pedras para as diferentes denominações descritas acima.)
  • Forneça ao usuário o item que ele / ela seleciona se ele tiver investido "dinheiro" suficiente
  • Retorne ao usuário a quantidade apropriada de alteração no final.

Modo de compatibilidade

  • Só posso receber sugestões no início do programa

    • Não se preocupe, você pode criar um programa que leve todas as informações à frente. Se o seu programa não foi finalizado após avaliar todas as entradas, suponha que "Concluído" seja chamado no final. Se você usar esse método, não terá direito a nenhum bônus.
  • Não consigo visualizar / emitir emojis

    • Você pode copiar e colar sua entrada e saída neste snippet de pilha (ou aqui ). Ele pode entender emojis unicode e códigos HTML para emojis. Se sua saída parecer correta nesta página, seu programa será aprovado. Tente colar algumas das entradas / saídas de amostra para ver como fica.

function parse() {
var o = document.getElementById("output");
var text = document.getElementById("in").value;
o.innerHTML = text.replace(/\n/g,"<br/>").replace(/ /g,"&nbsp");
twemoji.parse(o);
}
<head>
<script src="//twemoji.maxcdn.com/twemoji.min.js"></script>  
</head>
<body>
<h1>Emoji to Image</h1>
<textarea id="in" rows="10" cols="50"></textarea>
<input type="submit" onclick="parse()">
<div id="output"></div>
</body>

Aqui está uma versão abreviada do modo de compatibilidade da exibição da máquina de venda automática que você pode testar no Snippet da pilha:

   &#x31&#x20E3&#x32&#x20E3&#x33&#x20E3&#x34&#x20E3&#x35&#x20E3...
A&#x1F345&#x1F346&#x1F347&#x1F348&#x1F349...
B 
...
  • Posso produzir emojis, mas não para STDOUT.

    • Aparentemente, o Mac OS X Terminal é o único conhecido por ser capaz de emitir emojis. Se você não conseguir emitir emojis no seu terminal, suas outras opções serão
      • Envie toda a saída para um arquivo.
      • Exibe toda a saída em uma janela.
      • Use a técnica descrita em "Não consigo visualizar / exibir emojis".
geokavel
fonte
5
$ can be replaced with your local currencynão faz muito sentido se você exigir que as moedas sejam (N) ickels (D) imes e (Q) uarters. Eu sugiro que você o remova, pois isso adiciona confusão.
Level River St
@steveverrill Bom ponto. Eu mudei isso. Minha pergunta é: os teclados de fora dos EUA têm um botão $ ou existe um código para isso?
precisa saber é
o $símbolo faz parte do conjunto de caracteres ASCII, portanto, é seguro assumir que praticamente todos os teclados e idiomas podem lidar com isso. É o único símbolo de moeda no conjunto de caracteres ASCII de 7 bits. Como resultado, outros símbolos, como o símbolo GBP ou o símbolo EUR, podem ser renderizados incorretamente devido a codificações de string incompatíveis, mas isso quase nunca acontece com ele $.
Level River St
@steveverrill Eu sei que eles podem lidar com isso, mas existe um botão de teclado físico para isso?
precisa saber é
Meus teclados britânicos e espanhóis possuem isso além dos símbolos relevantes da moeda local, e acho que os outros também. Além de ser o símbolo monetário mais usado no mundo (inclusive para muitas moedas que não são chamadas de dólares), o $símbolo tem um significado especial na maioria das linguagens de programação, portanto, não tê-lo disponível no teclado seria uma limitação séria. Estou digitando isso no meu teclado em espanhol e é realmente mais fácil obter $ (shift + 4) do que € (alt gr + E) para que você possa ver que o último símbolo foi adicionado como uma reflexão tardia.
Level River St

Respostas:

8

PHP, (1295-14) - 25% = 960,75 caracteres

Pontuações antigas 1315 1351 1361 1295 989 977

Isso foi divertido, e é a primeira resposta - sim.

$i=[A=>[🍅,🍆,🍇,🍈,🍉,🍊,🍋],B=>[🍌,🍍,🍎,🍏,🍐,🍑,🍒],C=>[🍓,🍔,🍕,🍖,🍗,🍘,🍙],D=>[🍚,🍛,🍜,🍝,🍞,🍟,🍠],E=>[🍡,🍢,🍣,🍤,🍥,🍦,🍧],F=>[🍨,🍩,🍪,🍫,🍬,🍭,🍮],G=>[🍯,🍰,🍱,🍲,🍳,🍴,🍵],H=>[🍶,🍷,🍸,🍹,🍺,🍻,🍼]];$p=[A=>1,B=>1.5,C=>2,D=>2.5,E=>3,F=>3.5,G=>4,H=>4.5];$v=[N=>.05,D=>0.1,Q=>.25,O=>1,F=>5,T=>10];a:$m='';$w=$x=0;$q=$c[0];$r=$c[1];$f=fgets;$n=rand;$u=number_format;if('Done'==$c&&$e=1)foreach([Q,D,N]as$_)while($b&&round($b-$v[$_],2)>=0&&$m.=$_)$b-=$v[$_];elseif('/'==$q){$v[$r]?$b+=$v[$r]:$m="Money not accepted
";$m.="Balance: $".$u($b,2);}elseif(in_array($q,range(A,Z))){if(0<$r&&8>$r--&&($_=$p[$q])){$b&&$b<$_?$m="Insufficient funds. ":0;if($b<$_)$m.="Item cost: $".$u($_,2);elseif(👾==$i[$q][$r])$m="Item out of stock.";else{$t=0;if(H==$q&&$r<6){$t=$n(13,19);$s=$n(13,19);echo"ID required: {$t}x$s = ?
";if($f(STDIN)!=$t*$s)$m=🔞;else$t=0;}if(!$t){$b-=$_;if(1>$n(0,9)){$w=1;}$x=$i[$q][$r];$m="Item at $c purchased. Remaining balance: $".$u($b,2).($w?"":"
$x");$i[$q][$r]=👾;if(!$b)$e=1;}}}else$m="Invalid code";}if($c&&!$m&&!$e)$m=Error;system(clear);echo"  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣";foreach($i as$k=>$_){echo"
$k ";foreach($_ as$_)echo"$_ ";}echo"
$m
";if($w){echo"JAM!!!
";for(;$c!=kick&&$c!=punch||7>$n(0,9);$c=trim($f(STDIN)));echo"$x
";}$e?exit:$c=trim($f(STDIN));goto a;

Como as máquinas de venda automática me lembram os anos 90 que eu usei gotoe para itens comprados, o Space Invader 👾 é mostrado. A máquina é redesenhada após cada comando.

Ungolfed (de alguma forma)

$i=[A=>[🍅,🍆,🍇,🍈,🍉,🍊,🍋],B=>[🍌,🍍,🍎,🍏,🍐,🍑,🍒],C=>[🍓,🍔,🍕,🍖,🍗,🍘,🍙],D=>[🍚,🍛,🍜,🍝,🍞,🍟,🍠],E=>[🍡,🍢,🍣,🍤,🍥,🍦,🍧],F=>[🍨,🍩,🍪,🍫,🍬,🍭,🍮],G=>[🍯,🍰,🍱,🍲,🍳,🍴,🍵],H=>[🍶,🍷,🍸,🍹,🍺,🍻,🍼]];
$p=[A=>1,B=>1.5,C=>2,D=>2.5,E=>3,F=>3.5,G=>4,H=>4.5];
$v=[N=>.05,D=>0.1,Q=>.25,O=>1,F=>5,T=>10];

a:
$m='';
$w=$x=0;
$q=$c[0];
$r=$c[1];
$f=fgets;
$n=rand;
$u=number_format;

if('Done'==$c&&$e=1)
    foreach([Q,D,N]as$_)
        while($b&&round($b-$v[$_],2)>=0&&$m.=$_)
            $b-=$v[$_];
elseif('/'==$q){
    $v[$r]?$b+=$v[$r]:$m="Money not accepted
";
    $m.="Balance: $".$u($b,2);
}elseif(in_array($q,range(A,Z))){
    if(0<$r&&8>$r--&&($_=$p[$q])){
        $b&&$b<$_?$m="Insufficient funds. ":0;
        if($b<$_)$m.="Item cost: $".$u($_,2);
            elseif(👾==$i[$q][$r])
                $m="Item out of stock.";
            else{
                $t=0;
                if(H==$q&&$r<6){
                    $t=$n(13,19);
                    $s=$n(13,19);
                    echo"ID required: {$t}x$s = ?
";
                    if($f(STDIN)!=$t*$s)
                        $m=🔞;
                    else
                        $t=0;
                }
                if(!$t){
                    $b-=$_;
                    if(1>$n(0,9)){
                        $w=1;
                    }
                    $x=$i[$q][$r];
                    $m="Item at $c purchased. Remaining balance: $".$u($b,2).($w?"":"
$x");
                    $i[$q][$r]=👾;
                    if(!$b)$e=1;
                }
            }
    }else
        $m="Invalid code";
}

if($c&&!$m&&!$e)$m=Error;

system(clear);
echo"  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣";
foreach($i as$k=>$_){
    echo"
$k ";
    foreach($_ as$_)
        echo"$_ ";
}
echo"
$m
";

if($w){
    echo"JAM!!!
";
    for(;$c!=kick&&$c!=punch||7>$n(0,9);$c=trim($f(STDIN)));
    echo"$x
";
}

$e?exit:$c=trim($f(STDIN));
goto a;

👾 Testado no OS X com PHP 5.5 e 5.6 👾


Edições

  • Adicionado 12 bytes . Corrigida saída Donee tacou algumas cordas.
  • Adicionados 306 bytes . Corrigido um ou dois bugs e suporte adicional para os bônus. Com os bônus, agora é quase 15 bytes mais curto.
  • Adicionados 66 bytes . Teve que formatar o dinheiro de forma diferente, também teve que aceitar mais valores ( [A-Z][0-9]) paraInvalid code .
  • 10 bytes salvos . Encontrou um espaço em branco e transformou alguns .=em =aplicáveis.
  • Economizou 36 bytes devido a alguma refatoração.
  • Economizou 20 bytes refatorando alguns loops e atribuições.
insertusernamehere
fonte
Uau, isso foi muito divertido de jogar! O único problema que notei: você precisa formatar preços como 3 e 3,5 em US $ 3,00 e US $ 3,50.
precisa saber é
Além disso, ao digitar J5, devo receber a mensagem: "Código inválido".
precisa saber é
@geokavel Obrigado pelo seu feedback. Adicionei o formato monetário correto e ele também aceita mais variantes por Invalid codeenquanto. É um desafio divertido - mesmo que ele tem muitas opções ... 1K personagens falam por si ... :)
insertusernamehere
Parabéns, por uma margem estreita, você é o vencedor! Obrigado a ambos os jogadores por serem concorrentes dignos e por fervorosamente tentarem se superar!
amigos estão dizendo sobre geokavel
@geokavel Foi um desafio divertido e um bom pingue-pongue entre Stephan e eu. Se alguém encontrar uma solução mais curta no futuro, eu estarei lá. ;)
insertusernamehere
5

C # 6 (.Net Framework 4.6), 1356 1324 1304 1311 1307 1238 1235 1231 1220 Letras - 14 letras (números Emoji) - (15% de bônus de atolamento + 10% de bônus de identificação) = 1017 993 978 972,75 969,75 969,75 918 915,75 904,5 letras

using h=System.Console;class c{static void Main(){double b=0,z,p,x=0,i=57157,j,n,r,c,m;var a=1==0;var d=new System.Collections.Hashtable();for(;i<57213;)d.Add(x++,""+(char)55356+(char)i++);for(var e=new System.Random();;){for(w("  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣"),x=0;x<8;x++,w(""))for(h.Write((char)('A'+x)),i=0;i<7;)h.Write(" "+d[x*7+i++]);for(;;){var k=h.ReadLine();if(k[0]==47){var l=k[1];z=b;b+=l=='N'?.05:l=='D'?.1:l=='Q'?.25:l=='O'?1:l=='F'?5:l=='T'?10:0;a=a|z!=b;w(z!=b?$"Balance {b:0.00}":"Money not Accepted");}else{if(k=="Done"){for(;b/.25>=1;b-=.25)h.Write("Q");for(;b/.1>=1;b-=.1)h.Write("D");for(;b/.05>=1;b-=.05)h.Write("N");return;}r=k[0]-65;c=k[1]-49;if(r<0|r>7|c<0|c>6)w("Invalid code");else{p=1+r/2;if(!a|p>b)w($"{(a&p>b?"Insufficient Funds. ":"")}Item Cost: ${p:0.00}");else{m=r*7+c;if(d[m]=="🚫")w("Item out of stock");else{if(r>6&c<6){j=e.Next(13,20);n=e.Next(13,20);w($"ID required: {j}x{n} = ?");if(int.Parse(h.ReadLine())!=j*n){w("🔞");break;}}b-=p;w($"Item at {k} Purchased. Remaining Balance: ${b:0.00}");if(e.Next(10)==1)for(w("Jam!!!");;){var f=h.ReadLine();if((f=="punch"|f=="kick")&e.Next(10)<2)break;}w(""+d[m]);d[m]="🚫";if(b==0)return;break;}}}}}}}static void w(string s)=>h.WriteLine(s);}

um pouco mais desregrado para uso no LinqPad 5 (C # 6). Use h = System.Console em F4.

void Main()
{
    double b=0,z,p,x=0,i=57157,j,n,r,c,m;
    var a = 1==0;
    var d = new Hashtable();
    for (; i < 57213;) d.Add(x++, ""+(char)55356 + (char)i++);
    for (var e = new Random(); ;)
    {
        for (w("  1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣"), x = 0; x < 8; x++, w(""))
            for (h.Write((char)('A' + x)), i = 0; i < 7;)
                h.Write(" " + d[x * 7 + i++]);

        for (; ;)
        {
            var k = h.ReadLine();
            if (k[0] == 47)
            {
                var l = k[1];
                z = b;
                b += l == 'N' ? .05 : l == 'D' ? .1 : l == 'Q' ? .25 : l == 'O' ? 1 : l == 'F' ? 5 : l == 'T' ? 10 : 0;
                a = a|z!=b;
                w(z != b ? $"Balance {b:0.00}" : "Money not Accepted");
            }
            else
            {
                if (k == "Done")
                {
                    for (; b / .25 >= 1; b -= .25) h.Write("Q");
                    for (; b / .1 >= 1; b -= .1) h.Write("D");
                    for (; b / .05 >= 1; b -= .05) h.Write("N");
                    return;
                }
                r = k[0] - 65;
                c = k[1] - 49;
                if(r<0|r>7|c<0|c>6)w("Invalid code");
                else
                {
                    p = 1 + r / 2;
                    if (!a | p > b) w($"{(a&p>b?"Insufficient Funds. ":"")}Item Cost: ${p:0.00}");
                    else
                    {
                        m = r * 7 + c;
                        if (d[m] == "🚫")
                            w("Item out of stock");
                        else
                        {
                            if (r > 6 & c < 6)
                            {
                                j = e.Next(13, 20);
                                n = e.Next(13, 20);
                                w($"ID required: {j}x{n} = ?");
                                if (int.Parse(h.ReadLine()) != j * n)
                                {
                                    w("🔞");
                                    break;
                                }
                            }

                            b -= p;
                            w($"Item at {k} Purchased. Remaining Balance: ${b:0.00}");
                            if (e.Next(10) == 1)
                                for (w("Jam!!!"); ;)
                                {
                                    var f = h.ReadLine();
                                    if ((f == "punch" | f == "kick") & e.Next(10) < 2)
                                        break;
                                }
                            w(""+d[m]);
                            d[m] = "🚫";
                            if (b == 0) return;
                            break;
                        }
                    }
                }
            }
        }
    }
}

void w(string s)=>h.WriteLine(s);

edit: obrigado pela (;;) dica;)

editar: greve !! Melhor que PHP ;-)

edit: Removido 24 letras. Ainda resta algo para php.

edit: Removidas 20 letras mudando de decimal para duplo.

edit: Removidas 7 letras ao mudar para Emoji Numbers

edit: Removido 4 letras, alternando tudo para dobrar em vez de uma mistura de duplas e ints.

edit: Removidas 69 letras - encontrado código morto o_O Melhor entrada C #: D

edit: Removidas 3 letras - última instrução if-else alterada

edit: Removidas 4 letras - trocadas de operadores de curto-circuito (&& e ||) para normal & e |

edit: Removidas 11 letras - alternadas de h.WriteLine para w () com string literal condicional.

Stephan Schinkel
fonte
Parece bom. Consegui testá-lo aqui com entrada estática. Existe uma maneira de testá-lo online ou no Mac com entrada dinâmica?
precisa saber é
Você pode testá-lo com entrada dinâmica aqui , embora os emojis apareçam como ??.
precisa saber é
O único problema que encontrei no seu é que "Código inválido" deve aparecer apenas para uma combinação de dígitos numéricos que não está dentro do alcance. Todos os erros não especificados devem gerar "Erro".
precisa saber é
@insertusernamehere: D
Stephan Schinkel
hey .... eu tenho-o para debaixo php :) @insertusernamehere
Stephan Schinkel