[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.06,0:00:03.27,Default,,0000,0000,0000,,Aqui está onde paramos com\Nnosso jogo da moeda. Dialogue: 0,0:00:03.28,0:00:06.34,Default,,0000,0000,0000,,Começamos gerando um número\Naleatório entre 0 e 1, Dialogue: 0,0:00:06.34,0:00:09.07,Default,,0000,0000,0000,,e então arredondando o número\Npara o inteiro mais próximo. Dialogue: 0,0:00:09.07,0:00:12.15,Default,,0000,0000,0000,,Então isto nos deu um número\Nque era ou 0 ou 1. Dialogue: 0,0:00:12.15,0:00:15.59,Default,,0000,0000,0000,,E então nós ilustramos nossa moeda\Nsuper-realista com esta elipse Dialogue: 0,0:00:15.59,0:00:18.80,Default,,0000,0000,0000,,que era ou roxa ou amarela,\Ndependendo de qual número era. Dialogue: 0,0:00:18.80,0:00:20.80,Default,,0000,0000,0000,,E aqui está o código onde fizemos isso. Dialogue: 0,0:00:20.80,0:00:24.52,Default,,0000,0000,0000,,Dissemos que se o inteiro é igual a 0\Ndefina a cor de preenchimento para roxa, Dialogue: 0,0:00:24.52,0:00:26.33,Default,,0000,0000,0000,,caso contrário, defina como amarelo. Dialogue: 0,0:00:26.33,0:00:27.98,Default,,0000,0000,0000,,E então desenhamos uma moeda aqui. Dialogue: 0,0:00:27.98,0:00:30.94,Default,,0000,0000,0000,,Mas agora eu decidi que na verdade,\Nminha moeda tem três lados. Dialogue: 0,0:00:30.94,0:00:32.56,Default,,0000,0000,0000,,Sim, uma moeda de três lados. Dialogue: 0,0:00:32.56,0:00:34.44,Default,,0000,0000,0000,,Então vamos adicionar um terceiro lado. Dialogue: 0,0:00:34.44,0:00:37.35,Default,,0000,0000,0000,,Começarei fazendo um número de 0 a 2, Dialogue: 0,0:00:37.35,0:00:41.83,Default,,0000,0000,0000,,depois que arrendondarmos isso,\Nele me dará um inteiro que será 0, 1 ou 2. Dialogue: 0,0:00:41.83,0:00:43.92,Default,,0000,0000,0000,,Mas se olharmos para\No código de desenho, Dialogue: 0,0:00:43.92,0:00:46.05,Default,,0000,0000,0000,,estamos contando apenas\Npara dois casos aqui. Dialogue: 0,0:00:46.05,0:00:49.35,Default,,0000,0000,0000,,Então se o inteiro é 0, torne-a roxa,\Ncaso contrário, torne-a amarela. Dialogue: 0,0:00:49.35,0:00:52.00,Default,,0000,0000,0000,,Mas agora, 'caso contrário' pode\Nsignificar ou 1 ou 2. Dialogue: 0,0:00:52.00,0:00:54.85,Default,,0000,0000,0000,,Mas espere, e se eu fizesse a\Nmesma coisa que fizemos antes, Dialogue: 0,0:00:54.85,0:00:57.38,Default,,0000,0000,0000,,mas dentro deste bloco {\i1}else{\i0}.\NEntão escreverei apenas: Dialogue: 0,0:00:57.38,0:01:03.67,Default,,0000,0000,0000,,{\i1}if integer{\i0} é igual a 1 então defina a\Ncor de preenchimento para amarela, Dialogue: 0,0:01:03.67,0:01:05.63,Default,,0000,0000,0000,,como era antes. Dialogue: 0,0:01:05.63,0:01:10.90,Default,,0000,0000,0000,,{\i1}else{\i0}, definiremos a cor para\Nvermelha. Vermelho está muito bom. Dialogue: 0,0:01:10.92,0:01:15.45,Default,,0000,0000,0000,,O que isso significa é, se {\i1}integer{\i0} é\Nigual a 0, defina a cor para roxo. Dialogue: 0,0:01:15.50,0:01:18.83,Default,,0000,0000,0000,,caso contrário, se é igual a 1,\Nnós a tornaremos amarela. Dialogue: 0,0:01:18.97,0:01:24.33,Default,,0000,0000,0000,,senão, ou seja, se não for 0, não for 1, \Ndeve ser 2, tornaremos a cor vermelha. Dialogue: 0,0:01:24.33,0:01:27.37,Default,,0000,0000,0000,,Pressiono reiniciar um monte de vezes. \NFunciona! Dialogue: 0,0:01:28.55,0:01:31.23,Default,,0000,0000,0000,,Logo, se quisermos adicionar\Nmais lados à minha moeda, Dialogue: 0,0:01:31.23,0:01:35.68,Default,,0000,0000,0000,,eu posso subir aqui, e fazer de 0 até 3,\Ne depois aprofundar o bloco {\i1}else{\i0} Dialogue: 0,0:01:35.68,0:01:37.87,Default,,0000,0000,0000,,e adicionar mais {\i1}if-else's{\i0}\Ne assim por diante, Dialogue: 0,0:01:37.87,0:01:40.14,Default,,0000,0000,0000,,até eu ter zilhões de blocos aninhados. Dialogue: 0,0:01:40.14,0:01:44.67,Default,,0000,0000,0000,,E apenas depois eu vou perceber que este\Ncódigo está nojento! Quero dizer, grosso! Dialogue: 0,0:01:44.67,0:01:48.65,Default,,0000,0000,0000,,O código deve ser fácil de ler e bonito,\Nnão tão feio quanto possível. Dialogue: 0,0:01:48.65,0:01:50.39,Default,,0000,0000,0000,,Por isso, isto é o que vamos fazer: Dialogue: 0,0:01:50.39,0:01:53.05,Default,,0000,0000,0000,,Sempre que você tiver apenas\Numa declaração {\i1}if{\i0} única Dialogue: 0,0:01:53.05,0:01:55.46,Default,,0000,0000,0000,,ou uma declaração {\i1}if-else{\i0}\Ndentro de um bloco {\i1}else{\i0} Dialogue: 0,0:01:55.46,0:01:58.68,Default,,0000,0000,0000,,tal que signifique que não faremos\Nnada mais fora destes blocos, Dialogue: 0,0:01:58.68,0:02:04.97,Default,,0000,0000,0000,,não estamos definindo a cor do traço,\Nnão temos mais declarações {\i1}if{\i0}, nada. Dialogue: 0,0:02:04.97,0:02:06.95,Default,,0000,0000,0000,,Tudo que temos é essa\Núnica declaração {\i1}if{\i0}, Dialogue: 0,0:02:06.95,0:02:08.72,Default,,0000,0000,0000,,e talvez ela venha com\Num bloco {\i1}else{\i0}. Dialogue: 0,0:02:08.72,0:02:12.82,Default,,0000,0000,0000,,Depois, podemos combinar esta condição\Ncom a linha anterior e dizer: Dialogue: 0,0:02:12.82,0:02:17.56,Default,,0000,0000,0000,,{\i1}else if{\i0} integer é igual a 1, defina a\Ncor de preenchimento para amarelo. Dialogue: 0,0:02:17.56,0:02:20.44,Default,,0000,0000,0000,,e este último bloco {\i1}else{\i0} não está\Naninhado em lugar algum, Dialogue: 0,0:02:20.44,0:02:22.38,Default,,0000,0000,0000,,apenas vem bem no final por si só. Dialogue: 0,0:02:22.38,0:02:23.15,Default,,0000,0000,0000,,Ótimo! Dialogue: 0,0:02:23.15,0:02:27.56,Default,,0000,0000,0000,,Agora isso significa que, se {\i1}integer{\i0}\Né igual a 0, defina a cor para roxo, Dialogue: 0,0:02:27.56,0:02:30.06,Default,,0000,0000,0000,,caso contrário se {\i1}integer{\i0} é igual a 1,\Ndefina a cor para amarelo, Dialogue: 0,0:02:30.10,0:02:34.13,Default,,0000,0000,0000,,caso contrário, ou seja, se ambas forem\Nfalsas, então defina-a para vermelho. Dialogue: 0,0:02:34.13,0:02:37.61,Default,,0000,0000,0000,,Pressiono reiniciar um monte de vezes\Ne você pode ver que ainda funciona Dialogue: 0,0:02:37.61,0:02:41.77,Default,,0000,0000,0000,,Ótimo! E a coisa legal disso é que podemos\Nter quantos {\i1}else-if{\i0} 's quisermos, Dialogue: 0,0:02:41.77,0:02:44.96,Default,,0000,0000,0000,,o que torna muito fácil para mim\Nadicionar mais lados à minha moeda. Dialogue: 0,0:02:44.96,0:02:48.60,Default,,0000,0000,0000,,Então vamos fazer isso agora.\NFarei um número entre 0 e 3, Dialogue: 0,0:02:48.60,0:02:56.17,Default,,0000,0000,0000,,e então apenas adicionarei um bloco {\i1}else{\i0}\Na mais: {\i1}else if integer{\i0} é igual a 2. Dialogue: 0,0:02:56.22,0:02:58.26,Default,,0000,0000,0000,,Definiremos a cor de preenchimento para... Dialogue: 0,0:02:58.26,0:03:00.68,Default,,0000,0000,0000,,bem, estava vermelha antes\Nentão vamos mantê-la. Dialogue: 0,0:03:00.68,0:03:04.26,Default,,0000,0000,0000,,Depois, este último bloco {\i1}else{\i0} será\Npara quando um integer for igual a 3, Dialogue: 0,0:03:04.26,0:03:08.07,Default,,0000,0000,0000,,ele o tornará azul. Ótimo! Dialogue: 0,0:03:08.57,0:03:09.55,Default,,0000,0000,0000,,Tudo certo. Então... Dialogue: 0,0:03:09.55,0:03:13.08,Default,,0000,0000,0000,,para que façamos isso, você sempre terá\Nque começar com uma declaração {\i1}if{\i0} , Dialogue: 0,0:03:13.08,0:03:16.44,Default,,0000,0000,0000,,e depois você pode ter\Nquantos {\i1}else-if{\i0} 's quiser, Dialogue: 0,0:03:16.44,0:03:18.28,Default,,0000,0000,0000,,e então este último cara é opcional. Dialogue: 0,0:03:18.28,0:03:21.89,Default,,0000,0000,0000,,Na verdade, podemos fazer sem ele,\Ne é possível que todos estes sejam falso, Dialogue: 0,0:03:21.89,0:03:23.78,Default,,0000,0000,0000,,então nenhum destes blocos é executado. Dialogue: 0,0:03:23.78,0:03:25.73,Default,,0000,0000,0000,,Porém, contanto que tenhamos aquilo lá, Dialogue: 0,0:03:25.73,0:03:29.97,Default,,0000,0000,0000,,então exatamente um destes\Nblocos será executado. Dialogue: 0,0:03:29.97,0:03:36.28,Default,,0000,0000,0000,,Legal? Agora este é o caso onde você diz:\N{\i1}if else-if else-if else{\i0}, Dialogue: 0,0:03:36.29,0:03:41.52,Default,,0000,0000,0000,,ou apenas usa as boas e velhas declarações\N{\i1}if{\i0} como tínhamos no início, Dialogue: 0,0:03:41.52,0:03:45.76,Default,,0000,0000,0000,,então se o {\i1}integer{\i0} é igual a 3. Dialogue: 0,0:03:45.76,0:03:51.29,Default,,0000,0000,0000,,E isso é porque nunca é possível para \N{\i1}integer{\i0} ser igual a 0, e também 1, 2 ou 3. Dialogue: 0,0:03:51.29,0:03:53.93,Default,,0000,0000,0000,,Ótimo. Então essas condições \Nsão mutuamente exclusivas. Dialogue: 0,0:03:53.93,0:03:56.92,Default,,0000,0000,0000,,Sempre, apenas um destes blocos\Nirá executar de qualquer forma. Dialogue: 0,0:03:56.92,0:03:58.43,Default,,0000,0000,0000,,Mas esse não é sempre o caso. Dialogue: 0,0:03:58.43,0:04:01.64,Default,,0000,0000,0000,,E se tentarmos criar um jogo como\Neste sem arrendondar um inteiro? Dialogue: 0,0:04:01.64,0:04:04.06,Default,,0000,0000,0000,,Vou me livrar desta parte\Nonde nós o arredondamos, Dialogue: 0,0:04:04.06,0:04:06.92,Default,,0000,0000,0000,,e a outra parte onde\Nnós desenhamos a tela. Dialogue: 0,0:04:06.92,0:04:09.30,Default,,0000,0000,0000,,E vamos criar algumas regras\Nnovas para o meu jogo. Dialogue: 0,0:04:09.30,0:04:12.93,Default,,0000,0000,0000,,Então ainda estou gerando um\Nnúmero entre 0 e 3, Dialogue: 0,0:04:12.93,0:04:16.63,Default,,0000,0000,0000,,ponha mais alguma marca\Nde escala na linha de número. Dialogue: 0,0:04:16.63,0:04:22.52,Default,,0000,0000,0000,,Vamos dizer que se o número cair\Nentre 0 e 1 nós o tornaremos roxo. Dialogue: 0,0:04:22.52,0:04:26.68,Default,,0000,0000,0000,,Oh, isso não parece mesmo com\Num 'p'. Você entendeu. Dialogue: 0,0:04:26.68,0:04:31.06,Default,,0000,0000,0000,,E se cair entre 1 e 2,\Npodemos fazê-lo amarelo. Dialogue: 0,0:04:31.06,0:04:34.50,Default,,0000,0000,0000,,E se cair entre 2 e 3, nós\No tornaremos vermelho. Dialogue: 0,0:04:34.50,0:04:39.34,Default,,0000,0000,0000,,Ótimo. Vamos ver como podemos\Nfazer isso com {\i1}if{\i0} e {\i1}else-if{\i0} 's Dialogue: 0,0:04:39.34,0:04:43.47,Default,,0000,0000,0000,,Eu posso começar dizendo se\Num número é menor que 1, Dialogue: 0,0:04:43.47,0:04:48.22,Default,,0000,0000,0000,,então se é menor que 1,\Ne eu sei que é entre 0 e 3, Dialogue: 0,0:04:48.22,0:04:50.86,Default,,0000,0000,0000,,então deve estar neste intervalo, Dialogue: 0,0:04:50.86,0:04:55.20,Default,,0000,0000,0000,,depois, eu definirei a cor de\Npreenchimento para ser roxa. Dialogue: 0,0:04:55.20,0:05:01.80,Default,,0000,0000,0000,,Senão, se o número é menor que 2, \Nposso definir a cor de preenchimento Dialogue: 0,0:05:01.80,0:05:05.31,Default,,0000,0000,0000,,para ser amarelo... 255... Dialogue: 0,0:05:06.65,0:05:12.58,Default,,0000,0000,0000,,E caso contrário, definirei o\Npreenchimento para ser vermelho. Dialogue: 0,0:05:12.58,0:05:16.18,Default,,0000,0000,0000,,Ótimo. Funciona exatamente\Ncomo pretendido. Dialogue: 0,0:05:16.18,0:05:19.81,Default,,0000,0000,0000,,Se um número for menor que 1,\Nentão novamente, está neste intervalo. Dialogue: 0,0:05:19.81,0:05:23.54,Default,,0000,0000,0000,,Caso contrário, ser for mair que \Nou igual a 1, mas for menor que 2, Dialogue: 0,0:05:23.54,0:05:26.76,Default,,0000,0000,0000,,tal que o ponha neste intervalo,\Niremos definir a cor para amarelo. Dialogue: 0,0:05:26.76,0:05:31.62,Default,,0000,0000,0000,,Senão, ele será maior ou igual a 2,\Nentão cairá naquele intervalo. Dialogue: 0,0:05:31.62,0:05:36.17,Default,,0000,0000,0000,,E aqui está um caso que não poderíamos\Ndizer {\i1}if number < 2{\i0}, Dialogue: 0,0:05:36.17,0:05:39.14,Default,,0000,0000,0000,,e {\i1}if number < 3{\i0}, Dialogue: 0,0:05:39.14,0:05:42.76,Default,,0000,0000,0000,,porque se {\i1}number{\i0} é menor que 1,\Nentão será definitivamente menor que 2, Dialogue: 0,0:05:42.76,0:05:44.37,Default,,0000,0000,0000,,e também será menor que 3. Dialogue: 0,0:05:44.37,0:05:46.80,Default,,0000,0000,0000,,Então nossa moeda sempre\Nirá terminar em vermelho, Dialogue: 0,0:05:46.80,0:05:49.97,Default,,0000,0000,0000,,e é por isso que neste caso,\Né realmente útil termos {\i1}else-if{\i0}. Dialogue: 0,0:05:49.97,0:05:53.00,Default,,0000,0000,0000,,[Legendado por: Carlos A. N. C. R.]\N[Revisado por: Fernando dos Reis]