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,44541841




7,44541841










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







Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Guess what letter conforming each word