Thursday, April 24, 2014

My Evaluation

The evaluation I received turned out to be much better than I expected. It would seem that I am probably somewhere around a B.

It seems the things I need to work on fall into one of two categories. The first being level of involvement. The second being communication.

In terms of level of involvement, I especially need to work on being more outspoken in class. However, I think I should also work on being more involved in the group meetings as well.

Communication is where I think I lost the most points. I lost points on my project pitch and my self evaluation because of the way that I presented myself. It sounds like the content of the self evaluation was good, but it was an issue with the writing style. And I think I had a decent project idea, but when I got up in front of everyone to speak I definitely lacked confidence.

I think the biggest thing I need to do is learn to be less reserved and not be afraid to speak.

Thursday, April 17, 2014

Planning Phase Graphics

I met with Cameron earlier to discuss him helping me with the user interface graphics for the planning phase. The biggest feature we discussed is having some sort of indication of where a piece will be placed after it is moved or copied. I want to either show the piece dragging, or have some transparent squares hover around the mouse to show what the placement will be when the user releases the button.

It looks like merging the latest version back into the trunk has caused some problems. My files seem to have rolled back a few commits. I think we may need to straighten out the trunk before any new changes start getting made.

I think I can still get my newest files from git, and since Cameron will be adding to, or changing my graphics, we may want to start from an older version anyways.

Saturday, April 12, 2014

Git Branching

When I began to refactor planning level, I made some big changes that broke a lot of things. I knew this would happen, and I tried to leave everyone else a way to continue working by using copies of the original files I made. This was a really bad strategy.

I've since learned that it is very easy to make a branch in git, and also very easy to merge the branch back to the trunk when it is time. There is even a graphical tool that displays the repository tree. Now that I understand how branching works in git, my workflow with the repository will probably change.

The trunk is back on track now, and I have a good chunk of the new planning level completed. I have also added a lot of interface features to planning level. Users can now insert different tiles using the keyboard, as well as lock and unlock different colors. Selection is now capable of correctly selecting partial cells, and move and copy are done using the mouse.

Wednesday, April 9, 2014

Time to Refactor

I am rewriting my code for the planning level. Now that I have a better understanding of what exactly it needs to do, and how it integrates with the other parts of the project, a number of flaws with my first version have become apparent.

The undo / redo system was becoming overly complicated due to the way that I abstracted the operations that go into the stack. Rather than having a different object to represent each type of operation, I now have one object that can be initialized to represent any operation. I am also getting rid of the idea that single and group operations need to be handled separately. To accomodate group and single operations being performed by the same function, the operation object can now contain a list of instructions. This means that instead of pushing move, move, move, group(3) onto the undo stack to represent moving three selected objects only one operation object needs to be pushed.

User input will be mapped to the keyboard and mouse differently, and I will be trying to avoid some graphical bugs that came up the first time around.

Thursday, April 3, 2014

Input For Grid Operations

Today I mapped mouse and keyboard input to each of my grid operations. The user can now manipulate instructions during the planning phase. They can insert instructions, as well as move, copy, and delete instructions or groups of instructions.

In the process of doing this, I found and fixed several bugs in my original movement functions. They were all pretty easy to fix, however, I am realizing that undo and redo are going to continue becoming more and more complex with every feature added.