Basically I want a GUI program that does the following.
The game is rock paper scissors (rock wins against scissors, paper wins against rock, scissors wins against paper), but each player is limited in the number of times they can "use" rock, paper, or scissors. For our example, we will say each player can use rock, paper, or scissors three times each. The GUI would ask how many times each player can use each hand signal. Then it would ask, "First round?" You'd input into the GUI the hand signal each player started with. After you input that data, it would calculate the best possible response based on the prior round. Then it would ask you, "Second round?" You'd enter each player's hand signals, and then it would again calculate your best response as player 1.
## Deliverables
Ultimately the purpose of the program is for player 1 to "WIN" with more points than player 2 within the limitations of the rules of the game. I know this won't be possible every single time as the program cannot govern what signals player 2 responds with.
* * *This broadcast message was sent to all bidders on Wednesday Feb 20, 2008 3:52:43 PM:
Just to clarify and be perfectly clear about what the program should do. Again, it must have a logic-base that wins as much as possible. During the coding process, if you can provide a numerical statistic as to what percentage of time it wins given a normal, 3 of each item start, that'd be great. Let's start with you being player 1 and you start playing against player 2. Let's say player one starts with 4 rocks, 3 scissors, and 2 papers. Player 2 starts with 3 rocks, 3 scissors, and 3 papers. You'd enter this information into the GUI. The first round, I as player 1 choose rock, and player 2 chooses paper. (Player 1 now has 3 rock uses, 2 paper uses, and 3 scissor uses left, Player 2 has 3 rock uses, 2 paper uses, and 3 scissor uses.) Player 2 "won" the first round and I would enter in player 1 rock, player 2 paper, the gui program would then respond with the best possible "pick" out of my available items left. In order for the program to figure out the best pick, it would have to compute the best sequence of actions from that point to the end of the game. Then, player 1 would pick based off the program, and player 2 would pick. Then player 1 would enter each pick into the program, and it's recalculate to see what the new best next pick is.
* * *This broadcast message was sent to all bidders on Wednesday Feb 20, 2008 4:26:54 PM:
Good question, I wanted to broadcast the answer to all bidders. Do you want the program to randomly pick player 2's action? And you pick player 1's action? No, the program replies after the first round, what I as player 1 should pick, then I input into the program, my selection as well as player 2's selection. Player 2 is a separate entity that I have no control over.
* * *This broadcast message was sent to all bidders on Thursday Feb 21, 2008 3:45:27 PM:
After talking with several of the coders, I think my intended hope is nearly impossible. I had hoped that through the use of programming, you could create a strategy that would a. make use of the limited uses of each rock/paper/scissor, and b. ultimately work towards a situation where you're winning by the end of the game. The problem with my hope is that there is absolutely no way to anticipate the opponents response with any sort of regularity. One opponent may follow a set strategy and then switch it on his very next move. What I had noticed with the game is that you can move towards a situation where you automatically win the last few deciding rounds because of the signals you haven't played. The best players I've seen sem to do this, but I think in the end that this is more intuitive rather than logical. If anyone has any further ideas, please let me know.