Journal Day 1                                                                                                                                            PROGRAMS
facts
1.the kernal manages communication between hardware and software
2. centos is a version of red hat which is a distribution of linux
3. alt+f2 is amazing
4. KDE stands for the Kool desktop environment
5. sea monkey is an all in one internet application suite
6. seamonkey uses mozilla source code
7.KDE is an internatiobnal technology team that creates free software for desktop
8.centos is 100% binary compatible
9. the kernal is also known as the cpu
10. Python > Java

Wackadot stuff
my suggested order
game screen
cursor
dots
scoring

I ordered my steps in the same way that Dr.Kuhl did but i left out a lot of steps in process.
This is probably because i knew nothing about programming when iImade my list. I suspect the reason that I got the
basic order correct is that my programmer gets really angry when I design things for our games in the wrong order.


step1:
In this setp I just set up the screen for the game the number variable
determines the dimensions for the game screen as well as the background color
which is entered in an R,G,B format.

step 2:
In this step I added a dot. Before adding the dot I had to add a color to the game , once again in the R,G,B format
in this case it was 255,0,0  so pure red. Radius determines the size of the dot, and the x,y cordinates determine its starting location.
Each step requires additions in several places because adding a dot to the game falls in many areas. you have to concider size,color,
collisions,movement,etc

step 3:
in this step I just made our cursor appear as a dot, which requires additions in two different areas
one dealing with cursor movement and one dealing with the dot itself. I started to undertsand at this point how easy it would be to
add several dots

3.1
you just erase drawgrp .add ( cursor  )   from the code.

step 4:
In this step i added two more dots which was basically just a repeat of step 2.
I also added the color blue for the second dot. I learned how to add more colors by doing this step.

step 5:
Collisions were really tricky for me i hope we go over more. addings dots and obstacles is one things but events are definatley
more tricky. Collosions allow you to play they game by having dots respond to other dots

step 6:
swapping colors was kind of confusing as well . You cant just code for the dot to change color. you also have to redraw
the circle which was tricky to figure out. This setp essentially makes wakadot wakadot.

step 7:
doing the socre actually helped me figure out how to position things because this was essentially my fourth time doing it.
The score related events are easier to understand than some of the others. matching up with the wrong color causes a loss of points and the correct
color ccause a gain of points.




Journal day 2
today was really intensely difficult.I was lost for like the first block of class but, after that i started to catch up and actually learned quite a bit in the process
First I learned the really basic stuff in ch1 which i think everyone basically already knew. It was interesting however, that computer science isnt the study of
computers but the study of what can be computed. After ch1 the real programming started which got difficult relativley quickly. the first thing we did was basic adding subtracting multiplication and division. Comments are also really usefull and one should use them whenever programming anything complex. You can make a commentby starting the line with #. Ch2 was mostly about what happens when you move around the quotation marks. 3+2 , "3+2", and "3"+"2" all have completley different meanings in python.Then I learned about loops which was probably the weirdist concept i learned today. I also really enjoyed learning how to make programs interactive with x=input("w/e"). Once I had that concept I was actually able to start making slightly usefull programs.Then that was expanded when we did ch3 and i learned more of the math stuff and how to import functions. I was really having fun doing the ch3 excersises like making the program to dtermine the cost of pizza , coffee , or to determine slope. I actually thought i was
doing good for like 10 minutes, then i got to number 16 and got destroyed and based on a general survey of the class Adam is basically the only one who was actually able to do it on their own. It seems like i learn programming much better throught excercises and hands on stuff. I dont keep up as well when its just lecture.




Journal day 3

Extra Fun Review
variables: are replacements for values or chunks of code like v=2. variables can only contain letters numbers and underscores. A variable can only start with letters or underscores so 2v is not valid.
Loops are used when you want the computer todo something multiple times so instead of typing out the same command a bunch of times you just type a loop.
Numbers are numbers. you use them in calculations. There are three different kinds.For example 3.0 is a float.3 is an integer and 3L is a long integer. you should use integers when possible because floats are often innaccurate.
Casting is when you convert the data type of some value. 3.0/4 would be presented as a float because 3.0 is a float,even though 4 is an integer.You can also change data types manually by doing something like float(value) or float(3)/4. These methods also apply to long integers.

Stuff I learned today
I know we learned loops yesterday , but I learned loops today. I had no idea how to make a working loop until about 2:45 PM today. It only took Dr.Kuhl and A-Sauce showing me loops about 8 times before it actually sunk in.Some how i had never even seen or heard of acc before today. so that was the major acheivement of my day. We also learned stuff about lists and more about strings which is all fairly easy and quite usefull.Lists are amazing. When you make a list out of a sentance its like a mind-gasm . Your essentially doing math with words.Learning how to convert a string into a list dramtically increased what i have the abillity to program. Class ended before I could really figure out the document importing stuff though,  thats still really fuzzy. Is there a specific way to transform an imported document into a string or is it already a string once you import it? Is import even the right word in this situation? Its all very confusing.


Journal day 4

