Giter VIP home page Giter VIP logo

arthrobots's People

Contributors

pcardune avatar urbackmk avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

arthrobots's Issues

Add checkpoints to Beginner - level 14

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

Don't force users through login screen

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.

Stop showing continue and step button when there is a program error

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.

Make it harder to cheat

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.

Demo not correct on Level 10

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.

Build a better code editor

features might include:

  • syntax highlighting
  • line number display at the left
  • font size adjustment
  • tab inserts 4 spaces instead of focusing on the next element

Set up dev apps for parse

Basically we want a separate parse app for development so we are less likely to mess up production data.

Small error in Level 5 mission text

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."

Create an algorithm to score the goodness of various programs and build this into the leaderboard.

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.

Checkpoints don't always reset when you rerun your program

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.

Custom success message for each world

Instead of the typical "Great Success!" message upon completing a world, make it possible to customize for each world. This should be pretty straightforward.

Add support for turnoff instruction

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?

Can't see your result on Level 7

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.

Integrate demo with checkpoints

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

Be able to save functions across different worlds

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.

Make the code window taller

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.