Advertisement
Eshkation-

Tarefa semanal I

Feb 24th, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.76 KB | None | 0 0
  1. --[[
  2. Tarefa I - Disposição de dados
  3. 19/02/2018 - 23/02/2018
  4. Dificuldade:
  5.     ★★☆☆☆ (10 pontos de glória)
  6. Descrição:
  7.     Uma dos pilares no desenvolvimento de um programa é a forma como os dados são mostrados para o usuário. No exemplo abaixo nós possuimos uma tabela chamada {dados} com nomes de jogadores e algumas informações. A tarefa da semana é mostrar esses dados em uma textarea seguindo o modelo:
  8.  
  9.         Jogador1 - n° de abates / n° de mortes /  n° de assistências (ratio)
  10.         Jogador2 - 5 / 1 / 0 (5)
  11.         [...]
  12.  
  13.         As tags de cores utilizadas são:
  14.             Amarelo - <J>
  15.             Vermelho - <R>
  16.             Verde - <V>
  17.             Azul - <BV>
  18.             Branco - <N>
  19.  
  20.         O ratio deve ser calculado utilizando a seguinte fórmula:
  21.             ratio = (abates + assistencias) / mortes
  22.  
  23.     Código da textarea (não pode ser alterado seus valores além do texto a ser mostrado!):
  24.         ui.addTextArea(0, final, nil, 5, 25, nil, nil, nil, nil, 1, true)
  25.  
  26.     Tabela com os dados:
  27.         local dados = {
  28.             Eshkation = {
  29.                 mortes = 5,
  30.                 abates = 10,
  31.                 assistencias = 0
  32.             },
  33.             Ikkemon = {
  34.                 mortes = 7,
  35.                 abates = 2,
  36.                 assistencias = 8
  37.             },
  38.             Ratinho = {
  39.                 mortes = 0,
  40.                 abates = 0,
  41.                 assistencias = 0
  42.             }
  43.         }
  44.  
  45.     Boa escrita!
  46. ]]---
  47.  
  48.  
  49. -- O primeiro passo é definir a tabela {dados}
  50. local dados = {
  51.     Eshkation = {
  52.         mortes = 5,
  53.         abates = 10,
  54.         assistencias = 0
  55.     },
  56.     Ikkemon = {
  57.         mortes = 7,
  58.         abates = 2,
  59.         assistencias = 8
  60.     },
  61.     Ratinho = {
  62.         mortes = 0,
  63.         abates = 0,
  64.         assistencias = 0
  65.     }
  66. }
  67.  
  68. -- Depois criar uma função para ser chamada e interagir com a tabela:
  69. function ler_dados()
  70.     -- Vamos definir uma string para o texto final a ser mostrado:
  71.     local final = ''
  72.  
  73.     -- utilizamos o for para retornar todos os valores da tabela {dados}
  74.     for jogador, data in pairs(dados) do
  75.         -- vamos calcular o ratio antes e armazenar ele na variável {ratio}
  76.         local ratio = 0
  77.         -- ATENÇÃO: o número de mortes pode ser 0, então não vamos obter um número ao fazer a divisão, logo utilizamos uma condição:
  78.         if (data.mortes > 0) then
  79.             ratio = (data.abates + data.assistencias)/data.mortes
  80.         else
  81.             ratio = (data.abates + data.assistencias)
  82.         end
  83.         -- Agora montamos a string final com os dados para cada jogador, não esquecendo do \n para pular linha:
  84.         final = final..string.format('<N>%s - <J>%d</J> / <R>%d</R> / <V>%d</V> (<BV>%s</BV>)\n', jogador, data.abates, data.mortes, data.assistencias, ratio)
  85.     end
  86.     -- Fora do loop, vamos mostrar a textarea
  87.     ui.addTextArea(0, final, nil, 5, 25, nil, nil, nil, nil, 1, true)
  88. end
  89.  
  90. -- Agora basta chamar a função ler_dados!
  91. ler_dados()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement