Game Report: Shape Match!

ABSTRACT

Nowadays, learning about school subject can be fun. Not like in the past where we have to learn it in a class and only listen to the teachers, but now we can learn something in many ways. For example, by playing educational games. In this method, studying is no longer boring and difficult subjects can be easy to be understood and memorized.

Educational games are usually made for children. Children tend to have difficulties to focus and easy to get bored. By making the learning process entertaining and interesting, study process can be easily done.

In this final project for Multimedia and Human Computer Interaction, my partner and I make a game that teaches the children about shapes.

DESIGNING THE GAME

Our aim is making an easy and fun educational game for children. We want the children to gain knowledge by playing our game or maybe just practice what they learn from school.

Most of the graphics were taken from google. Some of them I made it myself with Adobe Photoshop.

COLLECTING DATA

To ease the process of accessing the game assets, we decided to use Google Drive.

GAME FLOW

The game have a story which the user need to help the character, Mr. Circle, to go to the space. In order to do so, the user have to pass 2 stages. The user has maximum 3 mistakes in each stages. If more than that, the user need to repeat the game from the beginning.

Opening

In the opening layout, the user can start the game, see the credits or quit the game. The user can study first before playing the game by clicking the Lesson button.

Lesson

In here, the user are able to see all the shapes that are use in this game. There are total 10 types of shapes such as circle, triangle, rectangle, diamond, hexagon, heptagon, star, heart, trapezoid, and oval.

 

Pregame

If the user clicked play button in the beginning of the game, the user will be directed to this layout. This layout is just for introduction, to tell the story of this game.

Tutorial Stage 1

After the pregame layout, the user will go to this section. This section shows instructions for stage 1. The user are given 3 choices. From all of the choices, the user need to find one shape that is the same like the question. The question is placed on top of the wood, while the choices are on top of the leaves.

Stage 1

In stage 1, the user only be given 3 chances to be wrong. The game will tell the user how many chances are left. From 10 kinds of shape, there will be 5 of them in this stage such as circle, hexagon, diamond, rectangle, and star.

The user need to find which one is diamond among the 3 shapes placed on the leaves
The game will tell how many right and wrong answers the user made
Tutorial Stage 2

After passing the first stage, Mr.Circle will fly on a plane. Just one more stage he will go to the space. The user will be informed about what to do next in the second stage.

Stage 2

In stage 2, there are 5 symmetrical shapes. The shapes are divided into 2, then the user have to find the other half of the shapes on the flag while the bird is flying around. The user need to make 3 correct answers to pass the stage. Also, the user is given maximum 3 times to make mistake.

The user need to find the right side of heptagon
The user will be informed how many more wrong mistakes they can make
Closing

After passing the 2 stages, Mr. Circle will be fly to the space and the game is finish. The user can go back to main menu then they can play again, or exit the game.

 

Credits

If the user clicked Credits button on the opening layout, the user will be directed to this section. In here, we show all the links where we got the assets from. After all the credits are shown, it will go back to the opening layout.

CONCLUSION

After my lecturer gave us 1 month to develop this game, my partner and i showed it to him. He tried and tested our game and gave feedbacks. Then, he gave us some time to fix and add things that the game needed. Lastly, we need to submit the game to him via email.

Game Proposal: Shape Match!

INTRODUCTION

In this 3rd semester, I learn about Multimedia and Human Computer Interaction. For the final project, my lecturer told us to make a game for kindergarten students. This game is supposed to educate the children about basic knowledge and it has to be easy to be played. According to parents.com, basic knowledge includes writing, number and counting, shapes and object, and time and seasons. My partner and I decided to make a shape game.

ABOUT THE GAME

The game is called Shape Match. This game is about helping a character, Mr. Circle, to go to space. In order to do that, the user has to pass 2 stages. In the first stage, the user have to find the exact same shape that is shown in the question. This help to develop children’s cognitive skills. If they pass, Mr. Circle will fly on a plane.

In the second stage, which is located in the sky, the user has to find the other half of the shape. For example, a heart. The heart will be divided into 2, then the user has to find the other half. The choices are moving around. So, the children are trained to think fast. If they pass this stage, Mr. Circle will fly in a rocket to space.

This game only give the user 3 chances to get the wrong answer. If they make more than that, they have to restart the game from the beginning.

 

A Growing Taxi Company, FastCabs. (Database Project)

Abstract

People might not realise how database has played a big role in this technology era. People could find it used in every applications, software and etc. As a computer science student, I am obligated to learn on how does database work.

On the second-half of the second semester, computer science students in Binus International were introduced to Database System. For almost 3 months to learn database intensively, the students were given a final task to complete by the end of the semester. In a group of maximum 3 people, we were assigned to create and design a suitable database for a growing private taxi company, FastCabs. Developing a database system for this company is expected to improve the communication and sharing information between staffs. Not only that, but to reduce any problems that will appear within the company as well. Also, we were given a specific order to show data by making its query.

DESIGNING THE DATABASE

Before my team and I get our hands dirty on coding, we have to think thoroughly about the design of the database. First thing first, we were designing the Entity Relation Diagram. It was quite a challenge to make the perfect one as we try to match with the specification given. We were aiming to create the database as efficient as it can. In final, we constructed 14 tables

First draft of ERD

.

Rough list of tables and its attributes
Final list
Final entity relation diagram

 

ADDING DATA TO THE DATABASE

Having a minimum 5 data in each table is one of the requirements. My teammates, Jeffrey and Wilson, are the ones who mostly filling the database. Adding data to 14 tables is not an easy job because we need to conform to other tables. For example, a contract manages by a manager. This manager must work in the office, which located in the same city as the business client.

