pcardune / arthrobots Goto Github PK
View Code? Open in Web Editor NEWA reincarnation of Guido van Robot / Karl the Robot for the web
License: MIT License
A reincarnation of Guido van Robot / Karl the Robot for the web
License: MIT License
DEV: Chrome Version 34.0.1847.137 dev-m, logged in via FB
Issue: Checkpoints needed at 3x, 1y
, 4x, 1y
, 1x, 1y
to prevent cheating.
EX: bad code that passes:
define backup:
turnleft
turnleft
move
turnleft
turnleft
define turnright:
turnleft
turnleft
turnleft
define turnaround:
turnleft
turnleft
while no_beepers_in_beeper_bag:
if front_is_clear:
move
if left_is_clear:
turnleft
if front_is_blocked:
if left_is_clear:
turnleft
else:
turnaround
Parse provides hosting as it is, so we should just use that instead of also using heroku.
Right now if the level has a lot of text, then when you scroll down to the bottom of the page the code editor is no longer visible. This can make it hard to write some programs. Make the code editor scroll with the page.
Right now when you click on Beginner or Advanced on the landing page, you get taken to a login screen if you are not logged in. There is an option there to continue anonymously.
Instead, if you are not logged in, clicking on Beginner or Advanced should automatically create an anonymous user and take you to the first level of that track. There should be a really big up sell to create an account so that people can save their work.
Keep the semicolons, but otherwise switch everything else to es6.
Here is the es6 syntax reference to use: http://babeljs.io/docs/learn-es2015/
follow all rules defined in .eslintrc file
It would be really nice if it automatically indented four spaces on the next line after a colon ;-)
Right now the map follows the robot around as it moves in the world, but there is no way to pan/scroll around on your own.
Quote:
Another bug is that when there is an error in the code, the program pauses and shows a continue and step button. But I found them useless because after correcting the code and hitting step, nothing happens. And hitting continue simply shows the reset button. In short, you have to run the code from the start every time there is an error, and the pause/break, and continue mechanism doesn't work.
Haven't been able to figure out why, but it is still happening. It might only happen for a new user who hasn't created any programs yet. It always works after you refresh :(
Right now it is pretty easy to cheat your way to the top of the leaderboard. You can just look at the checkpoints and write a simple program that makes the world hit all those check points without necessarily solving the problem "for real".
One idea to make it harder to cheat is to have multiple hidden test worlds for each level which the program would be run against. It would have to succeed on each of the hidden levels as well in order to pass. For example, if the goal is to circumnavigate a world surrounded by walls, the hidden worlds would have walls in different locations so you could not get away with hardcoding the solution but would have to write a real algorithm.
Another idea would be to have a "world generator" script for each level that could generate a random world on the fly with a certain set of constraints. Your program would have to run correctly against multiple random worlds to work.
I'm running the new version (http://arthrobots-master.carduner.net/tracks/yh1vdAIkHs?worldId=RhkgSeCvyw). I put in this source::
move
move
while beepers-in-beeper-bag:
putbeeper
move
and got this error:
Expected a colon on line 2
Even if you complete the program, they don't get checked off.
I was able to pass level 10 by following the instructions, but I noticed that the demo does not do what it is supposed to do.
features might include:
Because we are nice people.
Basically we want a separate parse app for development so we are less likely to mess up production data.
it's untested. Make sure it has no bugs, particularly in the tokenizer!
In the paragraph:
"Then use backup in a complete program that has the robot start at the corner of Second Street and Third avenue, move three blocks north, backup one block, turnright, and then move two blocks east."
the robot is actually at Third Street and Second Avenue. Also in this context saying to "have the robot start" is not best, since the user has no control of where the robot starts.
I suggest rewriting the paragraph thus:
"With the robot at the corner of Third Street and Second Avenue facing North, use your new procedures to have the robot move three blocks, backup one block, turnright, and then move two blocks east."
would be cool to look at.
Right now you get to the end of the beginner track and that's kind of it. We should let people know about where to go from here.
We should start generating the leaderboard with a background task that runs periodically. It should iterate through all the programs instead of the first 1000.
Some programs are better written than others. They can be more efficient, or more elegant. These should factor into the leaderboard rankings. If you write a bunch of poorly written programs, you shouldn't necessarily get high in the ranking.
So what makes a good program?
elegance == the number of tokens required to write the program, lower is better
efficiency == the number of steps taken to execute the program, lower is better
So leaderboard ranking would be SUM(programCompleted_1/elegange_1/efficiency) or something like that.
We could even potentially give x/3 stars when you complete a program based on the above similar to the many iphone games out there.
quote:
The other bug I found is that when you check your code in steps, e.g. in number printing program, when I wrote the code to print the first one and zero and ran it incomplete (without writing the complete code for 18) the checkpoints didn't reset after hitting the reset button. Which resulted in the checkpoints filling up after every run and success label becoming visible even before I had written and run the complete code.
Instead of the typical "Great Success!" message upon completing a world, make it possible to customize for each world. This should be pretty straightforward.
There are pedegogical reasons why Karl the Robot had a turnoff instruction. It provides an explicit way for the learner to say "I'm finished with this task", and it plays nicely with the robot metaphor.
I wonder if arthrobots could add support for it? It could perhaps check the state at the end of the task and say "Good job!" or something if the state matches what is expected?
I don't know what the best solution is to this problem, but the learner can't see the result of their effort on Level 7: Writing Numbers. The world window adjusts as the robot moves beyond 11th Avenue, but it is unsatisfying to have the early part of the work disappear off the screen and not be able to view it.
Basically when you click the demo button, you should be able to run the demo up to the given checkpoint, and then continue from there, so you can more easily see how the program breaks down into the individual checkpoints.
if the program has 4 check points then i should able to click on the prev, next buttons which will show the corresponding step
It gets annoying to have to reimplement turnright in basically every single program you write. It would be cool if you could save functions to a "play area" of some kind which would then be made available to future programs. This could either happen explicitly with import statements (which IMO is too complicated to explain to people) or it could just be automatic.
Another option would be to have a button that would let you quickly paste the implementations for previous functions into your new program. This is probably the simplest and easiest to explain because you see the code right there in front of you but don't have to reimplement it every time.
Since the lesson text takes up much more space than the code window, it seems to me there would be no harm in making the code window taller, so that scrolling does not need to be used in a 17 line program. Perhaps you wanted it roughly the same size as the world window, but I think it would be better taller.
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.