Assignment 2
The first hurdle I encountered in Assignment 2 was dealing with the fact that I built the player and seLinkList class directly in my main file. When I got to task 5 I realized that to follow the assignment I needed to refactor my classes into their own separate .cs files.
Following the refactor I deleted player.cs and encountered some challenge in restoring it. I started by working with the git reset commands. I was able to recover the commit where the file existed, but I was having a hard time figuring out how to reconcile the fact that the HEAD pointer was now on a pervious commit that the remote branch. I need to read more on how reset works and how to reconcile that with a remote repo.
I ended up undoing the reset status and instead going with revert which creates a commit that tells the remote branch to undo the changes that have already been pushed.
For Task 7 I realized that I over-engineered my implementation of seLinkList. I simplified it to be the basic core Node structure so that I could implement the linkedlist method functionality in player.cs as requested.
There were several further refactors I had to do during the later tasks:
I had to redo the Node object to hold the data retrieved from playerData rather than the object itself for easier access
I created several helper methods to make toString printing and finding the weight easier
I had to revert progress when I began my min and max weight refactor on the wrong branch
I had to remove the index field that was hard coded into my seLinkList class after reading discussion forum responses indicating that this was not the intended purpose
I also learned how to use C#s built in tuple method in order to return both the min and max weight from the findMinMaxWeight method.
During the merge of doubleLink branch I had several conflicts. One was that there was a binary file that was added to the repo before I updated my .gitignore file. I had been ignoring removing it from the remote repo but it was causing a merge conflict. I made the commit report to remove the cached tracking on the file so that it would be removed from the remote repo and not interfere with the merge. I also had a conflict in my main method due to print statements being changed in the same area. I resolved these and completed the merge.