Individual Report

22
Individual Report PROJECT 4 COMPUTING 2013-2014 4/2/2014 Theodoros Charisis This individual report is about describing this project 4 and also report my individual contribution in this project as well as the difficulties I faced and how I faced them.

Transcript of Individual Report

Page 1: Individual Report

Individual Report

PROJECT 4

COMPUTING 2013-2014

4 / 2 / 2 0 1 4

Theodoros Charisis

This individual report is about describing this project 4 and also report my individual contribution in this project as well as the difficulties I faced and how I faced them.

Page 2: Individual Report

Theodoros Charisis

Contents

Summary of Project 4………………………………………2

Introduction to Sockets and Networking………………………2

Introduction to Games………………………………………………4

Planning and Diagrams……………………………………………..5

Introduction to Pygames and Development…………………..6

More programming. Final week……………………………………….13

Conclusion………………………………………………………………………..15

1

Page 3: Individual Report

Theodoros Charisis

Summary of Project 4This project was about creating a network with our RPi’s that allows users to chat with each other and also create a pygame and add it into our program client code so people can chat and play at the same time. This project was very

important to me as I had in mind that I need to become better in programming and understand better how it works and make new programs.

Introduction to Sockets and Networking

In the first week of this project 4 we had been working as a group to develop a simple network with our RPi’s. We started by agreeing in using Google Drive so every member of our group could upload his work or even download and share files that it would be necessary for this project. Then we had to make a server and a client so we could make our program with the chat system and also with the games in it. I didn’t know how to program something like this but we were given an example with a server code and a client code so we could see how it works and we could change some bits so we can get used to it. We used the code provided and we managed to make it work and then we started talking to each other about

2

Page 4: Individual Report

Theodoros Charisis

this code how it can be improved and how we are going to slit the team so work can be done quickly and every member have the same work to do. Then I told my group members to do a sequence diagram so it will help us planning and explaining the layout of our system, it was also mentioned in the week task. Also I was able to program some of the extra

Tasks like, allow the user to input data to send to server and also, provide a

menu system. With the help of one member of our team we cooperated and we completed another extra task, allow multiple clients to connect to the server and show theirs data.

In this first week I didn’t faced any difficulty, the only difficulty I faced was creating the diagram but after I saw one teammate trying to make it, I understood it better and I was able to help completing it.

I was able to learn how to make a diagram better and I was a crucial member in my group as I helped them completes some extra tasks who some people couldn’t do it.

3

Sequence diagram

Page 5: Individual Report

Theodoros Charisis

Introduction to Games

This new week was very interesting as we were introduced to games. We were given a piece of code so we can see how this code works and to become familiar with games. This game was a text-based game but it was such a fun. At first our lectures showed us how this example text game is played and then they told us to work on our own piece of code and everyone should submit one. I started by testing the example code and saw all the things you could do in the game, then I went to the code and I started changing some things in it and see what happens.

After this it didn’t took me a lot of time and I started creating my story in notepad files and also the items and rooms. Then I changed all the code and I

modified it as I wanted so my game could work perfectly. I changed a big part of code with my own code and my game was working perfectly, it took me 2-3 days to finish this week’s task but it was a lot of fun and I liked it so much. I didn’t face any difficulties and I was able to help some members of my group with their text game and game them some tips.

4

My text-based game running

Page 6: Individual Report

Theodoros Charisis

Planning and Diagrams

The new tasks were given to us and we had to make a UML diagram to show the technical executive the layout of our system breakdown of the team and which roles will we have and a Sequence diagram to show how the user would interact with the system. Also we prepared some Mock-ups of what our system will look like and we came up with a logo and a name for our project idea. We were split into two teams, me with one other and the other three together. We came up with the name of our server project idea and a logo, the other team were doing all the UML and sequence diagrams. After we finished we tried everyone to make a presentation slide to look very nice and also include our essential information that the client would like to hear.

5

Our Logo

Mock-ups

Page 7: Individual Report

Theodoros Charisis

Introduction to Pygames and DevelopmentThe new task of the next week was revealed, we were given a task to create a pygame within 2

weeks each of our group should have

made a pygame of his own and submit it in the end. At the beginning we were given a link to a book which refers to how to create a pygame and it taught us step by step how to create a game and also explain the codes in details. I started by looking the book from the link and I found some interesting parts that I might use, then I went to the pygame official website and searched for simple games so I can understand its structure. At first I thought it might be very difficult, as I saw a lot of lines of code in the example Pygames. But then I tried to think of what game I would like to create which would be simple, easy to code for our level and also entertaining. After a couple of days of research and thinking of a game, I came out with the idea of making my game. My game name would be 4Pics1Word the idea I had for my game was that it will have main menu and then the main game would be a couple of

6

RPi picture

Page 8: Individual Report

Theodoros Charisis

stages which you have to take a look to some pictures that are projected and then find what is keen in this 4 pictures by typing the answer below. I took this idea of game from a game I have in my iPhone, I loved this game and I thought it would be very nice to program something similar like that. My game has 17 stages, some stages are easy and some are not, that’s why I created the Hint option. This hint option is similar with the game in our iPhones, by typing hint it would display some hints for some seconds, in every stage the hint is different as supposed to. I created this option as I thought some stages are difficult to complete without any hint and I made it possible so the game can be completed. Also when you successfully complete this game in the end it will show you how many times you used the hint and how many mistakes you have made in every stage, and then you can compare it with your friends to see you did it better. This part of code is projected in the

