-
Create WebSocket and set binaryType =
"arraybuffer"
; -
Registration:
/** Think about cool participant name and then send a registration message **/ { "name":"SuperHero", "command": "challenge accepted" }
-
The server will respond with:
/** Message contains an authentication token which you will attach to your messages for identification and the next task name. **/ {"message":"You successfully accept challenge","next":"arithmetic","token":"eae34860c6f507f2"}
-
Request the next task with:
{ "token": my_saved_token, "command": saved_next_task_name }
There are 3 simple tasks:
{"name":"arithmetic","task":{"sign": OPERATION ,"values": ARRAY}} /** where: ARRAY {Array} numbers array, length = 4; OPERATION {String} random operator (+, -, *) which corresponds to an arithmetic operation you have to perform with ARRAY values and then send answer with: **/ { "token": my_saved_token, "command": "arithmetic", "answer": RESULT }
/** if answer is correct, server will respond with: **/ { "message":"You solve task","nextTask":"function_evaluation" } /** request the next task with: **/ { "token": my_saved_token, "command": saved_next_task_name }
2nd task:
/** Server will send you the following message **/ { "name":"function_evaluation","task": { "fn": STRING } } /** where STRING is String representation of function. --------------------------------------------- you have to somehow execute this function and send it's result **/ { "token": my_saved_token, "command": "function_evaluation", "answer": RESULT }
/** if RESULT is correct, server will respond with **/ { "message": "You solve task", "nextTask": "binary_arithmetic" }
3nd task:
/** Server will send you the following message **/ { "name":"binary_arithmetic","task": { "bits": BITS} } /** where BITS is either 8 or 16. --------------------------------------------- Immediately after that you should receive a binary message (16 bytes) which you should treat as a Uint8Array or Uint16Array depending on the bits field. Your task is to sum the resulting array's elements and send the result: **/ { "token": my_saved_token, "command": "binary_arithmetic", "answer": RESULT }
/** if RESULT is correct, server will respond with **/ { "message": "You solve task", "nextTask":"win" }
And finish the challenge!
/** Request the win! **/ { "token": my_saved_token, "command": "win" }