angrave / javaplayland Goto Github PK
View Code? Open in Web Editor NEWPlayland
License: MIT License
Playland
License: MIT License
Multi Line comment can't be deleted and consumes inserted code lines, prohibiting them from executing
Need to highlight in ACE editor which line is currently being executed.
This is a rather low priority issue, but a falling animation for when the character steps into a pit or off the map would be grand.
The output from a running program can spill past the end of the output area.
The output text should be inside the div and scrollbars should appear.
Walking off the edge of the map should cause gameLost condition
Set alt and title attributes to include the button insert text and the number of remaining inserts available.
If the last level is completed, the next level should take them to the first uncompleted game.
If all levels are complete, display a success screen instead (and suggest they read the book or play with Java) and do not show a 'next level' link
Editing the parameter value is only intuitive if you use the keyboard. For example, it's difficult to use if you avoid the keyboard arrow keys. For example one cannot highlight the entire expression with the mouse; instead, the code is selected.
In the latest Master build
The (Master/published) Characters/Game map icons do not appear until after game is run.
Note Firefox caching can hide this issue: Open www.codemoo.com in a Firefox Private window or do a full refresh (Hold down shift when refreshing the page).
The contents of single line comments (//) and multi-line comments (/* .... */) should not be counted.
Replace the maze robot tile with a simple, non-animated tile to represent a maze wall or pit or lava.
go(__) should not be runnable
Cloud alert when user tries to run code with unset/bad parameter
e.g. code that includes go(__) should not be runnable
color map: If a blank white square is non-white at the end then the level is not solved
Two items:
Parameter edit box does not consistently display at the correct height when ace editor is scrolled.
Probably needs same calculation as the swap-up-down-delete buttons.
There was some discussion of a jump command, this is just here to remind us that at some point we want to implement that.
Jump out of grid, player character should fall
by spamming the button to insert commands at a fast enough rate you can insert more than is allowed, and the button will show a negative availability
Style sheet work -
Clickable images/buttons UI expectations- should behave like a hyperlink
(e.g. mouse pointer->hand, e.g. hover modifies text/image style)
gameVisual.coffee takes in an object of character objects.
But, the order in which the characters are read in determines their z coordinate.
The config sent into gameVisual's startGame function should be an array, and the interpreteAsciiMap function should create that array with some sense of what the z coordinates of the characters it is reading in should be.
Sometime ideas -
Minimize 'useless' space. i.e. Bigger editor area.
ie. Maximize fraction of screen realestate to task in hand.
Larger editor font?
Rethink button placement e.g. run button in bottom left of editor.
Currently there are too many buttons and not enough of reason to explore them.
About box could also contain level instructions and general help.
Legal info could be a copyright sentence in 8pt at base of screen and a text hyperlink.
Need a privacy policy.
Java reference link as a sticky menu item. i.e. don't need to play a game to get to reference.
Maybe animated -add captions to icons to explain their meaning?
Pop-up help first time a new level is tried. Slowly introduce button usage as more games are played.
Note in the first set of games, skipping the comment lines was sufficient to choose a reasonable starting line. In the color games this is no longer true. Unlike the first games, color games include a "void paint" preamble.
Also, when the game is reset, the same line should be highlighted. Instead the second line is typically highlighted. (it seems count comment lines is not used in this case)
New Desired behavior: If there are lines of code to be inserted then choose a position so that new lines of code can be appended to existing code.
If the game is to delete or swap existing lines then skip the pre-amble and highlight the first deleteable statement.
Put this behavior in a method and store the desired line in a variable, so we can re-use it when a game is reset. Be sure to reset line number after the ace editor text has been reset.
As a long-term idea, have insertLine and insertCommand (in playerCodeEditor) work more intelligently with blank lines.
Up-down-buttons need keyboard shortcuts.
i.e. Should be able to navigate site using keyboard and without using a mouse/touch.
All images should have alt and title text.
What can we do about the graphics2G/simulation map? Set an alt text that describes the current actor and current flag position?
Cloud instructions pop up when level is run for first time
Need to update Doppio to be able to support creating new Java arrays.
Add click logic to level info button to show code comments/ instructions
change functions to be something like...
mysteryMove
mysteryTurn
mysteryWalk
I need to add finished-callback support to doppio-api.coffee for the referenceUI
However I only found the js and map files inside web/scripts.
FYI The original one in doppio-jvm appers to be out of date (e.g. incorrect tar name) but I modified it anyway and pushed the changes.
Explore use of custom google-analytic events to monitor how hard each level is, loading speed, user progression through levels etc.
When a piece of code is run in the book or in the freeform area, the stop icon does not turn back into the go button when the code is finished.
A simple path (e.g. dashed line) would show the user the path the character followed along the map. It would also show the starting square without needing the simulation to be reset.
Remove startup delay of json requests for each and every level.
e.g. publish most/all levels as a single large json file (that is build programmatically, so editing is not painful).
New versions of ace support an accessibility theme that works well with screen readers. Need to investigate and incorporate.
Need an accessible version of the map
This is a reminder for myself.
In the Doppio-Beanshell branch, the inser-line command's uses do not decrease correctly at all.
Also, color3 gets very funky when you try to insert lines.
Every click costs a point or more (including line swaps and the play button)
You start with 100+x points where x is the minimum points required to complete the level.
Need icons for "Play" Reset-Code, "GameMap", "Reference" buttons.
Eventually we may also need "single step" "stop(abort)" and "pause" icons too.
Break level listing into a list of quests and quests have levels within them
Modify beanshell to emit the current line being evaluated.
The way the up/down/delete buttons are implemented, they create a div which sits on top of the ace editor and stops click events from propagating to it.
The problem this is causing right now is that it is preventing the pop up editor from triggering on the current line.
There are three ways to remedy this, one is to cause the pop up editor to trigger as well due to a click on the new div.
Another is to shrink the div to only take up as much space the three buttons require.
The third is to have the div propagate clicks down to the ace editor, though we do not want it to propagate clicks if someone is clicking one of the three buttons.
Need a better level selection screen.
Some questions to ponder - Do we really want any level description text?
Would just a gray v gold star (=completed) be sufficient?
Should we disallow future levels? Currently seems a bit silly...
class A {};
causes
bsh.InterpreterError: Defining class problem: A: BeanShell cannot yet simultaneously define two or more dependant classes of the same name. Attempt to define: A while defining: A at bsh.BshClassManager.definingClass(BshClassManager.java:464) at bsh.ClassGenerator.generateClassImpl(ClassGenerator.java:79) at bsh.ClassGenerator.generateClass(ClassGenerator.java:29) at bsh.BSHClassDeclaration.generateClass(BSHClassDeclaration.java:97) at bsh.BSHClassDeclaration.eval(BSHClassDeclaration.java:63) at bsh.Interpreter.eval(Interpreter.java:664) at bsh.Interpreter.eval(Interpreter.java:758) at bsh.Interpreter.eval(Interpreter.java:747) at codemoo.Run.main(Run.java:17) Threw bsh.EvalError: Sourced file: inline evaluation of: class A{}; true;'' internal Error: Defining class problem: A: BeanShell cannot yet simultaneously define two or more dependant classes of the same name. Attempt to define: A while defining: A : at Line: 1 : in file: inline evaluation of:
class A{}; true;'' : class A {
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.