%cabeçalho para todos os capítulos
%\input{cabecalho}

%\begin{document}

%Opções para o pacote listings
%\input{listingOptions}

\chapter{Teatro de Objetos}

\section{Introdução}

O Teatro de Objetos é uma atividade realizada com os alunos de Introdução
à Ciência da Computação durante a primeira aula da disciplina. O objetivo
é fazer com que os alunos vivenciem um jogo interativo do qual participem
vários \char`\"{}objetos\char`\"{} realizando diferentes formas de
ações e comunicações. Os conceitos de orientação a objetos empregados
no teatro não são explicitamente explicados já na primeira aula mas
serão abordados ao longo da disciplina. A primeira metade da primeira
aula é dedicada a uma conversa informal com os alunos explicando quais
são os objetivos desta disciplina (e do curso inteiro, se for o caso).
É também interessante fazer perguntas sobre contatos prévios que os
alunos tiveram com informática e com programação. É bom deixar claro
que a disciplina pode ser acompanhada por uma pessoa que nunca viu
um computador na frente em sua vida, mas que não é uma disciplina
fácil, é preciso se empenhar. Na segunda metade da aula, dizemos aos
alunos que vamos exercitar as suas habilidades dramáticas: para ilustrar
o funcionamento de um programa de computador complexo, nós vamos fazer
de conta que somos partes de um programa de computador trabalhando
em conjunto para atingir um certo objetivo. Podemos fazer um certo
suspense sobre qual é o objetivo (simular uma disputa de pênaltis)
e sobre como ele será alcançado.


\section{Disputa de Pênaltis}

A \char`\"{}peça\char`\"{} encenada em 2003 representará uma disputa
de pênaltis entre dois times e contará com a participação de cerca
de 26 atores desempenhando 8 papéis. Os papéis são:

\begin{itemize}
\item Técnico (2 atores)
\item Juiz (1 ator)
\item Bandeirinha (2 atores)
\item Gandula (1 ator)
\item Jogador. Os jogadores são divididos em dois tipos:

\begin{itemize}
\item Goleiro (2 atores desempenham este papel)
\item Batedor de pênalti (10 atores)
\end{itemize}
\item Torcedor. Os torcedores são divididos em dois tipos:

\begin{itemize}
\item Torcedor educado (4 atores)
\item Torcedor mal-educado (4 atores)
\end{itemize}
\end{itemize}
O professor será responsável por escolher os alunos que desempenharão
cada papel. Se houver limitação de espaço, é conveniente que os 8
torcedores fiquem em suas próprias carteiras para não tumultuar muito
o ambiente. Obviamente, o professor pode também aumentar ou diminuir
o número de torcedores e de batedores de pênalti. Para desempenhar
o papel de torcedores, uma boa dica é o professor escolher alunos
que pareçam bem barulhentos e faladores (por exemplo, a turma do fundão).
Ao escolher os atores, o professor deverá entregar um cartão preso
com um barbante que ficará pendurado no pescoço do ator e conterá
informações sobre o papel desempenhado pelo autor. As informações
são:

\begin{enumerate}
\item Nome do papel
\item Mensagens que o personagem é capaz de entender
\item Atributos do personagem
\end{enumerate}
Os três tipos de informação acima já devem vir pré-escritos
à caneta no cartão mas o valor dos atributos do personagem devem ser
escritos na hora à lápis pelo professor. Alguns papéis, como o Juiz,
não possuem nenhum atributo. Outros papéis podem possuir um ou mais
atributos, o Jogador, por exemplo pode possuir como atributos o nome
do time ao qual pertence e o número da sua camisa. No caso de o jogador
ser um Goleiro, o atributo número da camisa pode vir escrito à caneta
como valendo 1.

Além deste cartão que fica pendurado no pescoço do ator, cada ator
recebe um script descrevendo o seu comportamento: para cada mensagem
recebida pelo ator, o script descreve quais ações devem ser tomadas
pelo ator.

O professor não deve se esquecer de trazer uma bola para esta atividade
e deve tomar cuidado para que nenhuma janela seja quebrada durante
a realização da atividade. O tempo total estimado para a realização
da atividade é de 60 minutos.

Eis uma descrição detalhada dos dados que deverão aparecer nos cartões
descritivos e no script (comportamento) de cada um dos 26 atores participantes
da encenação.

\begin{enumerate}
\item Goleiro

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Goleiro
\item Mensagens que entende: \texttt{SuaVez}, \texttt{Cobrança Autorizada}, \texttt{VenceuOTimeX}
\item Atributos: \texttt{Time:}, \texttt{Camisa número:} 1
\end{itemize}
\item Comportamento (\emph{Script})

