Pato Pato Ganso!


58

Lembre-se do jogo infantil, 'Duck, Duck, Goose' ? Não? Nem eu.

O desafio

  • Imprima a palavra 'pato' em linhas individuais uma quantidade indeterminada de vezes.
  • Imprima a palavra 'ganso'.
  • Seu programa termina.

As regras

  • Tente jogar o jogo no menor número de bytes.
  • Deve haver pelo menos um pato.
  • Deve haver exatamente um ganso, no final da lista.
  • Deve haver exatamente um pássaro em cada linha. Sem linhas vazias.
  • O caso das strings emitidas é irrelevante.
  • O espaço em branco em uma linha é bom.
  • Seu programa deve terminar.
  • Seu programa não deve produzir consistentemente o mesmo número de patos.

Diverta-se!


Observe: Esta pergunta não é uma duplicata do código mais curto para produzir saída não determinística

Os motivos incluem:

  • A associação a um jogo infantil
  • Os requisitos de início e término definidos da sequência de resultados. Não há saída especificada no outro desafio.
  • Respostas Para o outro, o desafio não duplicado está em um número de um dígito de bytes. A média para este é de cerca de 30, ou aproximadamente.
  • Pela quantidade de sobreposição entre esse desafio e esse, qualquer pergunta sobre código-golfe, incluindo a tag 'aleatória', é uma duplicata. Devemos excluir todos eles?
  • As respostas de código para esse desafio corresponderiam ao outro (de uma maneira ridiculamente inchada), mas as respostas para esse desafio não corresponderiam a este.

11
Você poderia definir indeterminado? Poderia significar zero ou um?
recursivo

11
Por favor, defina como isso deve ser gerado aleatoriamente. Uniforme na faixa ou com declínio exponencial?
HyperNeutrino 12/0318

@recursive Não, mas vamos com uma definição de trabalho ... O programa não apresenta consistentemente o mesmo número de patos.
AJFaraday

2
Falando como um Minnesotan, e se o meu imprimir "pato, pato, pato cinza" ? :)
Mike Hill

11
@ jpmc26 Tenho certeza que existem outros. Você teria que jogar com outras pessoas, para começar.
AJFaraday

Respostas:


9

Gelatina , 13 bytes

2X“¢;ÆS»ẋ“ʋ¢»

Experimente online!

Explicação:

2X“¢;ÆS»ẋ“ʋ¢»

2X             Random number (1 or 2)
  “¢;ÆS»       Compressed string equivalent to "duck\n"
        ẋ      Repeat the "duck\n" that random number of times
         “ʋ¢»  Compresses string equivalent to "goose"
               Implicitly concatenated and returned

Versão mais legível: Experimente online!

Sempre retornará 1 ou 2 patos.


Parabéns! Eu literalmente não tenho idéia de como isso funciona!
AJFaraday

@AJFaraday Fui em frente e adicionei uma explicação para você
PunPun1000

@ PunPun1000 Desculpe, mas qual é a pilha? Jelly é uma linguagem de programação tácita.
user202729

@ user202729 Opa, eu tenho Jelly e 05AB1E bagunçados na minha cabeça, você poderia editá-lo para corrigir esse erro? Desculpe por isso
PunPun1000

Há uma concatenação implícita em Jelly? Yay!
MilkyWay90

43

Linguagem de script da operação Flashpoint , 48 bytes

f={s="duck\n";s+([s,""]select random 1)+"goose"}

Sempre imprime um ou dois patos.

random 1retorna um número (ponto flutuante) entre 0 e 1. Esse número é passado como argumento para selectjunto com a matriz [s,""]. O número aleatório é arredondado para o número inteiro mais próximo (0 ou 1) e o elemento da matriz nesse índice é selecionado na matriz.

Ligue para:

hint call f

Resultado:

Versão alternativa de 56 bytes:

f={s="duck\n";format[s+"%1goose",[s,""]select random 1]}

3
Sempre me alegra quando alguém usa isso no PCG.
Nit

Bem, eu esqueci que este jogo existia.
Caimen

38

World of Warcraft 81 bytes

Aqui está uma macro que você pode executar no World of Warcraft.

/run for x=1,random(1,9) do SendChatMessage("Duck") end; SendChatMessage("Goose")

11
Oh meu senhor ... Por que nunca pensei nisso.
Urna de polvo mágico

