Closed tomasnorre closed 9 months ago
Hello. Thanks for opening a PR on Exercism 🙂
We ask that all changes to Exercism are discussed on our Community Forum before being opened on GitHub. To enforce this, we automatically close all PRs that are submitted. That doesn't mean your PR is rejected but that we want the initial discussion about it to happen on our forum where a wide range of key contributors across the Exercism ecosystem can weigh in.
You can use this link%20from%20the%20default%20Source.%20It%20panics%20if%20n%20%3C=%200.%22%0D%0A%0D%0AMe:%20%0D%0A%0D%0A%3E%20I%20read%20that,%20also%20before%20posting.%20But%20doesn't%20it%20say%20between%200%20and%20100%20if%20rand.Intn(100)%20or%20what%20am%20I%20reading/misunderstanding%20wrong.%0D%0A%3E%20%0D%0A%3E%20Despite%20that%20either%20the%20two%20examples%20i%20linked%20to%20should%20fail%20or%20my%20should%20fail,%20they%20cannot%20both%20be%20right.%0D%0A%3E%20%0D%0A%3E%20Not%20my%20code,%20this%20could%20in%20my%20eyes%20potentially%20also%20return%2021.%0D%0A%3E%20%0D%0A%3E%20%60%60%60go%0D%0A%3E%20//%20RollADie%20returns%20a%20random%20int%20between%201%20and%2020%0D%0A%3E%20func%20RollADie()%20int%20%7B%0D%0A%3E%20%09return%201%20+%20rand.Intn(20)%0D%0A%3E%20%7D%0D%0A%3E%20%60%60%60%0D%0A%3E%20My%20code:%0D%0A%3E%20%60%60%60go%0D%0A%3E%20//%20RollADie%20returns%20a%20random%20int%20d%20with%201%20%3C=%20d%20%3C=%2020.%0D%0A%3E%20func%20RollADie()%20int%20%7B%0D%0A%3E%20%09return%20rand.Intn(19)%20+%201%0D%0A%3E%20%7D%0D%0A%3E%20%60%60%60%0D%0A%3E%20They%20cannot%20both%20be%20right.%0D%0A%0D%0AMentor:%0D%0A%3E%20rand.Intn(20)%20will%20return%20integers%20from%20range%200%20to%2019%20-%20note%20that%20the%200%20in%20included%20in%20the%20range%20while%2020%20it%20is%20not.%20In%20order%20to%20generate%20an%20int%20that%20can%20be%20in%20range%201%20-%2020%20you%20need%20to%20use%201%20+%20rand.Intn(20)%20or%20rand.Intn(20)%20+%201.%20The%20second%20example%20will%20generate%20an%20int%20in%20range%200-18%20and%20add%201%20to%20the%20final,%20returned%20value.%20The%20clue%20I%20meantioned%20is%20in%20the%20range%20-%20half-open%20interval%20%5B0,n)%0D%0A%0D%0AMe:%20%0D%0A%3E%20Thanks%20for%20your%20explanation%20will%20check%20it%20out%20tomorrow,%20and%20see%20if%20I%20understand%20it%20better,%20or%20even%20suggest%20an%20improvement%20to%20the%20code%20base.%0D%0A%0D%0ASo%20long%20story%20short,%20I%20think%20the%20solutions,%20my%20solution,%20with%20the%20%60return%20rand.Intn(19)%20+%201%60%20are%20incorrect,%20and%20my%20new%20improved%20tests%20will%20show%20that.%20The%20tests%20will%20now%20%22ensure%22%20more%20than%20before%20that%20all%20numbers%20are%20rolled,%20still%20within%20the%20scope%20of%201-20.%20Of%20course,%20there%20is%20still%20a%20small%20statics%20possibility%20that%20e.g.%2020%20is%20never%20rolled%20on%20100%20rolls.%0D%0A%0D%0AI%20can%20of%20course%20be%20completely%20wrong%20as%20I'm%20new%20to%20go,%20but%20would%20be%20happy%20to%20discuss%20this,%20so%20that%20we%20can%20get%20an%20improved%20code%20base.%0D%0A%0D%0ALet%20me%20know%20what%20you%20think.%20%0D%0A&category=go ) to copy this into a new topic on the forum. If we decide the PR is appropriate, we'll reopen it and continue with it, so please don't delete your local branch.
If you're interested in learning more about this auto-responder, please read this blog post.
Note: If this PR has been pre-approved, please link back to this PR on the forum thread and a maintainer or staff member will reopen it.
I had a conversation with my mentor exercise, Animal Magic, about the tests for the exercise.
I have pasted some of my observations/questions, and added an in my eyes, improved and more correct test.
Me:
Mentor:
Me:
Mentor:
Me:
So long story short, I think the solutions, my solution, with the
return rand.Intn(19) + 1
are incorrect, and my new improved tests will show that. The tests will now "ensure" more than before that all numbers are rolled, still within the scope of 1-20. Of course, there is still a small statics possibility that e.g. 20 is never rolled on 100 rolls.I can of course be completely wrong as I'm new to go, but would be happy to discuss this, so that we can get an improved code base.
Let me know what you think.