Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Tarefa I - Disposição de dados
- 19/02/2018 - 23/02/2018
- Dificuldade:
- ★★☆☆☆ (10 pontos de glória)
- Descrição:
- 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:
- Jogador1 - n° de abates / n° de mortes / n° de assistências (ratio)
- Jogador2 - 5 / 1 / 0 (5)
- [...]
- As tags de cores utilizadas são:
- Amarelo - <J>
- Vermelho - <R>
- Verde - <V>
- Azul - <BV>
- Branco - <N>
- O ratio deve ser calculado utilizando a seguinte fórmula:
- ratio = (abates + assistencias) / mortes
- Código da textarea (não pode ser alterado seus valores além do texto a ser mostrado!):
- ui.addTextArea(0, final, nil, 5, 25, nil, nil, nil, nil, 1, true)
- Tabela com os dados:
- local dados = {
- Eshkation = {
- mortes = 5,
- abates = 10,
- assistencias = 0
- },
- Ikkemon = {
- mortes = 7,
- abates = 2,
- assistencias = 8
- },
- Ratinho = {
- mortes = 0,
- abates = 0,
- assistencias = 0
- }
- }
- Boa escrita!
- ]]---
- -- O primeiro passo é definir a tabela {dados}
- local dados = {
- Eshkation = {
- mortes = 5,
- abates = 10,
- assistencias = 0
- },
- Ikkemon = {
- mortes = 7,
- abates = 2,
- assistencias = 8
- },
- Ratinho = {
- mortes = 0,
- abates = 0,
- assistencias = 0
- }
- }
- -- Depois criar uma função para ser chamada e interagir com a tabela:
- function ler_dados()
- -- Vamos definir uma string para o texto final a ser mostrado:
- local final = ''
- -- utilizamos o for para retornar todos os valores da tabela {dados}
- for jogador, data in pairs(dados) do
- -- vamos calcular o ratio antes e armazenar ele na variável {ratio}
- local ratio = 0
- -- 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:
- if (data.mortes > 0) then
- ratio = (data.abates + data.assistencias)/data.mortes
- else
- ratio = (data.abates + data.assistencias)
- end
- -- Agora montamos a string final com os dados para cada jogador, não esquecendo do \n para pular linha:
- 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)
- end
- -- Fora do loop, vamos mostrar a textarea
- ui.addTextArea(0, final, nil, 5, 25, nil, nil, nil, nil, 1, true)
- end
- -- Agora basta chamar a função ler_dados!
- ler_dados()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement