diff options
| author | Emmanuel Gaillot <emmanuel.gaillot@gmail.com> | 2025-12-20 21:14:53 +0100 |
|---|---|---|
| committer | Emmanuel Gaillot <emmanuel.gaillot@gmail.com> | 2025-12-20 22:00:26 +0100 |
| commit | 895e9a4fc2c1a427c55ebaafb5423d3db6e3dddc (patch) | |
| tree | e69b67055428d49cc3bad8f81b1013e45a1dd5c8 /lambda-calcul/javascript/src/client.js | |
| parent | 800f5628d86313c315d38e983318bb0a027137e2 (diff) | |
| download | lambda-nantes-895e9a4fc2c1a427c55ebaafb5423d3db6e3dddc.tar.gz | |
Solve retrieved challenge
Diffstat (limited to 'lambda-calcul/javascript/src/client.js')
| -rw-r--r-- | lambda-calcul/javascript/src/client.js | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lambda-calcul/javascript/src/client.js b/lambda-calcul/javascript/src/client.js index d046187..88ea253 100644 --- a/lambda-calcul/javascript/src/client.js +++ b/lambda-calcul/javascript/src/client.js @@ -1,11 +1,27 @@ const axios = require('axios'); -const newClient = ({ playerName, challengerURL }) => { +const defaultInterpreter = require('./interpreter'); +const defaultParser = require('./parser'); +const defaultPrinter = require('./printer'); + +const newClient = ({ + challengerURL, + interpreter = defaultInterpreter, + parser = defaultParser, + playerName, + printer = defaultPrinter, +}) => { const nextChallenge = (token) => axios ({ url: `${challengerURL}/api/challenge?token=${token}`, }) .then(({ data: { expr } }) => expr); + const solve = (challenge) => { + const parsedExpression = parser.parse(challenge); + const evaluatedExpression = interpreter.evaluate(parsedExpression); + return printer.print(evaluatedExpression); + } + const start = () => axios({ method: 'POST', url: `${challengerURL}/api/register`, @@ -16,6 +32,7 @@ const newClient = ({ playerName, challengerURL }) => { return { nextChallenge, + solve, start, }; }; |
