In Rocket League, there are controls assigned to quick chat. For PC, they are
1
, 2
, 3
, and 4
. To use a quick chat, you must press two controls. For example, the first option would be 1
, 1
.
You will be simulating the Rocket League client. You will be given a non-empty list composed only of four characters of your choosing. The length of the list will always be even and <= 8
. I will be using 1, 2, 3, 4
for the examples. If you modify the input domain, you must specify how your input maps to 1, 2, 3, 4
.
The first character in each couplet specifies the section, the second the item in the section. Below are all sections, with their default chat:
1
1 I got it!
2 Need boost!
3 Take the shot!
4 Defending...
2
1 Nice shot!
2 Great pass!
3 Thanks!
4 What a save!
3
1 OMG!
2 Noooo!
3 Wow!
4 Close one!
4
1 $#@%!
2 No problem.
3 Whoops...
4 Sorry!
The above are case sensitive. So, 1 1
would be I got it!
, and 3 3
would be Wow!
.
In addition, after three quick chats come through rapidly, the game shots you down. You get a message back: Chat disabled for 2 seconds.
. If you continue trying, you get one more chance, and then Chat disabled for 4 seconds.
. Our challenge will not deal with time, or any further chats.
However, after three chats (6 input characters), you must output Chat disabled for 2 seconds.
. After four chats (8 input characters), you must output Chat disabled for 4 seconds.
. Since 8 is the maximum input length, that would be your final output, if they are 8 input characters.
Input
First, chose your four characters, and map them to 1, 2, 3, 4
.
Your input will be non-empty, contain an even number of items, and only contain up to eight items.
Output
You will output the matching quick chats in order, plus any chat disabled
warnings (in the correct location). Output is case sensitive. It must be delimited - suggested delimiters are \n
(pretty delimiter) or ,
, and you cannot use any delimiters in any of the possible outputs.
Test Cases
In these, input is in the form of a JSON list and can be 1, 2, 3, 4
, and the output delimiter is ,
.
[1, 1, 1, 1] => I got it!,I got it!
[2, 4, 4, 4] => What a save!,Sorry!
[3, 3] => Wow!
[1, 4, 2, 3, 4, 1, 4, 4] => Defending...,Thanks!,$#@%!,Chat disabled for 2 seconds.,Sorry!,Chat disabled for 4 seconds.
Invalid (out of scope) inputs:
[] //empty
[1, 3, 1] //odd length
[5, 4] //character out of input domain
[1, 2, 3, 4, 1, 2, 3, 4, 1] //length > 8
To ensure the point is made: you are not taking these in real time, like in the game. You are just receiving a (short) list of numbers.