Driving a Tic-Tac-Toe game engine that does reporting
$begingroup$
I'm trying to polish a small package I have written so that I have "good standards" before I add more to it. Does this top level file have a proper strategy for getting the rest of the program going? Are the comments provided in a manner that is useful/expected? In short, does this look like professional software engineer code? If not, how can I improve it?
"""Submit jobs for the requested number of games. Request game-reports.
Usage:
python3 tic_tac_toe.py <number of games>
"""
import sys
from game import GamesEngine
from reports import (GameReport, ManyGamesReport)
def main(number_of_games):
"""Request report instructions. Request game initiation.
Args:
number_of_games: Number of games to play
"""
report_requests = prepare_reports(number_of_games)
games_engine = GamesEngine(*report_requests)
play_games(games_engine, number_of_games)
def prepare_reports(number_of_games):
"""Create a report request based on the number of games. If 100 games or less requested, order printout for every game.
Statistics on wins/ties for all games are always ordered.
Args:
number_of_games: Number of games to play
"""
report_requests =
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return report_requests
def play_games(games_engine, number_of_games):
"""Initiate the games.
Args:
games_engine: An instance of GamesEngine that drives all games and knows when reports should be called.
number_of_games: Number of games to play
"""
games_engine.play_many_games(number_of_games)
if __name__ == '__main__':
main(int(sys.argv[1]))
python
$endgroup$
add a comment |
$begingroup$
I'm trying to polish a small package I have written so that I have "good standards" before I add more to it. Does this top level file have a proper strategy for getting the rest of the program going? Are the comments provided in a manner that is useful/expected? In short, does this look like professional software engineer code? If not, how can I improve it?
"""Submit jobs for the requested number of games. Request game-reports.
Usage:
python3 tic_tac_toe.py <number of games>
"""
import sys
from game import GamesEngine
from reports import (GameReport, ManyGamesReport)
def main(number_of_games):
"""Request report instructions. Request game initiation.
Args:
number_of_games: Number of games to play
"""
report_requests = prepare_reports(number_of_games)
games_engine = GamesEngine(*report_requests)
play_games(games_engine, number_of_games)
def prepare_reports(number_of_games):
"""Create a report request based on the number of games. If 100 games or less requested, order printout for every game.
Statistics on wins/ties for all games are always ordered.
Args:
number_of_games: Number of games to play
"""
report_requests =
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return report_requests
def play_games(games_engine, number_of_games):
"""Initiate the games.
Args:
games_engine: An instance of GamesEngine that drives all games and knows when reports should be called.
number_of_games: Number of games to play
"""
games_engine.play_many_games(number_of_games)
if __name__ == '__main__':
main(int(sys.argv[1]))
python
$endgroup$
add a comment |
$begingroup$
I'm trying to polish a small package I have written so that I have "good standards" before I add more to it. Does this top level file have a proper strategy for getting the rest of the program going? Are the comments provided in a manner that is useful/expected? In short, does this look like professional software engineer code? If not, how can I improve it?
"""Submit jobs for the requested number of games. Request game-reports.
Usage:
python3 tic_tac_toe.py <number of games>
"""
import sys
from game import GamesEngine
from reports import (GameReport, ManyGamesReport)
def main(number_of_games):
"""Request report instructions. Request game initiation.
Args:
number_of_games: Number of games to play
"""
report_requests = prepare_reports(number_of_games)
games_engine = GamesEngine(*report_requests)
play_games(games_engine, number_of_games)
def prepare_reports(number_of_games):
"""Create a report request based on the number of games. If 100 games or less requested, order printout for every game.
Statistics on wins/ties for all games are always ordered.
Args:
number_of_games: Number of games to play
"""
report_requests =
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return report_requests
def play_games(games_engine, number_of_games):
"""Initiate the games.
Args:
games_engine: An instance of GamesEngine that drives all games and knows when reports should be called.
number_of_games: Number of games to play
"""
games_engine.play_many_games(number_of_games)
if __name__ == '__main__':
main(int(sys.argv[1]))
python
$endgroup$
I'm trying to polish a small package I have written so that I have "good standards" before I add more to it. Does this top level file have a proper strategy for getting the rest of the program going? Are the comments provided in a manner that is useful/expected? In short, does this look like professional software engineer code? If not, how can I improve it?
"""Submit jobs for the requested number of games. Request game-reports.
Usage:
python3 tic_tac_toe.py <number of games>
"""
import sys
from game import GamesEngine
from reports import (GameReport, ManyGamesReport)
def main(number_of_games):
"""Request report instructions. Request game initiation.
Args:
number_of_games: Number of games to play
"""
report_requests = prepare_reports(number_of_games)
games_engine = GamesEngine(*report_requests)
play_games(games_engine, number_of_games)
def prepare_reports(number_of_games):
"""Create a report request based on the number of games. If 100 games or less requested, order printout for every game.
Statistics on wins/ties for all games are always ordered.
Args:
number_of_games: Number of games to play
"""
report_requests =
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return report_requests
def play_games(games_engine, number_of_games):
"""Initiate the games.
Args:
games_engine: An instance of GamesEngine that drives all games and knows when reports should be called.
number_of_games: Number of games to play
"""
games_engine.play_many_games(number_of_games)
if __name__ == '__main__':
main(int(sys.argv[1]))
python
python
edited 1 hour ago
200_success
129k15153417
129k15153417
asked 4 hours ago
okcappokcapp
455
455
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
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: "196"
};
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',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214288%2fdriving-a-tic-tac-toe-game-engine-that-does-reporting%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Code Review Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f214288%2fdriving-a-tic-tac-toe-game-engine-that-does-reporting%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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