4
PVCG (Programação de jogos de vídeo e código de golfe). Operação Flashpoint era uma coisa, mas WoW? Estou esperando as soluções Minecraft e Factorio disso.
Brain Guider

2
@AnderBiguri Eu suspeito que o Minecraft faria um pouco pior do que 81 bytes (blocos?);)
Chris

5
Isso deve funcionar e você reduz a 58 bytes:/run for x=1,random(1,9)do print("Duck")end print("Goose")
gastropner 15/03

35

Minecraft <1.13, 72 54 bytes

Desculpe, eu tive que.

Instruções:

  • Crie um novo mundo Minecraft no Modo Criativo
  • Localize a pasta de salvar para esse mundo e coloque o seguinte código em data/functions/minecraft/ddg.mcfunction
  • Executar /function ddgno console do jogo

Como funciona:

Emite a palavra "pato" para todas as entidades do mundo e, em seguida, emite a palavra "ganso". Como as entidades estão constantemente desovando e desaparecendo, o número de "patos" não será consistente. Eu usei em tellrawvez do muito mais curto, sayporque saygera o nome da entidade, enquanto tellrawgera exatamente o que é dito.

execute @e ~ ~ ~ tellraw @a "duck"
tellraw @a "goose"

Captura de tela

insira a descrição da imagem aqui

Edit: Alterado {"text": "duck"} para apenas "duck" (e o mesmo com "ganso")


11
Bela. Precisamos de mais Minecraft em PPCG.
BradC

9
Vale ressaltar que você (o jogador) é uma entidade no mundo, portanto o número de patos nunca pode ser 0 (mesmo se não houver mobs hostis ou passivos).
BradC

11
@BradC, deve haver desafios inteiros baseados no Minecraft.
tox123

17

JavaScript, 45 44 42 39 37 bytes

Tem o potencial de produzir um erro de estouro.

f=_=>`duck
${new Date%2?f():`goose`}`

Teste-o

o.innerText=(
f=_=>`duck
${new Date%2?f():`goose`}`
)()
<pre id=o></pre>


14

Oitava , 38 33 bytes

Este não é o mais curto (são 36 bytes), mas é o meu favorito. A explicação está no fundo.

