Shapemaster / Eyeballing

Monkey Archive Forums/Monkey Projects/Shapemaster / Eyeballing

Xaron(Posted 2015) [#1]
Hey all,

I did a small game for you to train your eyes and see how good you can estimate different geometric figures. Let's see what your scores are, there are two game modes including high score lists.

It's not finished yet but will be soon. Feedback highly welcome! I already have 2 bugs on my list to figure out.

http://eye.cobblecrowd.com/MonkeyGame.html


hub(Posted 2015) [#2]
very interesting. no bug here.


Neuro(Posted 2015) [#3]
That is cool! Even though i totally suck at it, it was fun :).


degac(Posted 2015) [#4]
Nice!
It works well, no bugs (web version - Opera)


Beaker(Posted 2015) [#5]
Nice idea. I got a bit confused as to why there were often two parts to the interactive circles. Also, I noticed my score didn't show up on the leaderboard the second game I played until I clicked on the Insane tab and then back to Normal.


Xaron(Posted 2015) [#6]
Thanks for trying! Actually the idea itself is not from me but from this guy: http://woodgears.ca/eyeball/

Still interesting though, so I thought a smartphone version of this would be a good idea. :)


Floyd(Posted 2015) [#7]
The "right angle" one is a little strange. It seems the angle must have a particular (non-obvious) orientation. From blue to red must be a left turn. Going the other way tells me I am off by 180. And ditto on the two circles being confusing.


Xaron(Posted 2015) [#8]
Thanks, I agree with the right angle.

Regarding the two circles it will become more obvious when you play it on a mobile device.


Xaron(Posted 2015) [#9]
I've uploaded a new version, fixed some network issues (especially for Android) plus you can now select time periods for the highscore list. Still some work to do though:

http://eye.cobblecrowd.com/MonkeyGame.html

http://eye.cobblecrowd.com/b09.apk


Danilo(Posted 2015) [#10]
@Xaron:
Nice one! Can you add more figures/shapes/geometries?


Xaron(Posted 2015) [#11]
Fixed some small networking issues. The right angle level now works for both sides and you can see your own score within the distribution graph after finishing.

New version: http://eye.cobblecrowd.com/MonkeyGame.html
APK: http://eye.cobblecrowd.com/b10.apk

@Danilo: Yeah, do you have any ideas? :)


Xaron(Posted 2015) [#12]
https://play.google.com/store/apps/details?id=com.krautapps.shapemaster

:)


SpaceAce(Posted 2015) [#13]
This is fun. I just played about twenty games in a row. I am horrible at the parallelogram, but I am some sort of wizard at bisecting angles and finding the centers of shapes.


Xaron(Posted 2015) [#14]
Thanks SpaceAce, I can see you in the highscore list. :)

The versions for iOS and WP8 are available, too now:
https://itunes.apple.com/us/app/shape-master-eyeballing/id1023698847
http://windowsphone.com/s?appid=60f0adce-e236-4eab-956b-e20339bbe874


Danilo(Posted 2015) [#15]
On Windows Phone 8, only the first game gets into the high-score list.
2nd, 3rd, etc. round are not showing up in the list.

After restarting the app, again only 1st round is added to high scores list.

It's working correctly on iOS and Android.


Xaron(Posted 2015) [#16]
But accessing the list works always in one session?


Danilo(Posted 2015) [#17]
Yes. It just looks like 2nd, 3rd, etc. results are not added to the list.


Xaron(Posted 2015) [#18]
Thanks! Will check it. Probably something to do with my super complicated authentication stuff. :D


Xaron(Posted 2015) [#19]
Haha, now that's funny:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/6d16167e-f7fa-4ec7-a0b9-75befe33d14f/ixmlhttprequest2-is-returning-cached-responses?forum=winappswithnativecode

So basically you get cached results, that's the reason it works only for the first time. And, there is no solution from Microsoft to it. LOL


Xaron(Posted 2015) [#20]
Workaround:

Open httprequest.winrt.cpp and replace

void BBHttpRequest::Send(){
  _cb->Start();
  if( FAILED( _req->Send( 0,0 ) ) ){
  //	bbPrint( "Send failed" );
  _cb->Failed();
  }
}


with:
void BBHttpRequest::Send(){
  _cb->Start();
  _req->SetRequestHeader(L"If-Modified-Since", L"Sat, 01 Jan 2000 00:00:01 GMT");
  if( FAILED( _req->Send( 0,0 ) ) ){
  //	bbPrint( "Send failed" );
  _cb->Failed();
  }
}


Background:
https://social.msdn.microsoft.com/Forums/en-US/dadbea2e-85d4-4af0-9283-2f91e5b7cc2c/ixmlhttprequest2-and-caching-is-broken?forum=winappswithnativecode

You can force XHR to retrieve the latest content by setting the "If-Modified-Since" HTTP header in the request and set a time in the past.

If you have control over the server response, you could send back an Expires HTTP response header with a value 0 or a date in the past. That should make XHR retrieve the latest response for you.

You are only required to do one of the above, changing both the client and server side code is not necessary.

The client side code could be changed to something like this:

xhr->Open(...)

xhr->SetRequestHeader(L"If-Modified-Since", L"Sat, 01 Jan 2000 00:00:01 GMT");

xhr->Send(...)

For changing the server side behavior if your server side code is based on ASP.net you could change your response header like this:

Response.Headers.Add("Expires", "0")

Thanks,

Prashant.