Solução por Anita Ramos
Este problema apresenta mais de uma solução, mas optei por explicar a que me pareceu mais simples por não exigir tanta manipulação com $$string$$ ou $$char$$ e sim mais com $$int$$, por mais que possa não ser a primeira ideia que surge para resolvê-lo.
A ideia consiste em cada palavra (pedra, papel, tesoura….) ter um número específico identificando-a. Esse número se baseia na primeira e na última letra de cada uma, já que não temos nenhuma palavra com essas duas letras iguais. Na verdade você poderia pegar qualquer par de letras (necessariamente 2 ou mais por conta das palavras “pedra” e “papel”), mas optei por essas. Para acessá-las, basta “chamar” o vetorchar[0] e o vetorchar[tamanho da palavra-1] (-1 já que começa com 0). Apenas lembrando que para saber o tamanho de um vetor de char temos a função $$strlen()$$. Depois apenas comparamos os números de identificação nesses 3 casos:
- Se eles forem iguais, as palavras são iguais, ou seja, empate;
- Se o lado esquerdo ganhar do direito, imprimi-se “Bazinga!”
- Se o lado direito ganhar (nenhum dos casos anteriores), imprimi-se “Raj trapaceou!”
Para determinar se o lado esquerdo ganha, apenas uso um $$if()$$ que checa se algum caso do lado esquerdo ganhar é verdade, sendo que cada palavra ganha de exatamente outras duas palavras. Exemplo: papel ganha da pedra e do Spock, ou seja, ganha de 2. Assim, eu apenas verifico todos os casos possíveis para cada palavra, totalizando 5 palavras -> 2 testes para cada = 10 opções possíveis.
Segue o código comentado para melhor compreensão da solução:
OBS: não se assuste com o seu tamanho, ele contém muitos comentários, mas o código em si é curto.
https://gist.github.com/anitainfo/22c072a6ad617aad46283265777f15e6
