Competition: Like it? Loathe it?
I think it brings out the best in people. I think it helps people form realistic images of who they are- their strengths, their weaknesses.
"Competition" and "testing" have become dirty words in some circles. A pity, I think. Properly managed, both can bring pleasure and can motivate people to great efforts. Lots of little tests, in lots of different areas, can break down test-phobia, and give people a chance to know that they too have a super-strength, even if it isn't in a widely valued skill. Who is the most proficient Rubic's Cube solver in your school? Shouldn't they be celebrated for being the best? Shouldn't there be an objective way for any individual to find how good they reallyare... not just how good they are in their un-informed opinion?
So I hope you'll take up this programming challenge, and develop a system which could motivate people to compete... in a way that could be fun, if properly managed.
This webpage is a challenge: Can you... or you and a team of friends... build the ultimate tennis ladder?
(Tennis ladder: A list of who can beat whom in a game of tennis. There was a time when many schools had a list like this, and participants were encouraged to say "I want to play you" to people not far above them on the list. If the person who was asked for a match couldn't find a good reason for declining, the order on the list was revised. If the person who asked won the match, the order was revised.)
Three things inspired this challenge...
1) The idiot games I spend too much time playing on my cellphone which purport to "rank" your success in a game against other players.
2) The "Battle School" mess hall video screens in the brilliant sci-fi novel by Orson Scott Card, Ender's Game.
In the novel, a youth named Ender finds himself in a military school, in a platoon, itself in a larger grouping. ("Company").
In the mess hall there are many, many computer generated lists, updated almost continually, showing who is the best sharp-shooter, who can complete the assault course the fastest, who got the best marks on the last test of theoretical battle tactics, etc, etc. Both lists for the success of individuals, and list ranking the platoons and companies by the aggregated success of the members of the various units.
3)... And of course, the tennis ladders already mentioned. Such ladders exist for many other things of course, chess for instance.
So... here are some ideas about how such a system could be built. How you, or you and some friends could set up a system which lets people do small tests/ play short games. Individually? In teams? In two-opponent scenarios, like the chess and tennis?
Up to you! Try to PLAN in advance the conquest of a SIMPLE objective... but a conquest planned to open the door to more sophisticated solutions built on the simple objective.
To me, this seems too big a project for just one person. So I've proposed one way it might be broken up between members of a team.
I'm going to use a tennis ladder as an example for a while. Substitute other games or tests that result in a score as you wish.
A tennis ladder running in a single computer is probably too simple to be worth attacking as a group.
How about a tennis ladder running on a web server that anyone can access?
There would be a URL to show you the current state of the ladder. This would be read-only access, open to all.
There would be another URL to take you to a page where the results of a recent game could be entered. This would entail write access, and would of course need all sorts of hardening to prevent all sorts of Bad Stuff. But it could be done!!! (Accountability would be a big part of making a system that would survive the things people would try.)
I would also like to see provision for disguising the names of the people in the bottom few places on the ladder. Something that person could recognize, but which wouldn't mean anything to other people.
I can't imagine any solution that doesn't depend on a database.
I can imagine a system which could run on a single computer, although it wouldn't be as much fun for the users. It needs to be fun to motivate people to participate. Unless there's a steady stream of new data (results of matches) pouring into the system, no one will have any reason to access it.
I can imagine a system that tracks performance in just one activity... but if the starting point can be achieved, if the ultimate goal was provided for in the PLANNING, extending it to cater for multiple games/ tests could be relatively simple.
By the way: If I ever get around to trying to build such a system, I think I would use SQLite for it.
LOTS of planning, by all members of the group attempting this challenge, will need to happen before there is any point in individuals, or sub-groups, tackling any components of the planned result.
(May I commend my page about how a group can work together to produce a product?)
Sub-group tasks...
If you've read my thoughts on writing a system as a group (the URL mentioned a moment ago!), I hope you can see places where for any group to have success with this challenge there will need to be excellent PLANNING and PROJECT SPECIFICATION before anyone starts to write any code?
For instance: Creating the php to put new records in the database is listed as a discrete element. And so is "set up database". There's no reason these two tasks can't be undertaken by separate members of the team... IF "the database" has been designed in detail before anyone starts implementing it. What will the tables be? The fields (columns)? How will the data be coded?
For another example: The people creating the games will need to be creating games that produce something like a score. Or a "Susan should go up the ladder above Fred". Or something. If you do the job right during the planning the people building the database will know what sort of things will be coming in. If they don't know that, how can they build the database?
There's no reason that only one type of "score" can be allowed in the system. It might manage a tennis ladder AND a small exercise to test how quickly users can remember their times table. If you can find ways to have "scores" with more than one element, so much the better! With the times tables example, I'd suggest that the test consists of how long it takes a user to answer 20 questions. (If the user still hasn't got the answer to one after 4 seconds, the program should just count it as "wrong", and go on to the next problem. And the user can try to find the answer as often as he/she wants until the 4 seconds have passed.) Under that scheme, a user's score could be the percent of questions answered correctly on the first try, AND how long it took the user to answer (or fail to find answer in 4 seconds) all 20 questions. With those TWO numbers, the display of how people have done would be a two dimensional area with dot on it. If the x axis were the percent right, and the y axis were time taken, there would be multiple ways to win. If you were really fast, but not very accurate, your dot would be to the left, but also high on the left.
The better you do the planning, the more things will be possible in your system.
I don't pretend that the above gives you a "plan" to implement. But I hope it sparks ideas in your head.
Plan the best competition scoring system ever created. But start small!!! Maybe build something that "only" manages tennis (or chess, or spelling bee, or... ) ladders... but perhaps allows several ladders to be presented from one "population" of players... Suppose you are using it in a school. There could be one ladder showing the standing of everyone. Others showing the standings of people year-group by year-group.
Maybe start with the games/ tests which will generate the scores to be displayed by the system.
Note that many of the sub-tasks can be built on a stand-alone computer, without taking on the challenges of operating with a net based server.
Search across my sites with a Google search...
This searches wywtk, skywoof, sheepdogguides, sheepdogsoftware and arunet... but doesn't always give all of the pages that have content which matches the criterion.
Use the following to search THIS site.... (Go to my other sites, below, and use their search buttons if you want to search them.)
(Alas... my Lazarus material is split across two sites... SheepdogGuides.com and WYWTK.com. Sorry!)
This search engine is "old skool"- it merely looks for the words you type, so....
* Spell them properly.
* Don't bother with "How do I get rich?" That will merely return pages with "how", "do", "I"....
Please also note that I have four other sites, and that this search will not include them. They have their own search buttons.
My WhatYouWantToKnow site- https:/wywtk.com.
My SheepdogSoftware.co.uk site.
https://www.arunet.co.uk/tkboyd/index2.htm: My ancient site at Arunet. (Some of the material there is dated, but there are useful pages about general principles which are timeless.)
To email this page's editor, Tom Boyd.... Editor's email address. Suggestions welcomed! Please cite "lt8n-chall-ult-ladder.htm".
Page has been tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org. It passes in some important ways, but still needs work to fully meet HTML 5 expectations. (Copy your page's URL to your clipboard before clicking on the icon, so you can easily paste it into the validator when it has loaded.)-->
AND it has been tested with...
Why is there a script or hidden graphic on this page? I have my web-traffic monitored for me by eXTReMe tracker. They offer a free tracker. If you want to try one, check out their site. Neither my webpages nor my programs incorporate spyware, but if the page has Google tools, they also involve scripts. Why do I mention the scripts? Be sure you know all you need to about spyware.
-- Page ends --