Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Looking at Other Solutions #6

Closed
AlexDaniel opened this issue Sep 21, 2017 · 21 comments
Closed

Looking at Other Solutions #6

AlexDaniel opened this issue Sep 21, 2017 · 21 comments
Labels

Comments

@AlexDaniel
Copy link

AlexDaniel commented Sep 21, 2017

IMO not being able to look at other solutions is better (actually, I'm no longer sure), so I don't think there's a need to any dramatic changes. However, I still want to show off some of the perl 6 tricks, so maybe some solutions should become public under certain conditions?

For example, if some solution was 1st for 1 year, let's make it public? Maybe this way others will have a chance to beat it.

See also: https://irclog.perlgeek.de/perl6/2017-09-19#i_15187089

@JRaspass
Copy link
Collaborator

Thinking about this a little more, after @lizmat went and name dropped the idea in the latest Perl 6 weekly! https://p6weekly.wordpress.com/2017/10/30/2017-44-nom-mastered/

What if I made it so you could only see solutions that are equal or greater to your own in length? You still might pick up ideas to help you advance, which would then let you see more solutions, but it would stop people just copying the top solution and calling it a day leading to a very boring and unfair leaderboard.

What do you think @AlexDaniel? Shouldn't be that hard to implement, I was thinking of adding a clickable eye to the leaderboard for ones you can see, perhaps this icon - http://fontawesome.io/icon/eye/

@AlexDaniel
Copy link
Author

I'm fine with that. That will be per language, right? (e.g. if I'm first with a perl 6 solution I wouldn't be able to view Ruby solutions)

@JRaspass
Copy link
Collaborator

I hadn't thought about language (teach me to design things at 3am!), but yeah per language makes sense.

@thospel
Copy link

thospel commented Apr 2, 2018

If you do this you should only be able to see solutions of people whose best is worse than your best (within a single language)
Since quite often you submit a few worse versions while working towards your best result. Other people with good scores (but not better than your best) would then be able to see these not yet fully optimized versions and also do the often simple final optimization. Simularly you should only be able to see solutions of a certain minimum age, otherwise you could catch a good method while the other user is still optimizing it.

@AlexDaniel
Copy link
Author

AlexDaniel commented Apr 2, 2018

I agree with the minimum age restriction, and I even proposed 1 year in the OP (although in a different way). Maybe 1 year is too much though.

As for allowing only the best players to do this, I don't know. It feels like this will only make it easier for those who already have great scores (and I guess this means that comparatively it will be harder for beginners to start out).

@GolfingSuccess
Copy link
Contributor

GolfingSuccess commented Apr 7, 2018

@JRaspass: On top of the issues @thospel has mentioned, there's another reason to not be able to see other solutions at all: You may have submitted your solution as number 1 in your language, but some part of the number 2 solution might be able to be used to make yours even shorter. I suspect that could be the case for me too, if viewing others' longer-than-yours solutions gets implemented.

@bforte
Copy link

bforte commented Dec 26, 2018

@GolfingSuccess: Isn't that the whole point of allowing to view shorter/equal-length solutions of others?

However there is a problem with allowing people of equal-length to view their solutions. It will then become a matter of who submits later and code-golf should be about code-size and not timing:

Imagine Alice has a solution with N bytes, Eve comes and manages to get N bytes too with a different approach, sees a trick in Alices' submission and is able to beat Alice. Now even though Alice was faster, just because she wasn't around in the moment of the tie, she has a disadvantage.

There are two solutions to that issue:

  1. Only allow to view strictly longer solutions.
  2. Keep a history of submissions and allow users to view longer/equal-length solutions within that history.

@GolfingSuccess
Copy link
Contributor

@bforte As I said, even a 55-byte solution might have a trick that can help your 44-byter become a 39-byter, for example, so I've proposed that the only solutions you can see should be yours.

@bforte
Copy link

bforte commented Dec 27, 2018

@GolfingSuccess Yes, that's why I actually think it's a good idea to implement that. For me, that would be the exact reason why this would be a good feature.

Continuing your example, a problem I can see: If the 55-byte person gets theirs down to 44 bytes they should be able to look at the person's with (now) 39 bytes old 44-byter. So, the system would need to keep a history of incrementally better solutions to be fair.

@GolfingSuccess
Copy link
Contributor

@bforte I feel like this would be too complicated to implement. Also, regarding your first paragraph, I think I disagree tangentially here. All efforts should be your own, not "oh my I just found hidden gem in long solution my solution now even shorter".

@AlexDaniel
Copy link
Author

What about a “Let others see my solutions” checkbox? It can be off by default.

@bforte
Copy link

bforte commented Dec 28, 2018

@GolfingSuccess I see, makes sense. However if both parties could actually do that, it would be nice. Though, it would require a different and more complicated system - yes.

@primo-ppcg
Copy link
Contributor

primo-ppcg commented Dec 28, 2018

I'd like to be on the record having stated that I don't really like the idea. Primarily, because it gives an advantage to those who already have the upper hand, and doesn't seem to serve much other purpose, as far as I can tell.

An alternative, long standing tradition in code golf is to post-mortem certain challenges after a specific time period, so that all solutions become visible to everyone at the same time. It keeps the leader boards from becoming stagnant, and allows people to learn new tricks from the top solutions. Sometimes post-mortem submissions are accepted, but generally only if they are strictly shorter than the previously shortest solution. If others' solutions are to be visible in any form, I would be much more in favor of this instead.

Addendum: Certain "classic" code golfs, e.g. 99 Bottles of Beer, FizzBuzz, Pi, etc. probably shouldn't ever be post-mortemed, but that's purely my opinion. Maybe you could hold a poll to see which challenge the majority of people would like to see post-portemed before closing it.

@GolfingSuccess
Copy link
Contributor

@primo-ppcg Regarding the poll, I'm not sure if that's possible. Challenges do get added over time, and I don't think James can open a poll for each and every one.

@primo-ppcg
Copy link
Contributor

@GolfingSuccess Let's say, for examle, that it became policy to close one challenge every 3 months. For the duration of those 3 months, a poll could be running asking users which challenge they would like to see post mortemed next. I don't believe that this is a complex task.

@JRaspass
Copy link
Collaborator

JRaspass commented Jan 2, 2019

If I may throw my $.02 into this hot topic, I'm leaning towards allowing people to "publish" their solution if they wish, hopefully enough people (but not too many people) will do this to make it interesting?

@somebody1234
Copy link

somebody1234 commented Jan 3, 2019

But what would happen to the leaderboard if the shortest solution (or one of the shortest) was published? Wouldn't basically everyone copy the solution? It might be possible to only reveal certain parts of a solution without giving too much away though.

@lizmat
Copy link

lizmat commented Jan 3, 2019 via email

@JRaspass
Copy link
Collaborator

JRaspass commented Jan 3, 2019

@lizmat The problem with that is people will just flip a variable name or two, right now getting there first guarantees you to be above any duplicates, but they will score identically.

@JRaspass JRaspass changed the title Looking at other solutions Looking at Other Solutions Jul 17, 2019
@JRaspass JRaspass added the idea label Jul 17, 2019
@ncm
Copy link

ncm commented Aug 16, 2020

Seeing others' solutions on active puzzles doesn't seem like it would have good results, but after a puzzle has been mostly inactive for a long enough time, exposing the solutions would be very interesting.

For active puzzles, I would like to be able to run the other solutions with custom input, to experiment on them.

@SirBogman
Copy link
Contributor

I'd like to be on the record having stated that I don't really like the idea. Primarily, because it gives an advantage to those who already have the upper hand, and doesn't seem to serve much other purpose, as far as I can tell.

I agree with @primo-ppcg and I don't like the idea as stated on the about page: “a feature is in development to allow you to see any solution that you already beaten in score.”

In an offline code golf competition, I compared my solution with the winners, after it was over. Although my solution was longer, I had an insight that the winner didn't have and combining the ideas in both of our solutions resulted in an even smaller solution. It was fun to write the shorter solution together, but it wouldn't have felt fair if only the winner had access to both solutions. I don't think it's fair to give more of an advantage to the people who are already ahead.

I understand that it can be fun to show off your clever golfing solutions and I don't have any suggestions for that for this site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

10 participants