rocher / alice Goto Github PK
View Code? Open in Web Editor NEWAdventures for Learning and Inspiring Coding Excellence
License: MIT License
Adventures for Learning and Inspiring Coding Excellence
License: MIT License
AS a user that wants
DoD — Users can add and share Codingame test cases; users can add a solution to a Puzzle that will be checked against all available test cases.
Alternatives — Add a mechanism to generate new test cases, based on the Puzzle specification. Add new hidden (MD5) test cases, so that only the md5 has will be checked and user won't be able to know the solution.
As a Problem solver, I want that users can provide parameters to slightly change the algorithm behavior. As a User, I want to test the algorithm performance of behavior for different initial conditions.
DoD — First approach to parse CLI arguments and allow problems to add their own options.
Current GUI presentation of Project Euler Problems is a PoC. It has no complete information and element distribution on the screen must be improved.
DoD — First version of Project Euler GUI with complete information of the Problem and the solution, with a pleasant look and feel.
As a user providing a solution to a Problem, I want to provide an explanation about the implemented algorithm.
DoD — The Problem can pause itself and add additional information, text or graphics; when the User press
Continue
this information is possibly removed and the Problem continues, either to the next step or to the end. Additional graphical information must be differentiated from the mathematical visualization of the Problem.
GUI Runner of Gnoga Multi-connection application uses a derived Connection_Data_Type
record. In it, some fields are pointers to objects dynamically allocated. For example, each connection requires a different Problem instance. On_Connection
event, the Problem factory passed to the Gnoga Runner creates a new Problem object. The pointer is placed into the connection data, so that no user interaction with the Problem do not interfere with other user Problems.
When the connection is closed (either the TAB browser is closed of F5 is pressed in a TAB), the connection data is finalized, but there is no way to de-allocate the memory previously allocated by the Runner.
Initial experiment was done by making Connection_Data_Type
in Gnoga.Types
to be a new Ada.Finalization.Limited_Controlled
type, but unsuccessfully. See this Gnoga branch and this Alice branch for more information.
DoD — The GUI Runner is able to de-allocate previously dynamic memory allocated for a Problem using the Problem factory.
Connection_Data_Type
As a user that implements a solution to a Problem, I want to know whether my answer is correct or not without looking at the correct answer.
DoD — Provide a mechanism that check a solution to a Problem without revealing the answer.
As a fan of the Advent of Code event, I want to share, test and compare my implementations in Ada with other users. For this, I like sharing my input files and answers to form a test case, so that other users can test their implementations with my test case. Also, I want to have an automatic way to test my solution with all available test cases.
DoD — Users can add input files and answers (test case); users can provide a solution and test it with all available test cases.
This item keeps track of ideas for future developments.
Current Plotter interface is in Proof of Concept state, enough to test initial GUI approach.
DoD — Plotter interface allows complex visualizations of mathematical problems; users can draw shapes (lines, rectangles, circles, ..) and plot functions.
Suggestion: overload subprograms to add minor parameters: color, width, style .. instead of duplicating HTML-Canvas API
Gnoga GUI uses a grid view to distribute element of the User interface. This grid is made with table cells, which is inappropriate and not flexible. Modern HTML frameworks, like Bootstrap, provide much more flexible mechanisms to do the same job.
DoD — Gnoga grid view can optionally use
div
elements instead of table cells.
div
elements and BootstrapAs a Codingame fan, I want to play these graphical Puzzles programmed with Ada, like Mars Lander or Power of Thor. For this, first the implementation of the game is required according to the Puzzle description and with all the visual elements. Second, a mechanism that allows a programmer to provide an implementation and to interact with the game in GUI.
DoD — Users can provide either the implementation of a graphical Puzzle, or a solution to an already implemented graphical Puzzle and interact with the GUI Runner.
For people to start making contributions, it is necessary to provide them with some indications. There might be people developing new GUI Runners, others implementing more Problems, etc.
DoD — There is a good number of tutorials to start working with Alice / Project Euler Problems; at least, basic CLI and GUI interfaces.
Like was done in #2 for the CLI interface, now we want the same in the GUI interface. The list of options must be given in a similar way but in a different context.For example, the GUI must limit the range of values for options that declare a minimum or maximum value.
DoD — Problems can give to the Runner a list of options with a rich description (name, type, values..); the GUI adds these options to the user interface; the User can tweak these parameters; before starting the Problem, all options are applied.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.