what makes a good game
like i said before a good game is lots and lots and lots and lots of content. more content is always better. No one as ever said "I really hate this game because theres to much to do." POKEMON Gold and Silver are consistently chosen as the best POKEMON games,despite inferior graphics and gameplay.Why? because these games have the most catchable POKEMON and the largest area to explore. Aside from amount of content the game also absolutley must have an engaging story and addictive gameplay. RPGs with generic plots are all lumped together as one game and can all be found in the bargain bin at your local Circuit City, addicting gameplay is also important but is much more easily accomplished than an engaging story or a massive amount of content. I also believe that in this day and age all video games should have some sort of online capabillity. There really isnt an excuse to not have online play at this point.Halo 3 and Halo 2 are primarily online games and are also the two highest grossing media events in history.Also if you fact check me on that which im sure you will thats based opening night sales only.Addittionaly MMO's like World of Warcraft and Maple Story enslave 10s of millions of humans world wide so they must be doing something right. Finally if its a multiplayer game the learning curve needs to be appropriate games like Super Smash Brothers Brawl and Street Fighter 4 will always epic fail because of the stupid learning curve in those games.

Understanding games stuff
Those videos were awesome and the games were good. I already basically new all the concepts presented but i really enjoyed watching and playing through the  videos and the tag game at the end was really good. The storyline was engaging, the gameplay was addicting, and it had an appropriate learning curve.

What i learned today

today we learned about functions which  essentially make everything really easy because you can make a varibale equal to a massive chunk of code . Thats basically all we learned new today because of our amazing video game discussion


Journal day 5

Today we learned a lot of new material and started work on actual games. we learned about while loops which are much easier than for loops and we learned about booleans which are part of a while loop i guess. booleans use and,or,and not to determine whether the while loop keeps looping. Booleans make sense so i liked using them and while loops. I dont know if this was intended but, i also learned about if,else,and elif. I feel like im finally beggining to program on my own at least to a small degree and when i do recieve assistance i understand the changes being made to my code i dont just nod and say uh huh like i did during the first few days. We also started to learn about pygame and classes yesterday,which is more game related. I'm pumped that were finally starting to work with games.

pygame facts
1. pygame takes the pure out of game development
2. pygame is a set of python modules designed for writing games
3. pygame is free
4. new silliness is added to pygame every 3.1415 seconds
5. supports linux,windows,mac OS, etc...
6. you can use pygame without a monitor
7. most bugs are patched within an hour of being reported

Journal day 8
 Today I learned about sprites and nested for loops. I know I should already know how to use a nested for loop but I diddnt until today. I kind of had a realization at about 9:45 this morning and i finally understood how to run a loop inside of a loop. Sprites put the video in video game for our purposes and pygame makes it really easy to draw or import sprites for game creation. A sprite consists of two main parts. The first one is an image which is known as a surface. The second is a location to draw the image which is known as a rect. Animation of sprites with pygame sound like a lot of labor however, Because essentially has to be redrawn at every frame of animation. so you could either have a massive amount of code or maybe simplify animation into a compact loop or function, or maybe a function with a loop. pygame organizes sprites in a set of classes known as sprite groups which are easy to use lists of sprites. Pygames sprite groups allow you todo two things. The first of which is clear the entire screen. The second of which is to update the entire screen.


Journal day 9
I diddnt really  learn anything today, but i was like pew pew pew programming my maze. I got a lot of work done today and i programmed most of it on my own. Im so proud that i successfully turned a list into a real maze. It may not seem like a real acomplishment for anyone else, but it was a big deal for me.
so, yea basically all i did today was work on my maze.

Journal day 10
 M .I.A. but it was good

Journal day 11
Today we learned about AI from Mac whos like the biggest baller ever(Second only to Dr.Kuhl). He went over the history and the origins of artificial intellegence ,which he summarized as three big ideas. The first big idea dealed with graphs and connections which turned out to be horribly inneffective. In Mac's terms it would take all the time thats ever happened and everycomputer to make chess work this way. Side note: Mac uses a Mac. The next big idea was a biological approach in which computer scientists atempted to replicate to some degree the human brain and the neuron. The result was something called a neural network which was fairly effective at solving problems but was impossible to understand which made it hard to fix. The major breakthrough he associated with the neural network was the computerized reading of zipcodes on letters which is 98% accurate and much faster than human sorters(is sorters a word or a real profession?)The 3rd big idea deals with statistics which he described as modern day computer science. This method is fairly new. According to Mac it has only been around for about three years. The example he used was like the sonar robot that was trying to find himself.

Journal day 12

Yesterday we learned about brain machine interfaces , which are really cool. I dont think the technology should go beyond correcting lost senses like vision or hearing and replacing lost limbs with prosthetic extremities. Building a game controller or a "super suit" with this technology is just a waste of  money. I think the technologies have massive potential in the medical feild. Its unfortunate that monkeys have to die during the research, but its really something that needs to happen. The research he presented was really fascinating. I diddnt realize that the technology was far enough so that a monkey could actually learn to control a cursor on screen with just his thoughts. Also i cant believe they have a freezer here labeled " monkey heads do not touch!". Also i dont understand everyones obession with downloading knowledge thats so random and isnt even relevant to the research that the speaker does. Overall i really enjoyed the lecture ,even though ive seen it before i still found it really interesting.


