New Exercise Proposal: Camicia

Great stuff. Let’s continue all discussion there!

Good question. One for @iHiD or @dem4ron . If the forum software doesn’t support annotating the email the same way as the forum post, then I think not.

1 Like

Of course we can, and without permission for authority.

All that needs to be done is something like this:

This link is to a pretty kitten:

The cat - Felis domesticus - digital file from original print | Library of Congress

Edit: Sorry, I re-read, and realized that the response might sound (in writing, and perhaps in person) short or cranky. That is not intended.

Click here if you agree it is cranky, and want context, otherwise feel free to not bother yourself

I mean that we really do not need to rely on a provided technology solution for this, I have seen context referenced links here in other messages, occasionally. Perhaps it can be added to some “guide” on how to provide nice experiences for what is provided to e-mail, by considering how we write our messages. Dropping a link into a message with likely very little preparation for how it displays in various delivers is very easy and convenient, and the person doing so likely has no idea of what is coming out the other side to various deliveries.

That is understandable, and I am not upset about it, but we can do better, we can take a little more care socially speaking.

Sorry for the late reply, but I always encourage new exercises!

2 Likes

I’m sorry that I caused you this minor inconvenience.
I wasn’t aware that emails of what I write were being sent… For example, I don’t receive them, so I couldn’t have known.
Thank you for this feedback, I’ll try to be more careful! :grin:

2 Likes

It is definitely not you, it is most everyone. There is nothing that suggests that you should do anything different from this interface.

All right, everyone, I’d say we’re ready with the PR. Can anyone merge it?

In the meantime, I was looking at the documentation to create a practice exercise.

We need to create a new icon for the exercise. Should I create an issue in the icon repository?

After merging the PR, to create a new exercise on a specific track (e.g. Elixir), do we need to contact the maintainers of that track by creating another topic on the forum?

Is there anything else I should know that I am not aware of?

1 Like

It requires an approval from three maintainers and an admin. Usually we give people some time to review things.

Icons are created by the Exercism staff.

Generally, yes, unless a track maintainer has, for example, already invited that work explicitly in this thread. You should have maintainer approval one way or another; a new thread is the most common route but not the only route.

4 Likes

Yes please :slight_smile:

Done.
Here is the link for the issue on icons repo:

2 Likes

I have a question for you.
@IsaacG and I were discussing the rules of the exercise.

For now, the game inputs are two strings that need to be parsed.

Would you prefer two arrays or two strings as inputs?

Keeping the strings makes the exercise a little more complicated, but if we change it to two arrays, the exercise will focus solely on the actual game.

Specially, the question is how to handle the “10” card. If it’s encoded as a single string, do we want to map the “10” card to a single character or leave it as two, or should we switch to an array?

The cards 5, 10, 5:

"5105"
"505"
"515"
"5T5"
["5", "10", "5"]

Alternatively, we can say the desk happens to be missing all the 10 cards and skip that.

I believe this depends on the target difficulty for the exercise. I haven’t solved it yet, but it looks like a high medium/low hard difficulty. So making the input a string shouldn’t make it much more harder than it already is.

EDIT: What I think wouldn’t add much is inserting artificial edge cases. For instance, using invalid cards or mixing lower and upper case for J, Q, K and A.

What about using a separator, like ‘-’ or space?

This exercise isn’t a string parsing exercise. I’m not in favor of adding a bunch of extra work just to add in the work. This is why we stripped error handling out of other exercises and explicitly opted to not add error checking everywhere. This exercise should focus on the actual card game.

If we’re adding spaces between each card, we should format it nicely as an array. Track maintainers can opt to represent the data how they want by passing the list through or turning it into a $SEPARATOR separated list. I don’t think it makes sense for the canonical data to do that.

2 Likes

We don’t have any case like that in tests.
For now, there are only valid inputs.
At most, there are small and large tests to help users better understand the exercise.

Anyway, we were asked to change it by adding numbers, which is why there are no separators.
The exercise was created with them.

This reasoning works both ways. It can be a string in the canonical data and each track decides if it stays this way or becomes an array. Unless there’s some kind of standard, I think both are fine and I have nothing against using arrays.

The other, more tricky thing to figure out is when exactly the game ends and how to communicate that clearly.

If I understand correctly (and I’ve already misunderstood this several times), with the current commit, the game ends either

  • when a player runs out of cards while paying a penalty; or
  • when there is no penalty and it’s a player’s turn to play a card but they have no cards.

In the former case, as soon as one player runs out of cards, the game ends. The other player does not play any additional cards.

In the latter case, (1) player A runs out of cards, (2) player B plays a card and then (3) player A cannot play a card so the game ends. There is one card played after player A runs out of cards.

I think we need to either (1) do a really good job of making that clear in the instructions or (2) fudge the rules a tab to make the rules simpler to communicate.

According to the wikipedia entry:

When a single player has all of the cards in the deck in their stack, they have won.

I’m not sure how precise this is, but it seems like there’s no need to wait another turn if one player gets all the cards.

We’re not beholding to the rules on Wikipedia ;) But that description does provide a succinct and simple end-game condition.

When the game ends in a loop, do we care about cards and tricks? I don’t think we should, but if we do then are the values precisely defined?