MAKING THE QUERY

After adding data, I’m in charge to create the query. There are 19 specifications in total that I need to solve.

  • The names and phone numbers of the Managers at each office.
SELECT o.name AS Office_Name, s.name AS Name, s.phone AS Phone 
FROM manager m 
JOIN staff s ON s.staffID = m.staffID
JOIN office o ON o.officeID = m.officeID
  • The names of all female drivers based in the Glasgow office.
SELECT ex.name AS Name FROM external ex
JOIN driver d ON d.extID = ex.extID
JOIN manager m ON m.staffID = d.staffID
JOIN office o ON o.officeID = m.officeID
WHERE o.name = 'Glasgow' AND ex.gender = 'female'
  • The total number of staff at each office.
SELECT o.name AS Name, (COUNT(a.staffID) + COUNT(m.staffID)) AS Total_Staff 
FROM office o, admin a, manager m
WHERE a.officeID = o.officeID AND m.officeID = o.officeID
GROUP BY o.name
  • The details of all taxis at the Glasgow office.
SELECT plateNumber AS Plate_Number, type AS Type, color AS Color, extID AS OwnerID 
FROM taxi WHERE extID IN(SELECT extID FROM owner 
 WHERE staffID IN(SELECT staffID FROM manager 
 WHERE officeID IN(SELECT officeID FROM office 
 WHERE name = 'Glasgow')))
  • The total number of registered taxis.
SELECT COUNT(platenumber) AS Total_Taxi FROM taxi
  • The number of drivers allocated to each taxi.
SELECT d.plateNumber AS Plate_Number, COUNT(extID) AS Drivers_Allocated 
FROM driver d 
GROUP BY plateNumber
  • The name and number of owners with more than one taxi.
SELECT ex.name AS Owner_Name, COUNT(t.plateNumber) AS Number_of_Taxi 
FROM external ex, taxi t 
WHERE ex.extID = t.extID 
GROUP BY ex.name 
HAVING COUNT(t.plateNumber)>1
  • The full address of all business clients in Glasgow.
SELECT c.name AS Client_Name, c.address AS Client_Address 
FROM client c
JOIN business b ON b.clientID = c.clientID
JOIN contract con ON con.contractID = b.contractID
JOIN manager m ON m.staffID = con.staffID
JOIN office of ON of.officeID = m.officeID
WHERE of.name = 'Glasgow'
  • The details of the current contracts with business clients in Glasgow.
SELECT con.contractID AS ContractID, con.staffID AS ManagerID, con.numberOfJob AS Number_of_Jobs, con.totalMilage AS Total_Mileage
FROM contract con
JOIN manager m ON m.staffID = con.staffID
JOIN office o ON o.officeID = m.officeID
WHERE o.name = 'Glasgow'
  • The total number of private clients in each city.
SELECT o.city AS City, COUNT(p.clientID) AS Total_Private_Clients 
FROM office o, private p, manager m 
WHERE p.staffID = m.staffID AND m.officeID = o.officeID
GROUP BY o.name
  • The details of jobs undertaken by a driver on a given day (June 3, 2017).
SELECT ex.name AS Driver_Name, j.jobID AS JobID, j.extID AS DriverID, j.clientID AS ClientID, j.date AS Date, j.pTime AS Pick_up_Time, j.dTime AS Drop_off_Time, j.pAddress AS Pick_up_Address, 
j.dAddress AS Drop_off_Address 
FROM external ex, job j 
WHERE date = '2017-06-03' AND ex.extID = j.extID AND ex.extID = 'ex33'
  • The names of drivers who are over 55 years old.
SELECT ex.name AS Driver_Name
FROM external ex, driver d 
WHERE ex.extID = d.extID AND ex.age > 55
  • The names and numbers of private clients who hired a taxi in November 2016.
  • SELECT c.name AS Client_Name, COUNT(j.jobID) AS Number_of_Jobs 
    FROM client c, job j 
    JOIN private p ON p.clientId = j.clientID 
    WHERE p.clientID = c.clientID AND (j.date BETWEEN '2016-10-31' AND '2016-12-01') GROUP BY c.name
  • The names and addresses of private clients who have hired a taxi more than three times.
  • SELECT c.name AS Client_Name, c.address AS Client_Address
    FROM client c
    JOIN private p ON p.clientID = c.clientID
    JOIN job j ON j.clientID = p.clientID
    HAVING COUNT(j.jobID) > 3
  • The average number of miles driven during a job.
SELECT AVG(mileage) AS Average_Milage FROM receipt
  • The total number of jobs allocated to each car.
SELECT d.plateNumber AS Plate_Number, COUNT(j.jobID) AS Total_Jobs
FROM driver d, job j
WHERE d.extID = j.extID
GROUP BY d.plateNumber
  • The total number of jobs allocated to each driver.
SELECT ext.name AS Driver_Name, COUNT(j.jobID) AS totalJob
FROM external ext, job j, driver d
WHERE d.extID = ext.extID AND d.extID = j.extID
GROUP BY ext.name
  • The total amount charged for each car in November 2016.
SELECT t.plateNumber, SUM(r.charge) AS TotalCharge 
FROM taxi t, receipt r 
JOIN job j ON j.jobID = r.jobID 
JOIN driver d ON d.extID = j.extID 
WHERE D.plateNumber = T.plateNumber 
GROUP BY t.plateNumber
  • The total number of jobs and miles driven for a given contract.
  • SELECT numberOfJob, totalMilage FROM contract