competition/game in a week reflection
its actually really hard for me to relate here because im really not a  very good programmer and I couldnt make a game on my own. The actual programming I did in this contest was very limited. I was put in charge of deciding gameplay ,content,title,art,powerups,enemies,story,and dialouge  So, im glad that I was able to contribute in form of ideas and small amouts of programming and spriting but, it just diddnt feel like my game. Even though essentially everything that went in the game was my idea (most of our content was cut including all of story) I just dont feel like its my game. The best thing i have been able to program on my own is maze 3.0 and I did recieve some assiatnce on that. I could blame Peter and say that he wouldnt let anyone else program which is mostly true but, its also my fault for being bad at programming and not making the assertion that everyone should program a large portion of the game. Honestly im really dissapointed in myself  and the entire group we may have had the most playable game but, we really diddnt work together in terms of programming. Peter won the challenge by himself and we diddnt argue with him. So the point of this little rant here is the lesson that I learned is  that I cant be afraid of programming anymore just because im not amazing at it. I learned more of a life lesson here than a programming lesson. I diddnt really realize this until I read about hackenslash and  his experiences and the lessons he learned about programming. While reading I was interested but I started to see that I couldnt relate to any of it thats when I realized that I had failed. Computer science  probably wont have anything todo with my future career and to be honest im not that passionate about it but, I picked this class for a reason and im going to prove myself starting monday. I would like to team up with Alex becuase he has had this same experience as I have but, he is even more distraught because he actually wants to be a computer scientist. I think we would make a good team because we both love video games and we both want to prove that were not useless and that we can make a great game without the assistance of adam, peter, or Dr.kuhl. In summation , I wish I had more to say about that actual comparison of programming experiences but, I dont and realizing that I diddnt taught me a lesson that I needed to learn. I know this is probably like 180 degrees off of what you wanted in this reflection but its something I really needed to say or in this case type and this journal entry seemed like an appropriate outlet.


Journal Day 14

Today Alex and i started making liquid ham which is a tower defense game i hope. A tower defense game is essentialy an rts style game where the player controls a character whos only abillity is building towers. These towers shoot a loads of creeps running through the maze. If enough creeps finish the maze the player looses.Alex and i arent very good so we probably wont finish but, today we made a psuedo map, we got all the sprites picked out and we got a skelly to run perfectly through the maze which took an extreme amount of code, telling a pixel to stop and go in a different direction turned out to be a lot harder than it seems , but its done now. Hopefully we'll get the towers up and running tommorow. We started making a tower class today so thats our next major goal in terms of finishing this game.


Journal day 15

today alex and i figured out how to use classes which took a reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaally long time. Then we added a basic user interface and added a working tower to the game. the player cannot build any towers yet and theres only one skelly so thats probably what were gonna work on tommorow. Today we also realized that we can implement the maze code in our game which serves as a map maker in our tower defense game so players can generate their own customized stages.

Journal day 16

today I drew a picture and crashed jacks computer 8 times. oh oops im not david. Today  Alex and I worked on spawning multiple skellys and we created a skelly ID system. We also improved tower spawning so that you have to enter one of 4 distinct build modes before you can create a tower. we also made our background an image which created a whole new slew of problems which took a really long time to fix. We basically just used the guess and check method until the skelly stopped leaving a black trail and acting like strobe light.


Journal day 17
The last journal. I never thought i would make it to thi spoint. No really  I thought my mind would melt before this class was over, but that means i was learning. I came into this class knowing nothing, absolutley nothing. I cant even begin to explain the amount of knowledge i abdorbed in this class. A few days before this camp Alex tried talking to me about hexidecimal and i drooled. Now i can have an intellegent conversation about how hexidecimal is the reason glitched Pokemon like missingno. Up to this point i just took psychology classes a TIP , which is just breezed through. We diddnt do anything. This is the only class ive taken here that actually challenged me. This is gonna be really cheezy but its as if my vision is distorted by many blinders and Dr.Kuhl just removed the computer science blinder.I really enjoyed the class. Like the residential life was terrible this year. The RC's were like SS officers. This class was the only thing that kept me here. Thank you sooooooooooooooo much Justine and Dr.Kuhl for my first  foray into computer science.
also this class taught me not to take ms paint and microsoft word for granted.


Journal day 18
Ok I lied. Today is the final journal entry. I really enjoyed the class, especially the final project. Like i mentioned earlier i wouldve been miserable if not for this class. My only complaint about class is that sometimes it got really boring when we were just reading out of the book for like 3 hours. Overall though this was  the class i enjoyed most out of my four years at TIP. The final project was my favorite part of the class. Alex and i diddnt do great but i felt like d-d-d-scroblo tower defense was my game , unlike space raptors in space. having my own made me feel really good about myself and my programming abillity. Im actually really surprised that everyone in the class did something completley different for their final project. I played everyones game a little bit yesterday and it was really cool to see what personal flavor everyone added to their programs. Whereas  in the group project all the games kindof just meleded together because we had to have a common theme and there was 4 people in a group. So thats really why i liked the final project the best. Also sitting next to Alex and David during week three added to the fun =)