Simply put, game theory is the study of making choices. It is about strategic decision making, and its outcomes when two or more economic agents interact. This is a very important field of study, and can help predict major events. Taking a very grass root example, the prisoners dilemma is the best way to explain game theory.
Imagine two criminals who have been caught by the police for drug possession. They both are suspected of having committed a larger crime, and are hence taken into two separate interrogation room. Each player can either confess, or deny, as shown in the matrix below (source: khanacademy.org ).
It is found that if either criminal knows the choice of his other, he will go for the option that benefits himself . If the other criminal then changes his choice, they both get the worse prison sentence, hence validating the Nash equilibrium, “which is a solution concept of a non-cooperative game in which each player is assumed to know the equilibrium strategies of the other players, and no player has anything to gain by changing only their own strategy. If each player has chosen a strategy and no player can benefit by changing strategies while the other players keep theirs unchanged, then the current set of strategy choices and the corresponding payoffs constitute a Nash equilibrium.”
After three weeks of learning many new things about Computer Science, it was finally time to pick a specific field, and create a final project. While most others worked on the software side of things, I was rather fascinated with Arduino, and working with my hands being a skill of mine, I decided to incorporate it in my final project. Initially, I decided to use the included buttons to create a simple three key piano, but that seemed too basic. So instead, I used aluminium foil, along with a bunch of resistors, attached onto a cardboard base to create a touch sensitive paino.
Above are pictures of the resistor assembly. Each resistor is connected to its respective strip of aluminium, which form the touch sensing keys. The two resistor legs are then punctured through the cardboard base, and then connected to the micro controller below, to keep a clean look on the front. The individual wires from each resistor are then connected to the arduino board which senses changes in capacitance when one touches the strip of aluminium. This sends sends a command to the Piezo Buzzer which outputs a sound. In this case, the first notes are C4, D4, E4, F4, G4, A4, B4 and lastly, C5.
Bret Victor, winner of the Apple Design Award and creator of the Alesis Micron gave us a guest lecture yesterday. He is a pioneer in interactive graphics as well as Electronics, and was an inspirational speaker.
His demonstrations were absolutely fascinating, and his radically different approach to programming is great. Features like viewing the output in real-time, timeshiftin the instances of animation, sliding numerical values and more were revolutionary.
My jaw dropeed multiple times during his presentation, and I’m sure I wasn’t the only one. He later even gave advice on my Arduino project which was great. All in all, I am grateful to have interacted with a person like him, and I will never forget it.
On Friday we were introduced to Arduino, a programmable mictrocontroller that began as a project for students in 2005, and is now renowned worldwide for it’s immense capabilities and interactive approach to the world around it.
In the box, we got the Arduino board itself, a breadboard (where we attach all the components), resistors, LEDs, a motor and numerous other interesting stuff. Plus, a great guidebook that took us through different projects that individually incorporated each of the different parts included. The temperature sensor was particularly frascinating!
One of the important things to remember when connecting :Ed lights is the use of resistors so that an excess of current does not flow through them. This allows them to safely operate for long periods of time without, well, blowing up.
Going deeper into processing.js we learnt the fundamentaals of integrating Physics into the program, and make objects move accordingly. By incrementing the speed of the variable that controls the object’s speed, we were able to make it move across the windows in whichever direction we liked.
The next challenge was to reverse it’s direction on hitting the edge of the window. In order to accomplish his task, we used if statements in the draw loop which changed the changed the speed of the object from positive to negative, hence resulting in it moving in the opposite direction.
1. What is your prototype about?
My prototype is an Arduino microcontroller connected to a breadboard fitted multiple LEDs in order to create a numeral display. Two buttons will be present on the bread board, labelled ‘1’ and ‘0’ respectively. When the user enters a random string of 1s and 0s using the buttons, the Arduino Board will convert the digits into numerals that we can understand, and display the result on the display made of LEDs.
2. What will people learn from your experience?
My experience helps people learn about the fundamentals of binary, and converting it into numbers using a fun and easy to use colorful interface.
3. Will it be interactive or is it something people will watch? If interactive, what can the user do?
The demonstration is 100% interactive where users can experience it themselves.
4. How would your design fit in with the Exploratorium? Describe your experience from yesterday and include pictures. Use examples!
I believe my design would fit well in the exploratorium since it is a fun way to convert binary into numbers and see the result in real time. It is a great way to introduce children to binary and the way it works.
5. Draw a diagram that explains how your prototype works.
During the first week of the course, I developed a liking for game design, especially after creating my own short game on Friday. It is a very creative area, and the posibilities are limitless.
(My Game! -> )
My second choice will be cellular automata, simply because it seems like a topic I would be intersted in. After viewing it’s demos and interactive approach, I would like to incorporate it in my final project. (Waiting for day 9!)
Last, but not the least, my third choice is Circuits. I have had experience in robotics at school, and have worked with LEGO Mindstorm kits in the past. For the Final Project, Arduino is what I will use, since it is fairly easy and at the same time very capable.
After learning the basics of processing.js, we move on to algorithms, particularly for sorting. We then implemented Selection Sort for sorting cheesesticks (Basically a bunch of rectangles) in ascending order. We had to use ‘for loops’ to check each of the cheesesticks, and then two int functions, ‘i’ and ‘j’ and a temporary variably to hold the values of ‘i’ and ‘j’ when they awe swapped.
After getting the sorting function to work in ascending order, our next task was to animate the cheesesticks and show the sorting. Using ‘if statements’ in the draw function, we were able to implement the animation effects, and visually depict the Selection Sort Algorithm.
As a part of class here at the Stanford Pre Collegiate Institutes, we had the opportunity of getting a talk by Stone Librande, who shared his experiences in the Game Design industry. Having worked with Blizzard Entertainment, and Electronic Arts in the past, he is currently working with Riot Games on a new project and had a lot to share with us.
We learnt about how he started small, creating board games as a hobby. Then after studying about Computer Science and Animation at USC, and then MIT, he started work with Blizzard entertainment, as a designer for Diablo 3.
He told us how Video Game designing incorporated a lot of blueprint making and planning, and how seemingly simple games actually have months, and often years of effort put into them by Designers and programmers.
He showed us, step by step, how he designed the Simpsons Game. From a cardboard box terrain with post-it notes stuck over it placed on a table, to a detailed map with separate industrial, residential etc. sectors. It was a very inspirational experience, and we got to ask him tons of questions afterward, which was great. Thank you Mr. Librande!
We recently learnt about the the Processing IDE, whih allows users to create interactive simulations and objects. It is based on Java programming language, and user input is converted into Java code to implement the function.
One of our assignments for today was using the ‘key press’ feature to make objects react to user input. Given some basic code, I modified it to create a click-speed based two player game. The object of the game is to click either ‘p’ or ‘q’ (depending on player side) repeatedly, as fast as possible in order to move the disc towards your territory. As soon as the disc touches one of the players edges, he/she wins!
Click here to play the game!