# exercism bowling challenge

15 messages
Open this post in threaded view
|

## exercism bowling challenge

 hello, I need now to make code that calculates the full score of a bowling game like one of the tests shown. test09_ConsecutiveStrikesEachGetTheTwoRollBonus     | result |     result := bowlingCalculator         scoreAfterRolling: #(10 10 10 5 3 0 0 0 0 0 0 0 0 0 0 0 0).     self assert: result equals: 81 What I thougt of solving this is to make a class BowlingCalculator and a class Frame and first convert the numbers to a frame. the Frame class should then have two instance variables throw1 and throw2 where throw2 can be null if the first throw is 10. Then to calculate the total score I can check if the first number is 10 if so, take the next frame and sum them up. if not, check if the total of a frame is 10 if so, take the first number out of the next frame and sum them up if both are not true , then sum only the frame and then in all cases goto the next frame. Can this plan be working or is there improvements to this plan. Roelof
Open this post in threaded view
|

## Re: exercism bowling challenge

 Op 21-9-2020 om 18:49 schreef Roelof Wobben via Pharo-users: hello, I need now to make code that calculates the full score of a bowling game like one of the tests shown. test09_ConsecutiveStrikesEachGetTheTwoRollBonus     | result |     result := bowlingCalculator         scoreAfterRolling: #(10 10 10 5 3 0 0 0 0 0 0 0 0 0 0 0 0).     self assert: result equals: 81 What I thougt of solving this is to make a class BowlingCalculator and a class Frame and first convert the numbers to a frame. the Frame class should then have two instance variables throw1 and throw2 where throw2 can be null if the first throw is 10. Then to calculate the total score I can check if the first number is 10 if so, take the next frame and sum them up. if not, check if the total of a frame is 10 if so, take the first number out of the next frame and sum them up if both are not true , then sum only the frame and then in all cases goto the next frame. Can this plan be working or is there improvements to this plan. Roelof No respons after 3 days. Pity
Open this post in threaded view
|

## Re: exercism bowling challenge

 Hi Roelof, I always wonder, what kind of answer you expect from your prior statement. To your question: "Can this plan be working or is there improvements to this plan." I can have this answer: Yes, it could be both: working or fail, but you don't know before you try. This exercise is a bit tricky: 1) I can recommend to use also LastFrame class, which has specific handling of bonuses in last round of game (subclass of Frame). Bowling game can be then initialized with array 9 Frame instances and last instance could be LastFrame. I used specific test methods on frame classes like: #isFrameComplete, #isLastFrame, #isSpare, #isStrike, #isOpen. 2) Beware that Bowling game should know only necessary things and delegate responsibility to its frames. Game itself knows that only if all frames are completed, game ends. 3) Total score is sum of all throws+bonuses of individual frames, etc. Does it help to start with exercise? David ----- David Bajger -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html David Bajger
Open this post in threaded view
|

## Re: exercism bowling challenge

 Op 24-9-2020 om 13:42 schreef DavidBajger: > Hi Roelof, > I always wonder, what kind of answer you expect from your prior statement. > To your question: "Can this plan be working or is there improvements to this > plan." I can have this answer: Yes, it could be both: working or fail, but > you don't know before you try. > > This exercise is a bit tricky: > 1) I can recommend to use also LastFrame class, which has specific handling > of bonuses in last round of game (subclass of Frame). Bowling game can be > then initialized with array 9 Frame instances and last instance could be > LastFrame. I used specific test methods on frame classes like: > #isFrameComplete, #isLastFrame, #isSpare, #isStrike, #isOpen. > 2) Beware that Bowling game should know only necessary things and delegate > responsibility to its frames. Game itself knows that only if all frames are > completed, game ends. > 3) Total score is sum of all throws+bonuses of individual frames, etc. > > Does it help to start with exercise? > David > > > > > > ----- > David Bajger > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.htmlThanks, Maybe I have to make it more clear. What I trying to ask and what you have answered. Do I use the right classes or too much classes there. So if my idea of using these classes are right. What you wrote is what I had in mind with 2  classes but the idea of a lastFrame could also be working. and I also agree with you about the responsibilities of the classes. Roelof
Open this post in threaded view
|

## Re: exercism bowling challenge

 Op 24-9-2020 om 13:52 schreef Roelof Wobben via Pharo-users: > Op 24-9-2020 om 13:42 schreef DavidBajger: >> Hi Roelof, >> I always wonder, what kind of answer you expect from your prior >> statement. >> To your question: "Can this plan be working or is there improvements >> to this >> plan." I can have this answer: Yes, it could be both: working or >> fail, but >> you don't know before you try. >> >> This exercise is a bit tricky: >> 1) I can recommend to use also LastFrame class, which has specific >> handling >> of bonuses in last round of game (subclass of Frame). Bowling game >> can be >> then initialized with array 9 Frame instances and last instance could be >> LastFrame. I used specific test methods on frame classes like: >> #isFrameComplete, #isLastFrame, #isSpare, #isStrike, #isOpen. >> 2) Beware that Bowling game should know only necessary things and >> delegate >> responsibility to its frames. Game itself knows that only if all >> frames are >> completed, game ends. >> 3) Total score is sum of all throws+bonuses of individual frames, etc. >> >> Does it help to start with exercise? I forget to say it helpes me  to see if i m thinking the "right" way
Open this post in threaded view
|

## Re: exercism bowling challenge

Open this post in threaded view
|

## Re: exercism bowling challenge

Open this post in threaded view
|

## Re: exercism bowling challenge

 Administrator In reply to this post by Richard O'Keefe Richard O'Keefe wrote > there is obviously no unique "right" factoring of this problem into > classes. This. And, in my experience, with non-trivial problems, some (many?) times you just have to try to implement an idea to see if it's really going to work because it's just too hard to see all the way into the future. ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html Cheers, Sean
Open this post in threaded view
|

## Re: exercism bowling challenge

 Administrator On Thu, Sep 24, 2020, 18:08 Sean P. DeNigris <[hidden email]> wrote:Richard O'Keefe wrote > there is obviously no unique "right" factoring of this problem into > classes. This. And, in my experience, with non-trivial problems, some (many?) times you just have to try to implement an idea to see if it's really going to work because it's just too hard to see all the way into the future.It's hard to see the future, but there are tricks to help.For something like this, work out a few games on paper. Get a sense of how the numbers play together.Then, anthropomorphise the problem. Imagine yourself to be a film director or some other kind of manager. You don't want to do the work; that's what your staff is for. Who do you need to train to do the work? How many jobs are there to do? Can multiple people doing the same task get the job done faster?Ultimately, the job of a programmer is to delegate the work to others, and to teach them how to do their jobs. That teaching part is actually writing code. The different people doing different tasks correspond to the objects in in an OO solution.As the other Richard seemed to suggest, this isn't an object rich problem. It's largely a question of how to implement an algorithm.Working examples on paper will help with internalising how to do it. ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Open this post in threaded view
|

## Re: exercism bowling challenge

 > > As the other Richard seemed to suggest, this isn't an object rich > problem. It's largely a question of how to implement an algorithm. > > Working examples on paper will help with internalising how to do it. > Oops, and I thinking of a solution with 3  classes. the given class a class Frame which is responsibility is to convert the numbers into frames and validate it a class ScoreBoard which is responsibility is too calculate the score Roelof
Open this post in threaded view
|

## Re: exercism bowling challenge

Open this post in threaded view
|

## Re: exercism bowling challenge

Open this post in threaded view
|