Pedra Papel Tesoura — App iOS — Swift 👊🤚✌️

Eduarda Mello
Apple Developer Academy PUCPR
5 min readNov 10, 2020

Nesse tutorial vou ensinar para iniciantes como fazer o jogo pedra, papel ou tesoura em swift, no Xcode.

Ele ficará parecido com esse:

1. Criar o projeto

O primeiro passo é clicar em "Create a new Xcode project".

Agora é preciso selecionar a opção iOS e depois "App" e clicar em next.

Agora basta escolher o nome do projeto, preencher as informações do team e organization identifier de acordo com os seus dados. Vamos escolher "Storyboard" como nossa interface, utilizaremos a linguagem Swift e não há necessidade de selecionarmos a opção de utilizar core data, nem incluir os testes.

Agora é só escolher onde você vai salvar o projeto!

2. Interface

Para mexermos na interface vamos abrir a pasta Main.storyboard.

Ao abrir o "Main.storyboard" você irá se deparar com a tela vazia de um iPhone. É aqui que iremos adicionar os elementos visuais do jogo.

Para começar iremos clicar no símbolo de "+" que é a library e iremos adicionar 2 labels, que estarão com o a pontuação de cada jogador, 2 imagens, que serão as imagens sorteadas para representar "pedra", "papel" ou "tesoura" e iremos também adicionar um botão, que será usado para acionar o sorteio.

Clique em “+”, onde a seta está indicando.

Clicando na library irá aparecer uma janela, na qual você poderá escolher os elementos que eu mencionei.

Library

Basta arrastar para dentro do mockup do iPhone os elementos que eu mencionei: 2 labels, 2 imageViews e 1 button. Eles deverão ficar na disposição da imagem abaixo.

PS: para mudar de lugar, basta arrastá-los e para mudar o tamanho, basta clicar no elemento e você conseguirá modificar.

Como deverá ficar a disposição dos elementos.

Agora você pode adicionar constraints nos elementos para q eles fiquem nessas posições em qualquer tamanho de tela. Neste tutorial não irei mostrar como adicioná-las para não ficar muito extenso e depois farei um tutorial específico para ensinar como usar constraints.

Bom, agora precisamos mudar o texto das labels, do botão e adicionar as imagens no projeto.

Para mudar o texto da label é preciso clicar no elemento (1), depois escolher o quinto símbolo da barra lateral (2) e com ela selecionada terá a opção de mudar o texto da label (3).

Para mudar o texto do botão é bem parecido! A diferença é nas opções da barra lateral. Basta seguir a sequência da imagem abaixo e trocar o texto "Button" para "Começar"

Com isso feito, precisamos adicionar as imagens dentro do nosso projeto. Irei deixar aqui as imagens para baixar.

Para adicioná-las, precisaremos ir para a pasta "Assets.xcassets".

Agora é necessário que você arraste as imagens para dentro dessa pasta. Dessa maneira:

Para finalizar nossa interface, vamos voltar no arquivo "Main.storyboard" e vamos escolher qualquer uma das imagens para ficar de placeholder.

3. Lógica do jogo

Tudo o que acontece na interface pode ser alterado pelo código. Para podermos alterar o que está aparecendo nas imagens e nos textos precisamos ligá-los na nossa ViewController.

Para isso, enquanto estamos no "Main.storyboard" iremos ficar com a tecla "option" pressionada e clicaremos no arquivo "ViewController.Swift". Fazemos isso para termos nossa tela dividida, dessa maneira:

Para conectar as labels, as imagens e o botão é necessário clicar em cima do elemento segurando a tecla "control" e arrastar para a ViewController. Dessa maneira:

Ao conectar o Button é necessário escolher a opção action. Isso para termos a referência da ação de clique no botão, desse modo poderemos adicionar código para realizar alguma coisa na hora em que ele é clicado.

Ao final deste processo você terá algo parecido com isso:

A partir de agora iremos mexer apenas na ViewController.swift, então você pode fechar o Main.storyboard.

Vamos declarar mais duas variáveis que serão os contadores de pontos.

Agora vamos criar uma função chamada setHandleImage para nos ajudar na troca de imagens.

Ressalto que no UIImage(named: “rock”), "rock" é o nome da imagem que eu adicionei na pasta dos assets. Caso a sua imagem tenha outro nome, você precisa alterar para o nome da sua imagem.

Agora vamos começar a trabalhar dentro da ação do botão. Iremos começar sorteando um número para o computador e um para o jogador. Vamos definir que o número 1 representa pedra, número 2 representa papel e o número 3 representa tesoura.

Com o número sorteado, chegamos no momento em que usaremos a função que criamos para mostrar a imagem que representa o que foi sorteado. Na função vamos passar como primeiro parâmetro a variável que representa a imageView e no segundo vamos passar o número sorteado.

Agora vamos implementar a lógica de quem ganha de acordo com cada combinação possível.

Com isso feito, só falta mostrarmos a pontuação na tela.

4. Testar o app no simulador

Para testar o app no simulador basta escolhermos em qual dispositivo queremos que rode e então clicar em run.

Você pode acessar o código desse tutorial no meu github.

--

--

Eduarda Mello
Apple Developer Academy PUCPR

Desenvolvedora mobile, graduanda em Engenharia Eletrônica ⚡️ Compartilho mais conteúdos no Instagram @dudadev.