\begin{itemize}
\item mensagem: \texttt{SuaVez} $\Rightarrow$ ação: posiciona-se na frente do gol e fica
esperando pela cobrança do pênalti.
\item mensagem: \texttt{CobrançaAutorizada} $\Rightarrow$ ação: concentra-se na bola que será
chutada pelo adversário e faz de tudo para não deixar que a bola entre no gol. O goleiro não pode
se adiantar antes do chute do adversário. Após a cobrança sair do gol para dar lugar ao goleiro
adversário.
\item mensagem: \texttt{VenceuOTimeX} $\Rightarrow$ ação: se \texttt{TimeX} é igual ao atributo
\texttt{Time} no seu cartão de identificação, comemore; caso contrário, xingue o juiz
(polidamente! :-).
\end{itemize}
\end{itemize}
\item Batedor de Pênalti

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Batedor de Pênalti
\item Mensagens que entende: \texttt{SuaVez}, \texttt{CobrançaAutorizada}, \texttt{VenceuOTimeX}
\item Atributos: \texttt{Time:}, \texttt{Camisa número:}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{SuaVez} $\Rightarrow$ ação: posiciona-se na frente da
bola e fica esperando pela autorização do juiz.
\item mensagem: \texttt{CobrançaAutorizada} $\Rightarrow$ ação: chuta a bola
tentando marcar um gol. Após a cobrança voltar para junto do seu
técnico para dar lugar à próxima cobrança.
\item mensagem: \texttt{VenceuOTimeX} $\Rightarrow$ ação: se \texttt{TimeX} é igual ao
atributo \texttt{Time} no seu cartão de identificação,
comemore; caso contrário, xingue o juiz (polidamente! :-).
\end{itemize}
\end{itemize}
\item Torcedor Educado

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Torcedor Educado
\item Mensagens que entende: \texttt{Ação}, \texttt{VenceuOTimeX}
\item Atributos: \texttt{Time:}, \texttt{Camisa número: 12}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{Ação} $\Rightarrow$ ação: assista ao
jogo emitindo opiniões inteligentes sobre o andamento
da peleja e manifestando o seu apreço e desapreço pelo desenrolar
da disputa.
\item mensagem: \texttt{VenceuOTimeX } $\Rightarrow$ ação: se \texttt{TimeX} é igual ao
atributo \texttt{Time} no seu cartão de identificação,
comemore e faça um comentário elogioso sobre o seu time; caso contrário,
elogie o adversário e parabenize o seu time pelo empenho.
\end{itemize}
\end{itemize}
\item Torcedor Mal-Educado

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Torcedor Mal-Educado
\item Mensagens que entende: \texttt{Ação}, \texttt{VenceuOTimeX}
\item Atributos: \texttt{Time:}, \texttt{Camisa número: 12}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{Ação} $\Rightarrow$ ação: assista ao
jogo emitindo opiniões duvidosas sobre o andamento
da peleja e manifestando a sua raiva ou alegria pelo desenrolar do
jogo.
\item mensagem: \texttt{VenceuOTimeX} $\Rightarrow$ ação: se \texttt{TimeX} é igual ao
atributo \texttt{Time} no seu cartão de identificação,
xingue o adversário. Caso contrário, xingue o adversário desesperadamente
(mas, por favor, não se esqueça que estamos em uma universidade).
\end{itemize}
\end{itemize}
\item Juiz

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Juiz
\item Mensagens que entende: \texttt{Ação}, \texttt{Irregularidade}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{Ação} $\Rightarrow$ ação: coordene
o andamento da disputa de pênaltis enviando mensagens
\texttt{SuaVez} para o técnico do time batedor e para o goleiro defensor a
cada nova batida. Quando os personagens estiverem apostos, emita a
mensagem \texttt{CobrançaAutorizada}. Faça a contagem de gols e quando houver
um vencedor, emita a mensagem \texttt{VenceuOTimeX} onde \texttt{TimeX} é o nome do
time vencedor. A disputa de pênaltis é feita alternadamente,
5 cobranças para cada time. Se não houver um ganhador
após as 5 cobranças, são feitas novas cobranças
alternadamente até que haja um vencedor.
\item mensagem: \texttt{Irregularidade} $\Rightarrow$ ação: se a mensagem foi enviada por
um Bandeirinha, ignore a cobrança recém-efetuada e ordene que ela
seja repetida enviando a mensagem \texttt{RepitaCobrança} ao técnico apropriado.
\end{itemize}
\end{itemize}
\item Gandula

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Gandula
\item Mensagens que entende: \texttt{CobrançaAutorizada}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{CobrançaAutorizada} $\Rightarrow$ ação: preste atenção
à cobrança do pênalti. Após a conclusão
da cobrança, pegue a bola e leve-a de volta à marca de pênalti.
\end{itemize}
\end{itemize}
\item Técnico

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Técnico
\item Mensagens que entende: \texttt{SuaVez}, \texttt{RepitaCobrança}, \texttt{VenceuOTimeX}
\item Atributos: \texttt{Time:}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{SuaVez} $\Rightarrow$ ação: escolha um dos seus jogadores
para efetuar a cobrança e envie-o a mensagem \texttt{SuaVez}. Não
repita jogadores nas 5 cobranças iniciais.
\item mensagem: \texttt{RepitaCobrança} $\Rightarrow$ ação: envie a mensagem
\texttt{SuaVez} para o jogador que acabou de efetuar a cobrança.
\item mensagem: \texttt{VenceuOTimeX} $\Rightarrow$ ação: se \texttt{TimeX} é igual ao atributo
\texttt{Time} no seu cartão de identificação, comemore; caso contrário, diga que o seu time
foi prejudicado pela arbitragem e que futebol é uma caixinha de surpresas.
\end{itemize}
\end{itemize}
\item Bandeirinha

\begin{itemize}
\item Cartão de Identificação

\begin{itemize}
\item Nome do Papel: Bandeirinha
\item Mensagens que entende: \texttt{Cobrança Autorizada}, \texttt{VenceuOTimeX}
\end{itemize}
\item Comportamento

\begin{itemize}
\item mensagem: \texttt{CobrançaAutorizada} $\Rightarrow$ ação: verifique se
o goleiro realmente não avança antes de o batedor
chutar a bola. Caso ele avance, envie uma mensagem \texttt{Irregularidade}
para o Juiz.
\item mensagem: \texttt{VenceuOTimeX} $\Rightarrow$ ação: se \texttt{TimeX} não
é o nome do time da casa, distancie-se da torcida pois você
acaba de se tornar um alvo em potencial.
\end{itemize}

\end{itemize}
\end{enumerate}

%\end{document}
