\documentclass[a4paper, oneside, 10pt]{article}
\usepackage[unicode]{hyperref}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\date{\today}
\title{}
\author{}
\begin{document}



\section{\texorpdfstring{Versão mais detalhada das funções}{Versao mais detalhada das funoes}}
\label{sec:versao_mais_detalhada_das_funoes}


\subsubsection{\texorpdfstring{Plano A: Preenchendo a ficha de Dungeons and Dragons}{Plano A Preenchendo a ficha de Dungeons and Dragons}}
\label{sec:plano_a_preenchendo_a_ficha_de_dungeons_and_dragons}


\textbf{Entrada:} fichaDnD (\texttt{atrib}, \texttt{ord}, \texttt{alinh}, \texttt{rac}, \texttt{clas}, \texttt{antec})\\
\texttt{atrib} = Escolha do modo como os atributos serão escolhidos (vetor composto por caracteres escolhendo um destes, “aleatório” ou “fixo”)\\
\texttt{ord} = Ordem dos atributos, do que terá o maior valor para o menor em sequência (vetor composto por 6 caracteres, “For”, “Des”, “Com”, “Int”, “Sab”, “Car”, na ordem desejada pelo usuário)\\
\texttt{alinh} = Escolha o seu alinhamento (vetor composto por caracteres escolhendo um destes, “LB”, “LN”, “LM”, “CB”, “CN”, “CM”, “NB”, “N” ou “NM”)\\
\texttt{rac} = Escolha da raça do personagem (vetor composto por caracteres escolhendo um destes, “anão”, “elfo”, “halfling”, “humano”, “draconato”, “gnomo”, “meio-elfo”, “meio-orc” ou “tiefling”)\\
\texttt{clas} = Escolha da classe do personagem (vetor composto por caracteres escolhendo um destes, “bárbaro”, “bardo”, “clérigo”, “druida”, “guerreiro”, “monge”, “paladino”, “arqueiro”, “ladino”, “feiticeiro”, “bruxo”, “mago”)\\
\texttt{antec} = Escolha dos antecedentes do personagem (vetor composto por caracteres escolhendo um destes, “acólito”, “artesão de guilda”, “artista”, “charlatão”, “criminoso”, “eremita”, “forasteiro”, “herói do povo”, “marinheiro”, “nobre”, “órfão”, “sábio”, “soldado”)

\textbf{Pseudo-código:}

1- Criar os objetos que vão compor a saída:\\
Data frame \emph{atributos}\\
Data frame \emph{dados.gerais}\\
Data frame \emph{teste.resist}\\
Data frame \emph{habilidades.pro}\\
Data frame \emph{habilidades.tot}\\
Vetor \emph{magias}\\
Data frame \emph{especiais}\\
Data frame \emph{caracteristicas}\\
Data frame \emph{equipamentos}\\
Data frame \emph{proficiencias}\\
Data frame \emph{info}

2- A partir do método para determinar os atributos que foi escolhido \texttt{atrib} fazer:\\
- Sorteio dos valores (uso de um \textbf{for} para colocar cada valor sorteado em um atributo diferente)\\
OU\\
- Usar os valores fixos determinados no livro do jogador

3- Com os valores definidos, ordená-los conforme o argumento \texttt{ord} e guardar no objeto \emph{atributos}; criar vetor concatenando os dados de percepção passiva e iniciativa (vão compor futuramente o objeto \emph{dados.gerais})

4- Usar de \textbf{if}s encadeados para cada possível raça \texttt{rac}. Para cada uma delas somar os valores necessários aos \emph{atributos}; criar um vetor com os dados da velocidade (vai entrar futuramente em \emph{dados.gerais}) e preencher o data frame \emph{info}. Se as características alterarem outros objetos, criar os vetores ou fazer as alterações correspondentes

5- Usar de \textbf{if}s encadeados para cada possível classe \texttt{class}. Preencher tanto o cabeçalho como parte dos dados de \emph{especiais}; criar vetor contendo o hit dice, número de hit dices e o bônus de proficiência (vão entrar em \emph{dados.gerais}); preencher o data frame \emph{proficiencias}; preencher o data frame \emph{equipamentos}; preenche parte do data frame \emph{teste.resist}; preencher tanto o cabeçalho como os dados para o vetor \emph{magias}; preencher o data frame \emph{habilidades.pro}.

6- Usar de \textbf{if}s encadeados para cada possível alinhamento \texttt{alinh}. Preencher o primeiro campo de \emph{caracteristicas}.

