## CCC '03 S1 - Snakes and Ladders

View as PDF

Points: 5
Time limit: 2.0s
Memory limit: 256M

Problem type
##### Canadian Computing Competition: 2003 Stage 1, Junior #3, Senior #1

Here (see illustration) is a game board for the game Snakes and Ladders. Each player throws a pair of dice to determine how many squares his/her game piece will advance. If the piece lands on the bottom of a ladder, the piece moves up to the square at the top of the ladder. If the piece lands on the top of a snake, the piece "slides" down to the square at the bottom of the snake. If the piece lands on the last square, the player wins. If the piece cannot advance the number of squares indicated by the dice, the piece is not moved at all.

In order to help you play this game via a cell phone while travelling, you will write a program that simulates your moves on the board shown and, of course, runs on your handheld computer. You will repeatedly throw the dice and enter the result into the program. After each throw, the program will report the number of the square where your piece lands.

When the program starts it should assume the piece is on square . It should repeatedly read input from the user (a number between and ) and report the number of the square where the piece lands. In addition, if the piece moves to the last square, the program should print You Win! and terminate. If the user enters 0 instead of a number between 2 and 12, the program should print You Quit! and terminate.

For clarity, you are to use the board pictured above and you should note that the board has snakes (from to , from to and from to ) and 3 ladders (from to , from to and from to ).

#### Sample Input

9
11
12
7
3
5
10
9

#### Sample Output

You are now on square 10
You are now on square 21
You are now on square 33
You are now on square 64
You are now on square 86
You are now on square 91
You are now on square 91
You are now on square 100
You Win!

• commented on Nov. 12, 2022, 11:17 p.m.

so if your end square is bigger than 100 then you go back to the square you came from right?

• commented on Nov. 13, 2022, 12:47 a.m.

"If the piece cannot advance the number of squares indicated by the dice, the piece is not moved at all."

If your current tile + current roll is larger than 100, then you do not move.

• commented on Nov. 13, 2022, 3:57 a.m.

thank you!

• commented on Sept. 21, 2022, 9:20 p.m.

Ok I found that perhaps for python, dmoj doesn't accept you end the program by exit() statement, and as long as I change it to break it works.

• commented on Sept. 21, 2022, 11:34 p.m. edited

You need to "import sys" at the beginning of your code and the command is "sys.exit()".

• commented on May 10, 2022, 6:08 p.m.

I have no idea what's wrong with my code.

• commented on April 5, 2022, 8:57 p.m.

Can someone tell me what's wrong with my code? I get IR for test case 1 and AC for test case 2.

• commented on April 5, 2022, 9:18 p.m.

place -= x, instead of place -= 10 in while place > 100

• commented on Feb. 12, 2022, 9:41 p.m.

why doesn't my code work at all

• commented on Feb. 12, 2022, 11:12 p.m.

You didn't capitalize the "you"

• commented on April 25, 2022, 2:03 p.m.

When you think for years, and your code is right, but it's only one letter that is wrong in the output and you smash your computer. ╰（‵□′）╯

• commented on Jan. 9, 2022, 4:05 a.m.

why am i getting AC on the second case but WA on the first case?

• commented on Jan. 9, 2022, 4:41 p.m.

You still have to print what square you're on when you win.

• commented on Jan. 1, 2022, 7:34 p.m. edit 4

I got OLE on first case and AC on second. Why I get OLE on first when it work on VSC. C++20 .edit : I fix it. edit 2: still OLE

• commented on Jan. 1, 2022, 8:48 p.m.

I haven't really coded in C++, but your code doesn't terminate when you win the game.

• commented on Sept. 20, 2021, 12:59 p.m.

Can somebody look at my code and tell me what's wrong with my formatting, I am getting the correct outputs.

• commented on Sept. 21, 2021, 2:28 a.m.

The java.util.NoSuchElementException exception hints that the error is not in your formatting, but rather that your Scanner is trying to read past the end of the input.

Notice that the input only contains a single game, and your program is expected to terminate itself (without errors) at the end of the game.

• commented on Sept. 4, 2021, 11:38 a.m.

Why am I getting WA on the second case but AC on the first case?

• commented on Sept. 8, 2021, 8:23 p.m.

its 9 -> 34 not 12 -> 34

• commented on Sept. 19, 2021, 4:39 a.m.

Thanks.

• commented on May 3, 2021, 5:16 p.m.

To clarify, for this problem, do we print the square the player is on after each input, or do we continue taking inputs until the player either wins or loses and THEN print the squares they were on? Thank you.

• commented on May 3, 2021, 7:12 p.m.

I'm pretty sure either should work.

• commented on Feb. 7, 2021, 9:11 p.m.

Does anyone know why for my code, although test case #2 is correct, test case #1 is OLE?

• commented on Jan. 1, 2022, 7:35 p.m.

yeah same with me

• commented on Feb. 7, 2021, 10:08 p.m.

You've confused a snake for a ladder.

• commented on Feb. 8, 2021, 3:07 p.m.

Got it, thank you so much!

• commented on Jan. 6, 2019, 4:29 p.m.

Does anyone know why my code produces two WAs? I have tested a bunch of times and I can't find any wrong output from my program...

• commented on Jan. 6, 2019, 9:57 p.m.

Your code doesn't show what square the player is currently on.

• commented on Jan. 7, 2019, 1:15 a.m.

Am I supposed to print everything at the end, or print their position immediately after each input?

• commented on Jan. 7, 2019, 2:05 a.m.

This does not matter. Everything is redirected to an output file, which is checked after your code has completed. As long as the output is correct, the time of when you output is irrelevant. (Different case for interactive problems).

• commented on Jan. 7, 2019, 5:55 p.m.

Thank you, found my problem :)

• commented on Dec. 24, 2018, 10:15 p.m. edit 5

EDIT:

Now my first Testcase works fine, meaning that it now says AC, however, my second Testcase still says WA.

Does anyone know why I am getting this? Here is my output for Testcase 2 (clipped):

You Quit!

Thank you.

• commented on Dec. 25, 2018, 12:37 a.m. edit 6

EDIT: If the test case is something like

3
4
0

You should output

You are now on square 4
You are now on square 8
You Quit!

But you just output "You Quit!"

• commented on Dec. 17, 2018, 8:54 p.m. edited

Can somebody give me a hint as to why my code does not work? When testing it, I did not find any errors in spelling, or numbers, but for some reason the first input is wrong? Please help, thanks.

• commented on Dec. 17, 2018, 11:18 p.m.

You don't output

You are now on square 100

When the result hits 100

• commented on Jan. 30, 2018, 8:40 p.m.

The snake reminds me Getting Over It with Bennett Foddy. :(

• commented on Dec. 13, 2016, 1:33 a.m.

If the user enters 0 instead of a number between 2 and 12, the program should print You Quit! and terminate.

Will there be a test case where the user will input 1 or something higher than 12?

• commented on Dec. 13, 2016, 1:54 a.m.

No.