disp(['duck '+~(1:1/rand)';'goose'])

Experimente online!


Algumas variações mais curtas:

Isso funciona em princípio (33 bytes), mas os intérpretes online atingem o tempo limite:

disp(['duck '+~(1:now)';'goose'])

A adição de alguns bytes para diminuir a saída torna-o em 35 ou 36 bytes:

disp(['duck '+~(7e5:now)';'goose'])   % Works on octave-online.net
disp(['duck '+~(7.3e5:now)';'goose']) % Works on tio.run

Explicação:

Vou apenas explicar o último aleatório. Os outros são semelhantes, mas usam o número de dias desde 1º de janeiro de 0000 até hoje.

randretorna um número aleatório no intervalo (0, 1) . Assim, 1/randretorna um número maior que 1 . Como um intervalo 1:f, em que fum flutuador aleatório maior que 1 é idêntico a 1:floor(f), 1:1/randcria um intervalo 1 .. x , onde x> = 1 .

Vou tentar explicar isso como se o Octave fosse uma linguagem baseada em pilha.

      'duck '                           % Push the string 'duck ' to the stack
               (1:1/rand)               % Push a vector 1... floor(1/rand)
              ~(1:1/rand)'              % Negate the vector (making it all zeros)
                                        % and transpose it.
             +                          % Add 'duck ' with the vertical vector of zeros
                                        % to implicitly duplicate the string r times
     [                    ;'goose']     % Push the string 'goose' and concatenate
                                        % vertically with the rest
disp(                              )    % Display it all.

disp(['duck '+~pwd';'goose'])? Não tenho certeza se isso é "indeterminado" o suficiente
Luis Mendo

12

Perl 5 , 20 bytes

Primeiro, um prático de 26 bytes:

Patos 1 a 9 vezes antes de serem ganso.

say"Duck
"x(1+$^T%9),Goose

Experimente online!

Mas se você tiver muita memória e tempo, essa versão de 20 bytes (como sugerida por Chris ) também funcionará:

say"Duck
"x$^T,Goose

Isso também pressupõe que o problema do ano 2038 será resolvido para o Perl 5 , caso contrário, será inválido por 1 segundo em 20 anos.


Se você mudar 1+$^T%9para just $^T, ele ainda funcionará e você salvará 4 bytes.
Chris

@ Chris Você obviamente tem mais memória do que eu. Ainda assim, aceitarei sua sugestão, já que existem computadores razoáveis ​​nos quais ela funcionará. Obrigado.
Ton Hospel

12

Python 2 , 36 34 bytes

print"duck\n"*((id(id)%5)+1),"goose"

Experimente Online!

A sugestão de Kevin Cruijssen nos leva a 34 bytes:

print"duck\n"*-~(id(id)%5),"goose"

3
Bem-vindo ao site, e boa primeira resposta!
caird coinheringaahing

Bem-vindo ao PPCG! Você pode golf dois bytes alterando ((id(id)%5)+1)para -~(id(id)%5)se livrar do parêntese. Dicas para jogar golfe em <todos os idiomas> e Dicas para jogar golfe em Python podem ser interessantes para ler. Aproveite sua estadia!
Kevin Cruijssen 13/03/19

11
Não pode id(id)ser id(0)ou estou faltando alguma coisa?
Jonathan Frech

@ Johnathan, olhar para id(0)alguns computadores diferentes sugere que é uma constante.
user2699

11
Um pouco mais intuitivo e não haveria mais bytes para chamar id([]). Isso deve inicializar uma lista distinta cada vez que o programa é executado, o que, em teoria, deve resultar consistentemente em diferentes endereços de memória.
jpmc26

11

Z Shell (+ wget e Netpbm), 168 160 150 148 145 135 120 bytes

d(){wget -O- bit.ly/$1|jpegtopnm|pamscale -w 64 -h 64};d DckDkGo|pnmtile 64 $[(RANDOM&7+1)*64]|pnmcat -tb - <(d g005eGG)

Não é a solução mais curta, mas tive vontade de dar uma reviravolta para esse desafio (inspirado na solução da @ AlexG para esse outro problema ).

Este script gera uma imagem PPM contendo entre 1 a 8 fotos de patos e uma imagem de um ganso na parte inferior na saída padrão. Ele baixa as duas imagens de origem da Wikipedia, portanto, é necessário acesso à Internet para que funcione.

Saída de amostra convertida em JPEG por meio de pnmtojpeg :

insira a descrição da imagem aqui


11
Isso totalmente fez o meu dia!
AJFaraday

Acabei de perceber que você é a mesma pessoa que propôs esse outro desafio ao qual me vinculei. xD Bem, estou feliz que você tenha gostado disso! = D
lucasb 23/03

Sim, há alguns temas nos meus desafios de código de golfe :) Eu definitivamente deveria dar pontos de bônus por respostas pictóricas.
AJFaraday

Isso não é uma brecha padrão para obter recursos externos?
MilkyWay90

10

R , 35 bytes

cat(rep("duck
",rexp(1)+1),"goose")

Experimente online!

rexp()produz um número aleatório a partir de uma função de decaimento exponencial. +1para garantir pelo menos um pato. Todas as linhas após a primeira incluem um espaço à esquerda (que é o separador padrão cat), mas isso é permitido.


11
A probabilidade de gerar mais de um pato é de exp(-1)cerca de 36,8%.
Giuseppe

Ele pede para imprimi-lo em cada linha. Eu acho que você deve adicionar "\ n" para o seu "pato"
Stuart Stevenson

3
@stuartstevenson Aqui, usei uma nova linha literal, e não \num byte mais curto. Se você visitar o "Experimente online!" link, você pode ver que o efeito é o mesmo.
user2390246

Em uma caixa do DOS / Windows, essa nova linha ainda teria dois (2) bytes. 0x0d0a
iluminado

10

Bash , 39 38 37 bytes

sed s/[0-9]/duck\\n/g<<<$RANDOM\goose

Experimente online!

Imprime um número de patos igual ao número de dígitos em um número inteiro distribuído uniformemente em [0,32767] (portanto, mais frequentemente do que não, cinco patos (um bom número de patos)).

-1 byte cada, graças a @Chris e @sch apontando pares de aspas que não estavam aumentando seu peso.


11
Bem-vindo ao PPCG!
Steadybox

11
Você pode economizar um byte, eliminando as aspas simples, desde que substitua \npor \\n.
Chris

11
Boa ideia. Você pode fazer algo semelhante com apenas construções bash e sem sed por 30 bytes.
Digital Trauma

11
sed s/[0-9]/duck\\n/g<<<$RANDOM\goosepode raspar um byte
sch

11
O sednão é totalmente portátil. Em algumas plataformas, você pode se safar com uma única barra invertida \n. Em outros, você não receberá uma nova linha, não importa o que faça.
tripleee 19:18

9

Pure Bash (sem utilitários externos), 25

Com base na resposta da @ SophiaLechner , isso também imprime um bom número de patos .

A idéia de @ OlivierDulac de usar o PID do shell de script como armazenado no $parâmetro economiza 5 bytes.

echo "${$//?/duck
}"goose

Experimente online .


11
se assumirmos que você lança um programa, ele sempre recebe um pid diferente. muitas vezes, ele tem 5 dígitos, mas nem sempre. portanto: mude RANDOMpara $para barbear 5 bytes E também se poderia fazer uma seqüência muito longa de patos:yes duck|head -n $$;echo goose
Olivier Dulac

@OlivierDulac sim, acho que usar $$é aceitável - obrigado!
Digital Trauma

de nada! Eu postei a minha outra versão ( yes duck | head -n $$;echo goose) como uma alternativa (mais do que o seu, mas um recebe um lote de patos para 5 caracteres extras ^^)
Olivier Dulac


8

Bash + Coreutils, 36 27 bytes

yes duck|sed $$q;echo goose

Imprime muitos patos (entre 2 e cat /proc/sys/kernel/pid_max) e depois um ganso.

Economizou nove bytes graças ao Digital Trauma e Olivier Dulac.

Experimente online! (mas lembre-se de que ele pode ser truncado ocasionalmente)

Mesmo comprimento, mas sem echo:

yes duck|sed $${agoose'
q}'

Experimente online!

aé o comando append in sede qsai. Ambos são executados apenas na linha $$, o que corresponde ao PID.


Bash tem módulo, embora isso aumente o tamanho. Tentehead -n $((1+(RANDOM % 5)))
tripleee 13/03/19

@tripleee Como se trata de código de golfe, é preferível aumentar o tamanho da saída do que aumentar esse tamanho do código. E 132767 patos é absolutamente razoável em comparação com o bilhão ou mais que você vê em outros lugares;)
Chris

11
Claro, só espero ser útil caso alguém realmente queira aplicar essa pesquisa inovadora na prática um dia. Como, TIO . 44 bytes com alguns espaços removidos.
Tripleee 14/0318

@OlivierDulac sugeriu usar em $$vez de $RANDOMpara a minha resposta . Eu acho que você poderia usar o mesmo para economizar 5 bytes. Ah, e tente sedtambém:yes duck|sed 1$$q;echo goose
Digital Trauma

Na verdade, yes duck|sed $$q;echo gooseestá tudo bem - eu não acho que seu script tenha um PID <1. #
Digital Trauma

7

PowerShell , 35 30 28 bytes

,"duck"*((Random)+1)
"goose"

Experimente online! (versão modificada)

Gera uma matriz de Get-Randomnúmero de itens. Pode demorar um pouco. Isso adiciona um +1para garantir que obtemos pelo menos um duck. A versão modificada também inclui um -masinalizador ximo 5para que você possa ver o programa funcionando conforme o esperado (a versão modificada imprimirá 1, 2, 3 ou 4 ducks antes da goose).

A matriz e a goosecadeia solitária são deixadas no pipeline e o implícito Write-Outputnos fornece valores separados por nova linha gratuitamente.

Você não sabe o quão difícil foi para mim não mudar a última linha para "pato cinza" ...


Essa variante parece muito divertido, e definitivamente um desafio código ... Eu recomendo que você espere um par de dias e postá-lo como um desafio de sua própria :)
AJFaraday

11
@AdmBorkBork, este Minnesotan se juntou a este grupo para marcar com +1 o seu pato cinza.
Milwrdfan

0..(random)|%{'duck'};'goose'parece um 29 e também gerará algo em torno de [int] :: MaxValue (2,1 bilhões) de patos antes de um ganso. (E 0..0não imprimir um pato)
TessellatingHeckler

@TessellatingHeckler Obrigado, mas acabei de criar uma versão de 28 bytes. :)
AdmBorkBork



6

Braquilog , 24 21 bytes

-3 bytes graças a Erik, o Outgolfer

"duck"ẉ4ṙ0∧"goose"w∨↰

Experimente online!

Em comemoração ao idioma do mês , meu primeiro post no braquilog. O fluxo de controle nesse idioma é legal.

Como funciona:

"duck"ẉ4ṙ0∧"goose"w∨↰
"duck"ẉ                 print duck with a new line
       4ṙ               choose a random number in the range is [0, 4]
         0              verify it equals zero
          ∧             and (short circuits)
           "goose"w     print goose without a newline
                   ∨    or (if it did not equal zero)
                    ↰   repeat the procedure

Então, se estou lendo isso direito, lê da esquerda para a direita, de baixo para cima?
AJFaraday

2
A linguagem tenta encontrar uma verdade lógica usando apenas a primeira linha do programa. Meu programa diz "Valide a segunda linha e depois imprima ganso". Em seguida, a segunda linha diz "imprima o pato, valide um número aleatório de 0 a 4 é 0 ou valide essa linha novamente", então tecnicamente da esquerda para a direita apenas a linha superior, todos os predicados que você chamar a partir daí
PunPun1000

Legal, é tão interessante descobrir como os novos idiomas funcionam. Chegou à minha caixa de entrada, mas não tenho certeza se é porque fiz a pergunta ou porque já tinha comentado aqui.
AJFaraday

Você pode mesclar os dois predicados como esse e me amarrar.
Erik the Outgolfer

6

Geometry Dash World 2.2 Editor - 4 objetos

Imagem do nível do traço da geometria

Explicação:

O gatilho BG é o gatilho aleatório do 2.2 atual; portanto, alterna o ID do grupo 1 ou 2.

O primeiro "DUCK" tem um ID de grupo 1, o que faz com que 50% de chance de ser removido ou não (alternado).

Não há nenhum objeto com o ID do grupo 2 neste nível, portanto há 50% de chance de 2 "DUCK "s serem exibidos.

Como reproduzir isso:

O primeiro "DUCK" possui um ID de grupo 1.

insira a descrição da imagem aqui

Goose e 2nd duck não têm um ID de grupo insira a descrição da imagem aqui

Dentro do gatilho aleatório. insira a descrição da imagem aqui


Sinto um tema para este desafio
Benjamin Urquhart

@BenjaminUrquhart What?
MilkyWay90 18/03

Há envios para Word of Warcraft, Minecraft e outros jogos também.
Benjamin Urquhart

2
@BenjaminUrquhart Melhor encontrar mais jogos para responder em
MilkyWay90

5

05AB1E , 15 14 bytes

'Ðœ₁Ωи`.•zíΘ•»

Experimente online!

Irá imprimir 2, 5 ou 6 patos e depois ganso.

-1 byte graças a @Emigna usando 'para uma única palavra compactada (duck)


11
Você pode usar, 'Ðœpois duck é uma única palavra.
Emigna

11
Bate o meu:['ÐœTΩ#].•zíΘ•»
Magic Octopus Urn

@MagicOctopusUrn Eu realmente gosto da sua abordagem de loop infinito. Sua resposta é definitivamente mais no espírito do desafio (ou o que deveria ter sido?), Pois pode gerar uma quantidade infinita de patos.
Kaldo

@Kaldo ainda, 15 bytes perde para o seu;)
Magia Octopus Urna

11
14-byter alternativo:'Ðœ₁Ω.D.•zíΘ•»
Magic Octopus Urn


5

Retina , 17 bytes

?\\K`duck
K`goose

Experimente online!

Experimente online!

Imprime 1 ou 2 patos, com igual probabilidade.

Explicação

?\\K`duck

Defina a sequência de trabalho como ducke imprima-a com um avanço de linha à direita ( \). Em seguida, isso é envolto em outro estágio de saída, mas este possui o sinalizador aleatório ( ?) aplicado, portanto, ele imprime apenas com uma probabilidade de 50%.

K`goose

Substitua o duckpor goose, que é impresso implicitamente no final do programa.

Aqui está uma alternativa divertida que imprime 1 pato com 50% de probabilidade, 2 patos com 25%, 3 patos com 12,5% ...:

\K`duck
?+\G`
K`goose

5

Vim (script) no Linux, 46. 43 bytes (49.46 com :no início da linha)

.!date +0\%N\%s6
s/6.*/goose
s/\d/duck\r/g

Executado como vim -S filenameou colado na execução vimcom :antes de cada linha.


2
Bem-vindo ao PPCG! Você deve poder usar de \dnovo [0-9]. Além disso, parece que vim não requer o final de linha, de modo que este pode ser de 45 bytes :)
H.PWiz

Bem-vindo ao PPCG!
Steadybox

5

> <> , 31 22 bytes

"duck"a>x
r"esoog"<>o<

Experimente online!

-9 bytes com base na revisão Não é uma árvore


11
Você pode remover l?!;e sair com um erro.
Emigna

11
E você poderia poupar algum mais parecido com este
Emigna

11
Ou como esta .
Não é uma árvore

3
@ Notatree Eu recebo esse para imprimir algumas vezes "\ nkcud \ nkcud ...". Raramente se comporta corretamente
Suppen

11
@Suppen Basta usar uma seta em vez de um espelho para corrigi-la; veja editar.
KSmarts 13/0318

5

Befunge 98 , 38 30 25 bytes

"esooG"v>:#,_@
"Duck"a<?<

Experimente online!

  • Obrigado @JoKing por tirar o trampolim inútil
  • Mudar para o Befunge 98 para uma nova linha mais curta - agora Duckcabe em uma única string

11
Você não precisa o #na segunda linha
Jo rei

E "tecnicamente", whitespace within a line is finede modo que você pode cortar um par de aspas (mesmo que a saída parece estranho)
Jo Rei

@JoKing Obrigado, veja minha edição.
Vincent

5

T-SQL , 70 44 43 bytes (muitos patos)

while rand()<.9print'duck'print'duck
goose'

Obrigado @Zac Faragher!

Versão revisada, 54 43 40 bytes (1 ou 2 patos)

Obrigado @BradC!

if rand()<.5print'duck'print'duck
goose'


Não consigo fazer isso funcionar corretamente no SQL Fiddle , mas funciona muito bem no LINQPad e no SSMS.

Não tenho certeza se essa é uma limitação conhecida do SQL Fiddle ou estou apenas fazendo algo errado


Agradável. Down to 61 se mudar selectpara printe substituir a final 'duck'select'goose'com 'duck(linebreak)goose'(com uma quebra de linha literal, é claro)
BradC

Na verdade, você pode apenas fazer while rand()<.5print'duck'print'duck(linebreak)goose'para 43.
BradC

Bom, obrigado @BradC. Existe outra maneira de representar uma quebra de linha em uma string que não seja adicionar um char (13)?
Provavelmente

Sim, literalmente, coloque um retorno dentro das aspas, editarei sua postagem para mostrar a você (os comentários não mostram retornos).
BradC

11
Economize mais 3 bytes: altere o primeiro whilepara if. Imprime (aleatoriamente) um ou dois patos, o que (acredito) ainda satisfaz o desafio.
BradC

5

Powershell - 31 30 bytes

Aviso : é provável que você acabe com muitos patos. Randominclui os valores de 0 a Int32.MaxValueisso, dependendo de quão aleatório você é o número, isso pode ser muito grasnado.

1..(Random)|%{"Duck"};"Goose"

Você não deveria precisar da $frente (Random). Experimente online!
21818 AdmBorkBork

@AdmBorkBork obrigado pela captura!
SomeShinyObject



4

Befunge

57 35 bytes (o perímetro de todo o campo é 19x3 17x2 caracteres) Agradecemos a Karhell pela melhoria.

55+"kcud",,,,,#v?
  @,,,,,"goose"<

A segunda linha coloca duck e uma nova linha na pilha (para trás) e a produz como uma string. Após essa chance de 75% de voltar ao início e imprimir o duck novamente, 25% (quando o ponto de interrogação decide diminuir) para imprimir o ganso e parar.


Se uma chance de 50% de ganso é aceitável, 55+"kcud",,,,,#v?(linebreak here) @,,,,,"goose"< iria cortar o seu código até 35 bytes
karhell

Ah, o doce embrulho. Você está certo, obrigado, postarei uma atualização mais tarde!
rael_kid
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.