CS61A: Projeto HOG (Parte 1)

cs61a:-projeto-hog-(parte-1)

Introdução

O curso CS 61A da Universidade da Califórnia, Berkeley, é um curso de introdução à ciência da computação. Ele busca fornecer uma base sólida em programação, abordando conceitos fundamentais de estruturas de dados, algoritmos e paradigmas de programação. O curso é conhecido por sua ênfase em Python como a linguagem principal de programação e pela abordagem prática e desafiadora.

Esta publicação vai focar no primeiro projeto desta disciplina que é chamado ‘O jogo de Hog’. Eu confesso que não conhecia este jogo até começar a fazer este desafio, continuo não tendo o jogado mas compreendi as regras que são explicadas na página do projeto.

Ainda não terminei de fazer este desafio, então vou publicar meus sucessos, dúvidas e dificuldades como forma de estudo e buscar trabalhar em cima da minha comunicação também. O projeto está divido em fases e cada fase possui uma série de problemas a serem solucionados.

Fase 1: Problema 1

Implemente a função roll_dice em hog.py. Esta função recebe dois argumentos: um número inteiro positivo chamado num_rolls recebendo o número de vezes que o dado será rolado e uma função dice. Esta função retornará o número de pontos ao rolar o dado aquele número de vezes em uma rodada: será tanto a soma de suas saídas ou 1 (Sow Sad).

  • Sow Sad. Se qualquer resultado do dado lançado for 1, a pontuação do jogador na rodada será 1.

Exemplos

  • Exemplo 1: O jogador da rodada joga o dado 7 vezes, 5 destas são 1. A pontuação do turno será 1.
  • Exemplo 2: O jogador da rodada joga o dado 4 vezes, em todas são 3. Como Sow Sad não ocorreu, a pontuação do turno ao jogador será de 12.

Solução

  1. Uma dica muito importante é dada na descrição do problema. Segue a dica:

You should call dice() exactly num_rolls times in the body of roll_dice.`

Acredito que seja natural ao observar os exemplos, já pensar numa situação do uso de condicionais para verificar se o valor de algum dos dados é 1.

  • Se for 1, retornar 1.

O problema desta forma de pensar é que não será atendido a condição de ter que chamar a função dice() o mesmo número de vezes que num_rolls. Já que o retornar dentro de um loop é uma condição de parada, logo a função não mais será chamada.

Minha alternativa para este problema foi colocar uma flag para ser atendida. A partir do momento que encontra o valor 1, o loop continua rodando a quantidade num_rolls de vezes e a partir da flag posso, com outra condicional, retornar o valor da resposta.

Solução

Conclusão

Tive um momento a-há ao trocar o for _ in range() por um while. A partir daí, todos os meus testes foram aprovados e usar flags para indicar que uma ação aconteceu, acredito que tenha tornado o meu código com maior clareza.

Quero buscar falar de cada problema que for fazendo e aprimorar minha capacidade de solucionar problemas, espero que isto ajude a quem buscar fazer este curso.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
how-to-gain-buy-in-for-content-marketing

How to Gain Buy-In for Content Marketing

Next Post
-9-ways-to-grow-your-saas

🧠 9 ways to grow your SaaS

Related Posts