SE1SA5 - Programming, Final Project (Card Game)You may have read my review for the final project for Programming (SE1SA5). This project was completed over a number of weeks.
I decided to produce a Card Game over a Text Prediction program as I felt it would be easier and that I could incorporate classes into it more easily to gain credit.
Project progress was monitored by student helpers and members of staff to ensure that the work was under way enough to be completed on time. I felt that it was also good to simulate a real life situation in which it would be expected to show progress throughout the project.
I encountered a few issues whilst programming, as I did not fully understand certain function calls, along with a more specific difficulty in a vast number of instances of a class. I posted a little frustration on how I had initially attempted to implement this on Twitter. Chris Alexander (@chris_alexander) quickly provided a possible solution of 'Class Wrapping', which at first I had to ask the meaning of. This saved me a great deal of work and gave my code readability.
The other issue I had initially was that I was seeding the random number generator each time the random function was called. This meant that I was constantly getting the same random numbers. Patrick Parslow (@PatParslow) aided me with this issue and I learnt that seeding the random number generator should only be done once per program in order to correctly generate random numbers.
Looking back at my program I now realise it would have been more professional and user friendly if I were to prevent an 'infinite loop' (this is not quite true as it quickly causes a stack overflow and stops program execution), which occurred when a user entered anything other than an integer value when prompted for input.
Syntax highlighting thanks to pastie.org
I have some ideas in which to expand upon it, which I may do over the summer as I have, so far, been unable to find a part time job:
This project taught me a lot and helped me to apply the knowledge that the module has taught me. It really goes to show how diverse programming can be. Such a wide field makes me want to dabble in a number of different situations. Game development, software development, web development. During the course of the summer I hope to have tried out most of these a bit further than I have already. But first... Exams
- Allow user to chose the value of an Ace
- Add support for multiple players
- Prevent the loop on character entry
Web Development - Getting my feet wet
Google Wave ReviewThe coursework in the Software Engineering module in Computer Science at the University of Reading has been to design and implement a Board game. The game had to incorporate Software Engineering. It has been great fun to do, although testing at times with team indecision and dispute.
One member of the group was unable to be contactable whilst not at home and also only limited communication whilst he was at home due to lacking a broadband connection. However, amongst the rest of us I thought it would be a great test, experience and useful to use Google Wave in order to collaborate and communicate. Upon receiving an invite from Shirley Williams to join Google Wave I set about inviting the other members of the team.
Being completely new to the concept of Google Wave it took me a while to find my way around the application and begin to use it in the way I wanted. This didn't take too long and in no time I was collaborating with Pete in no time. Quite a change from seeing 'X is writing a message' to actually seeing the message they are typing, this both has advantages and disadvantages. It means that you may start to anticipate what they are about to say and begin a response of your own, however, some of the time it is wasted as the other decides to change what they are typing.
My Google Wave experience was made easier by using a Google Chrome extension (Google Wave Notifier). This meant that I could see if I had new messages without going to Google Wave itself. It also enabled me to customise the page as I saw it by hiding the navigation pane etc. It is possible to just bookmark it to do the same though just a search and you can find it easily enough.
During the more pressing times of our project, deadlines mainly, we were unfortunate enough to experience a few wave crashes and, it seemed, data corruption. Certain files would not load, others would not be available to view or download. This meant some delays occurred during our busiest times.
Effectively the way our team used Google Wave was like a collaborative word processing document. With the ease of correcting later on and the playback feature, it was easy to see the changes that others had made upon viewing the updated wave.
As it is still in preview; features come and go, go offline, break, but that's all part of the fun of using something different and new. It allowed us to refer to the 'document' in team meetings as well as each of us having access once at home. However, with just a few miss-clicks the Wave can become cluttered and messy as un-deletable objects can appear, but I guess that's because it's something they want to monitor in the preview.
Overall a great experience with Google Wave. I'm sure I will continue to use it in the future as well. Give it a shot, see what you use it for.
Personal Project 1I am now embarking on the production of a Social Networking application. I am starting the process using C# of which I am partially familiar with. Along the way I will no doubt come across some issues with things I have not learnt, come across or do not understand.
I will be learning about some C# libraries and various APIs. Neither of which I have used before.
So far I have managed to produce a program which will post a tweet for me using the API:
A small achievement for me really. I found it all a little daunting at first but now feel with that timid step I may be able to succeed in the overall goal, which I will reveal once the program development is fully under-way.