11.2. Registar jogadores no jogo

Agora precisamos de um método que permita registar um jogador no jogo. Adicionamos o seguinte método à classe Jogo:

O método cria um novo jogador, com o nome dado pelo parâmetro, e adiciona-o ao conjunto de jogadores do jogo.

Que índice devemos usar para indicar o elemento do array jogadores ao qual deve ser atribuído o novo jogador? A primeira vez que o método é chamado deve ser zero, a segunda vez deve ser um e assim sucessivamente.

Repare que o índice a usar tem o mesmo valor que o número de jogadores registados no jogo no momento em que se vai registar um novo jogador (quando há zero jogadores em jogo, o próximo jogador deve ser atribuído ao elemento de índice zero do array, quando há um jogador em jogo, o próximo jogador deve ser atribuído ao elemento de índice um do array e assim sucessivamente).

Então, para que se possa guardar, para um jogo, quantos jogadores estão inscritos a cada momento, vamos adicionar um novo atributo de instância.

Adicionamos o atributo quantosEmJogo, o qual é inicializado a zero, e acrescentamos também um método que revela o seu valor. Mudamos também parte da pré-condição do método juntarJogador de forma a que as classes cliente saibam como podem verificar se o jogo não comporta mais jogadores (definimos um máximo de 5 jogadores).

Repare que usámos este novo atributo como o índice que faltava no método juntarJogador. Quando um jogador é acrescentado ao jogo, o valor desse atributo quantosEmJogo tem que ser incrementado, pois passa a existir mais um jogador registado no jogo.

Vamos agora adicionar a instrução seguinte

ao método main da classe ClienteDeJogo. As figuras seguintes ilustram o estado da memória em várias fases da execução desta instrução:

 

Vamos então relembrar o conteúdo da classe ClienteDeJogo e acrescentar ainda uma instrução que registe um segundo jogador no jogo:

Após a execução da última instrução do main, o estado da memória ficará:

 

 


 

Anterior: 11.1. A classe Jogo

Seguinte: 11.3. Registar pontuação de um dado jogador do jogo – 1ª versão