How to make scalable game mastermind with API









up vote
1
down vote

favorite












I want to create an API for mastermind game. The main features of that API are:



  • 1 - Create a new game

  • 2 - Return feedback given a game code and the guess combination

  • 3 - Return game historic given a game code

My main idea is to use an embedded database (like could be H2), and then the feature 1 would be just an insert of new games, and the other features would be just to check the database status. Obviously with that approach, any request would need a database request, and I think that could be improved using some kind of cache (maybe redis), and cache the status of every game using LRU strategy.



I would like to know if you see any inconvenience to this game implementation approach (or another better approach maybe just using memory data structures instead of databases).










share|improve this question























  • You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
    – Andreas
    Nov 11 at 19:06










  • Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
    – Gerardo
    Nov 11 at 19:12










  • Aren't you missing a very important part of the API, the ability to actually play the game?
    – Andreas
    Nov 11 at 19:15










  • The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
    – Gerardo
    Nov 11 at 19:20











  • But you only listed 3 features in the API, and none of them are for submitting a new guess.
    – Andreas
    Nov 11 at 19:23














up vote
1
down vote

favorite












I want to create an API for mastermind game. The main features of that API are:



  • 1 - Create a new game

  • 2 - Return feedback given a game code and the guess combination

  • 3 - Return game historic given a game code

My main idea is to use an embedded database (like could be H2), and then the feature 1 would be just an insert of new games, and the other features would be just to check the database status. Obviously with that approach, any request would need a database request, and I think that could be improved using some kind of cache (maybe redis), and cache the status of every game using LRU strategy.



I would like to know if you see any inconvenience to this game implementation approach (or another better approach maybe just using memory data structures instead of databases).










share|improve this question























  • You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
    – Andreas
    Nov 11 at 19:06










  • Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
    – Gerardo
    Nov 11 at 19:12










  • Aren't you missing a very important part of the API, the ability to actually play the game?
    – Andreas
    Nov 11 at 19:15










  • The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
    – Gerardo
    Nov 11 at 19:20











  • But you only listed 3 features in the API, and none of them are for submitting a new guess.
    – Andreas
    Nov 11 at 19:23












up vote
1
down vote

favorite









up vote
1
down vote

favorite











I want to create an API for mastermind game. The main features of that API are:



  • 1 - Create a new game

  • 2 - Return feedback given a game code and the guess combination

  • 3 - Return game historic given a game code

My main idea is to use an embedded database (like could be H2), and then the feature 1 would be just an insert of new games, and the other features would be just to check the database status. Obviously with that approach, any request would need a database request, and I think that could be improved using some kind of cache (maybe redis), and cache the status of every game using LRU strategy.



I would like to know if you see any inconvenience to this game implementation approach (or another better approach maybe just using memory data structures instead of databases).










share|improve this question















I want to create an API for mastermind game. The main features of that API are:



  • 1 - Create a new game

  • 2 - Return feedback given a game code and the guess combination

  • 3 - Return game historic given a game code

My main idea is to use an embedded database (like could be H2), and then the feature 1 would be just an insert of new games, and the other features would be just to check the database status. Obviously with that approach, any request would need a database request, and I think that could be improved using some kind of cache (maybe redis), and cache the status of every game using LRU strategy.



I would like to know if you see any inconvenience to this game implementation approach (or another better approach maybe just using memory data structures instead of databases).







java api oop solid-principles






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 at 9:46









Stanislav Kralin

7,48641841




7,48641841










asked Nov 11 at 18:55









Gerardo

426




426











  • You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
    – Andreas
    Nov 11 at 19:06










  • Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
    – Gerardo
    Nov 11 at 19:12










  • Aren't you missing a very important part of the API, the ability to actually play the game?
    – Andreas
    Nov 11 at 19:15










  • The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
    – Gerardo
    Nov 11 at 19:20











  • But you only listed 3 features in the API, and none of them are for submitting a new guess.
    – Andreas
    Nov 11 at 19:23
















  • You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
    – Andreas
    Nov 11 at 19:06










  • Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
    – Gerardo
    Nov 11 at 19:12










  • Aren't you missing a very important part of the API, the ability to actually play the game?
    – Andreas
    Nov 11 at 19:15










  • The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
    – Gerardo
    Nov 11 at 19:20











  • But you only listed 3 features in the API, and none of them are for submitting a new guess.
    – Andreas
    Nov 11 at 19:23















You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
– Andreas
Nov 11 at 19:06




You seem to misunderstand what API means. The API describes/defines the methods that can be called. Any discussion of embedded database is immaterial to the API, because that is an implementation issue. The same API could be implemented by storing data in a plain file, or by only storing the data in memory. You seem to be talking about the implementation, not the API itself.
– Andreas
Nov 11 at 19:06












Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
– Gerardo
Nov 11 at 19:12




Sure, I want to create an API for that game, but my issues are with the implementation, that I would like to know if my approach is good. My fault, sorry!
– Gerardo
Nov 11 at 19:12












Aren't you missing a very important part of the API, the ability to actually play the game?
– Andreas
Nov 11 at 19:15




Aren't you missing a very important part of the API, the ability to actually play the game?
– Andreas
Nov 11 at 19:15












The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
– Gerardo
Nov 11 at 19:20





The ability to play the game is via API. When a new game is requested, it "creates" a code and id (for instance, 123; RED, BLUE, RED, BLUE), code needs to be found using guesses (for instance, game 123; RED, BLUE, BLUE, RED) which the API would return how many pegs were correct.
– Gerardo
Nov 11 at 19:20













But you only listed 3 features in the API, and none of them are for submitting a new guess.
– Andreas
Nov 11 at 19:23




But you only listed 3 features in the API, and none of them are for submitting a new guess.
– Andreas
Nov 11 at 19:23

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252081%2fhow-to-make-scalable-game-mastermind-with-api%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53252081%2fhow-to-make-scalable-game-mastermind-with-api%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Barbados

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3