picture above.

7

Hint code label shown and how many times you used hint and how many mistakes have you made

Page 9: Individual Report

Theodoros Charisis

For my game I used some necessary libraries so the pygame could work. In the picture shown below you could see the libraries from my code. I also defined some colors so I can use the in my code whenever I want.

The next thing I have done was to create the menu for my game. I searched the internet to get some information on how to create a menu system for my pygame then I modified the code and I made it work for my pygame. The code for my menu is very long so I took 2 pictures of it just to show the work I have done. The only thing that I found difficult was that I couldn’t connect the menu code with my pygame

8

Imported Libraries

Menu code part 1

Page 10: Individual Report

Theodoros Charisis

code, but after I experimented on my code I managed to combine my menu with my pygame as one.

After the menu code I had to create my own pygame. I thought that it would be difficult but in the end it was quite easy and also

interesting creating the code. After I had made my mind of what game I want to create it was now only knowledge and skill to help me complete my game. I had enough knowledge acquired from this course to complete my game and also in my country I used to have the best mark in my school. As I had the experience I started programming, it was very easy, I thought how my game should work and then I translated it into python language. Below I provide 2 screenshots from my code, it shows the main game function.

9

Menu code part 2

Page 11: Individual Report

Theodoros Charisis

This screenshot shows us that I made a caption for my game then I set the screen display and also had some variables defined.

Then I used a code that allows you to type in the pygame screen and then I used another code for my game stages.

You can see that I have for every stage he same code with different answers and different hints. I used also a code that when you have found the correct word you go to the next level and launch a new picture. You can see also the hint code for every level, while typing hint it gives you some specific hints for every level. You can see also another picture below.

10

Main game Function part 1

Page 12: Individual Report

Theodoros Charisis

Main game function part 2

After I made my main game function code, I created a screen code creation that allowed me to create the screen for my pygame.

11

Create Screen

Page 13: Individual Report

Theodoros Charisis

As a result of all this code my game was ready after 1 -2 weeks. And I provide a picture below how my game looks like in the first stage.

In this picture of my pygame you can see the image in the center in which you have to guess what the keen object is and then type it in the yellow box provided under the picture. Furthermore, you can see below the box a hint that shows you how to get the hints for the pictures. I created this on purpose as I thought a new user would not know how to activate the hint option. I used a light blue background as I thought it would be nice for users to see the background like this, which is more relaxing for your eyes and makes the game more lively and fun. It is a very interesting game and also entertaining, easy to play for all kind of ages. The only thing that i found difficult at the beginning was how to insert a picture inside the pygame and also how to make a button when clicked to do something. Fortunately I managed to insert pictures but unfortunately I couldn’t make a button work for hints, that’s why I used the code to type hint and then show

12

How my game looks like in 1st stage

Page 14: Individual Report

Theodoros Charisis

you the hint as it was easier and a different way from other similar ways.

More programming. Final week

After I completed my pygame I helped some members from my group as they haven’t completed them and some haven’t even started it. I helped them however I could, but some of them haven’t even decided what game to create. Then I started working on the client and server code with a fellow member in our group and we cooperated in addition to complete the client code and the server in time without any problems. We have being working on both of them at the beginning of this project and after 3 weeks in this project we managed with the help of all my team to complete the server and client. Below there are some pictures of the client GUI menu and some option of our client like (login menu, change color of background).

Login menu

This is the login menu for our client in project 4. This bit was made by a member of my group as well as from my help. On the right you can see that you can create a new user so you can

13

Page 15: Individual Report

Theodoros Charisis

login into the server. Another feature we had in our client was that we included some cool stuff like changing the background color or also changing the size of the letter if you want so.

client changing background

client changing background part 2

14

Page 16: Individual Report

Theodoros Charisis

We didn’t have a lot of help from some of our group members, as they haven’t done theirs pygame and they needed help with that. But me and another member gave our best to make our client the best, so they really didn’t help a lot.

Conclusion

This project was very interesting and I liked it very much. Although sometimes it was difficult to keep up with every work we had as we didn’t have enough time. Also some students complained about that and some others that they don’t know what game to make. Fortunately, I could keep up with the time and also decided my game and I am very proud about it, I think it could be one of the best in my class. The only difficulties I faced were the time as expected and we had a lot of work to do in sort time. Another difficulty in this project was programming a pygame, as a lot of people had problem with that and we haven’t been taught before how to program a pygame and we had a sort time for that. I managed to solve all my problems and finish in time my pygame and all of the homework we had. From this project I learned to cooperate like we used everyone’s help for the server or for the UML diagrams. I learned to share ideas and code using Google Drive for sharing files and Facebook to keep in touch with everyone. This year was very exciting and I learned a lot of things from my course and I became better in programming and I also got used to the English language as it is not my mother language. I needed to become better and learn some extra things for my future so I can get a job as a programmer and I think this course will make my dream come true.

15