I was fairly confused by the wording of the exercise. Mainly of the following sentence.
After an action, you may not arrive at a state where the starting bucket is empty and the other bucket is full.
My understanding of that sentence was that the it is referring to the starting bucket of the current action. However, the sentence is referring to the initial starting bucket. I only realized that after checking the community solutions.
Maybe just to add an āinitialā. So it would read.
After an action, you may not arrive at a state where the initial starting bucket is empty and the other bucket is full.
If you want to get wordier, you could elaborate that this is the one that is supplied as a parameter in the call to the measure function of the exercise but pointing out that the sentence is referring to a single state should make it clearer.
I am not a native speaker, so maybe this is obvious, but I was not clear that the starting bucket is determined by the parameter you get in the call to the program.
From reading the text my assumption was that the starting bucket was referring to the source bucket of the current action (empty bucket, fill bucket, or pour the content of one bucket into the other). So potentially the starting bucket could change with every action.
Iām not a native speaker either, but personally I find āstarting bucketā easier to understand than āinitial bucketā.
If āstarting bucketā is unclear because it might refer to the starting bucket of the current action, then how about āinitial starting bucketā?
I think āinitial starting bucketā is clearer and should be consider.
However I do want to ask OP whether or not if they read the whole exercise, because there is a clear example later on explaining the situation quite well .
Another Example: Bucket one can hold 3 liters, and bucket two can hold up to 5 liters. You are told you must start with bucket one. So your first action is to fill bucket one. You choose to empty bucket one for your second action. For your third action, you may not fill bucket two, because this violates the third rule -- you may not end up in a state after any action where the starting bucket is empty and the other bucket is full.
I must admit I skipped the last sentence in the example. That clarifies it pretty much. My bad. However, if you want to put it into the description more prominently, I would go with āinitial starting bucketā.
How about āvery first bucketā instead of āinitial starting bucketā? āInitial startingā feels a bit odd to me too. If it adds clarity, then I donāt mind it being odd, but maybe just rewording the sentence in general would help?
I have created a pull request for the āinitial starting bucketā.
@iHiD: Further down in the description the parameter of the āinitial starting bucketā is referred to as the ābucket to fill firstā. Using that term would make it consistent at least.