7- Usar de \textbf{if}s encadeados para cada possível antecedente \texttt{antec}. Preencher o resto do data frame \emph{caracteristicas}. Para isso é necessário sortear as características dentre as diferentes possibilidades apresentadas no livro do jogador (usando \textbf{for}) e checar a compatibilidade com o alinhamento usando de \textbf{if}s. 

8.1- Acrescentar ao data frame \emph{atributos} os modificadores dos atributos

8.2- Distribuir os valores dos testes de resistência no data frame \emph{teste.resist} a partir dos modificadores dos atributos guardados em \emph{atributos} e somar o bônus de proficiência quando for proficiente naquele teste de resistência

8.3- Distribuir os valores das habilidades no data frame \emph{habilidades.tot} a partir dos modificadores dos atributos guardados em \emph{atributos}

8.4- Cálculo dos bônus de ataque corpo a corpo e à distância a partir da proficiência (dentro de \emph{dados.gerais}) + modificador de atributo (dentro de \emph{atributos}) e acrescentar no data frame \emph{especiais}

9- Retornar ao usuário texto informando sobre alguns cálculos que não serão feitos (como calcular a classe de armadura e como ela é afetada pelo uso de escudo E explicar como são alterados os valores das habilidades quando se é proficiente nelas) usando a função \textbf{message}

Retornar lista com todos os objetos criados

\subsubsection{\texorpdfstring{Plano B: Escolha de disciplinas da pós graduação}{Plano B Escolha de disciplinas da pos graduaao}}
\label{sec:plano_b_escolha_de_disciplinas_da_pos_graduaao}


\textbf{Entrada:} disciplinas.ofeRecidas (\texttt{dia}, \texttt{inic}, \texttt{fim}, \texttt{cred}, \texttt{loc}, \texttt{per})\\
\texttt{dia} = dia da semana a ser escolhido (vetor composto por caracteres, escolhendo um destes, “segunda”, “terça”, “quarta”, “quinta”, “sexta”, “vários” e “qualquer”)\\
\texttt{inic} = mês de início da disciplina (vetor composto por números inteiros onde 0 \textless  inic \textless  13)\\
\texttt{fim} = mês de término da disciplina (vetor composto por números inteiros onde 0 \textless  fim \textless  13)\\
\texttt{cred} = número de créditos oferecidos (vetor composto por números inteiros onde 0 \textless  cred \textless  11 )\\
\texttt{loc} = Instituto ou faculdade em que serão procuradas as disciplinas (vetor composto por caracteres, escolhendo entre o nome de qualquer uma das Comissões de Pós Graduação listadas dentre as disciplinas oferecidas no Janus ou o argumento “todas”)\\
\texttt{per} = Período do dia em que a disciplina será ministrada (vetor composto por caracteres, escolhendo um destes, “manhã”, “tarde”, “noite”, “integral” e “qualquer”)

\textbf{Pseudo-código:}

1- Criar o objeto que vai compor a saída: Data frame \emph{disciplinas}

2- Ler as informações da página “Disciplinas oferecidas” do sistema Janus a partir do URL e criar um data frame contendo os códigos em uma coluna e os nomes das CPGs em outra

3- De acordo com o argumento \texttt{loc}, obter o código correspondente ao \texttt{loc} no data frame (usando indexação) e acessar a página do local escolhido pelo código obtido (usando do URL)\\
- Ler as informações da página do local escolhido e criar um data frame contendo os códigos em uma coluna e os nomes das Área de Concentração em outra\\
- Acessar as áreas de concentração usando os códigos no URL\\
- Ler as informações da página contendo as disciplinas e criar um data frame contendo os códigos em uma coluna e os nomes das disciplinas em outra\\
- Usando o código de cada disciplina, acessar pelo URL a página da Turma\\
- Fazendo buscas por indexação na página da Turma, guardar os dados referentes ao código da disciplina, nome da disciplina, data inicial, data final, número de créditos, dia da semana e horário no objeto \emph{disciplinas}

4- De acordo com os argumentos de \texttt{dia}, \texttt{inic}, \texttt{fim}, \texttt{cred} e \texttt{per}, fazer buscas em \emph{disciplinas} usando de indexação para selecionar apenas as disciplinas compatíveis com as exigências dos argumentos\\
- Caso existam disciplinas que correspondam a todos os argumentos pedidos retornar o data frame \emph{disciplinas} com a lista das disciplinas selecionadas e as informações sobre as mesmas\\
- Caso não existam disciplinas que correspondam a todos os argumentos pedidos retornar “Infelizmente não foram encontradas disciplinas com as características desejadas”

Saída:
Data frame \emph{disciplinas} com as informações das disciplinas filtradas pela função (n linhas - número de disciplinas, vai variar de acordo com a busca- e 7 colunas)

\end{document}
