teach your bot

55
TEACH YOUR BOT SESSION: BSCS (2010-2014) Project Supervisor: Mr. Muzamil Ur Rahman Qurashi Submitted by: Muhammad Zeeshan Anjum Roll No. 153 Department of Computer Science and IT Islamia University of Bahawalpur

Upload: zeeshananjum295

Post on 19-Jul-2016

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teach Your Bot

TEACH YOUR BOT

SESSION: BSCS (2010-2014)

Project Supervisor:

Mr. Muzamil Ur Rahman Qurashi

Submitted by:

Muhammad Zeeshan Anjum

Roll No. 153

Department of Computer Science and IT

Islamia University of Bahawalpur

Page 2: Teach Your Bot
Page 3: Teach Your Bot

DEDICATION

I Dedicate this project toThe Prophet of Mercy (S.A.W)

My ParentsMy Respectable Teacher

These all are assets of my life

Page 4: Teach Your Bot

Final Approval

It is to certify, that we have gone through this project report that is submitted by Muhammad

Zeeshan Anjum Roll #153 BS (CS) Session 2010-2014

Our judgment is that this project is up to standard to warrant its acceptance by The Islamia

University of Bahawalpur for the BS Degree.

External Examiner:

Supervisor:

Mr. Muzamil Ur Rahman Qurashi

Lecture,

The Islamia University of Bahawalpur

Chairman:

Prof. Dr. Shahid Naveed

Department of Computer Science &IT,

The Islamia University of Bahawalpur

Page 5: Teach Your Bot

Project Brief

Project TitleOnline Recruitment System

Supervised By:Mr. Shehzada Khuram

Project Coordinator:Mr. Shehzada Khuram

Starting Month:June 2013

Completing Month:July 2013

Operating System Used:Microsoft Windows XP to 8

Programming Languages:Html, PHP, Java Script,

Tools Used: Dreamweaver, Adobe Photoshop

Computer System Core i5

Page 6: Teach Your Bot

ABSTRACT

This project is aimed at developing a browser based game. In which user select a bot, then fight with

other’s bot by fighting bot will got experience. By getting experiences bot will got level upgrade. On

each level upgrade there are some rewards for bot, bot can learn new skills or can got weapons or hit

point or damages increase.

It is for children which can play from web browser. They can also take place in tournament

Some features of this game creating account, selecting your bot, fight with other’s bot. By fight with

other’s bot your bot will learn new skills, got new weapons and level upgrade.

This project ‘Teach Your Bot’ is an online Browser based game in which children can register

themselves and then attend the interview. Based on the outcome of the interview the jobseekers will

be short listed.

Module in this project:

1. Game logic

2. Tournament

3. Web User Interface

4.

Brief description on the modules:

1. Game logic: Game logic have full logic of games. Who will and when attack on others and

what will be response of others and how much damage will occur. Which skills bot have and

when bot used it.

2. Tournament: there are five different tournament that’s Rank 1, Rank 2, Rank 3, Rank 4 and

Rank 5. Each Rank have 4 slots. Each slots have 2 player. Winner will be rewarded.

3. Web User Interface: Html5 based user interface where user can login, select bot to fight with

each other and can also watch their previous fight.

Page 7: Teach Your Bot

ACKNOWLEDGMENTS

Al-Hamd-u-Lillah! I am very grateful to Almighty Allah, who made me able to and complete this

very tedious, complex and painful task. It is very exciting, pleasant and amusing moment for me,

because I never thought that sometime I would be able to complete a project and its report as well.

The full credit of this project goes to Almighty Allah, because I was unable to do anything without

His guidance and help.

After this, I am most indebted to my parents, family members whose love, prayers, encouragements

and moral support made it easy for me to face this tough, tedious, complex and mind boggling

project. They’ve greatly sacrificed for me.

At the moment, I would like to say special thanks to my teacher and supervisor Mr. Shehzada

Khurram who provided me with a constant, continuous and dynamic guidance, so that, I am able to

complete this project.

Muhammad Zeeshan Anjum

Page 8: Teach Your Bot

CONTENTS

1. History

2. Introduction

3. Require Analysis

4. Internal Technical Design & Database Design

5. Object Oriented Analysis And Design

6. User Interface And Design

7. Development And Testing

Page 9: Teach Your Bot

History

BBG is short for browser based games. In late 1990y browser games got first sign of light. They

where based on DHTML (dynamical hypertext markup language) which is commonly used for drop

down menus and simple image rollovers. A web browser game is a computer game that is played on

a browser. It is distinct from other video and computer games in that it usually does not ask for any

client-side software to be installed, apart from the web browser. Today we have a lot of web browser

games, some of them require Plugin like adobe flash or java script. But all of these Plugin are easy to

get and install. These games are generally costless, with additional, payable options occasionally

available.

Oldest web browser game was Earth: 2025 developed by Mehul Patel in year 1996, it was strategy

which was played on turn based system. But most popular older game was Utopia, developed in

1999 also strategy based on turn system. In year 1999 two games got developed which are today

played by millions of people, Hattrick, real time soccer strategy developed by extraLives and

Runescape, Massively Multiplayer Online Role Playing Game, real time game in fantasy world

developed by JAGeX.

Newest browser based game that is played by millions is Evony. Evony is a browser-based

multiplayer World Wide Web game, with significant similarities to Civilization. As with numerous

real-time strategy games, one first has to develop resources by building up iron mines, quarries,

farms and sawmills, and then begin building up their town and constructing an army.

There are many web browser games, especially flash games, Html 5 which are at present spread over

the world wide web. There are over zillions of websites giving and developing simple flash games

for adults and kids. If you check Evony then you know that in future we can only see special games

which will attract many people who will spend days and days of gameplay.

Page 10: Teach Your Bot

Introduction

This is Brower based game that develop for children where they can chose their bot and enjoy with

fight.

Features and Types

1. User can select bot with desire color.

2. Fight with other’s bot.

3. Can select things from skills or from point on upgrading

4. Play tournaments

5. Watch their previous fight.

Page 11: Teach Your Bot

Chapter No 3

Requirement Analysis

Page 12: Teach Your Bot

Requirement Analysis

Tools Required

Wamp, Web server Version 2.2

PHP Script Language Version 5.3.5

MYSQL Database Manager Version 5.5.8

Adobe Dreamweaver Version CS 6

IE 8, Google Chrome.

HARDWARE SPECIFICATION:-

Hardware used during the development process. The configuration of the system, which was, used for the development process such coding is given as below:

No. Component Description1 PROCESSOR Intel Dual-Core, 1.60 GHZ

2 CACHE 128 KB

3 RAM 1.00 GB

4 HARD DISK 80 GB

5 GRAPHICS ADAPTER RESOLUTION

VGA - 1280*1024 (32-bit )

SOFTWARE SPECIFICATION

Operating System : Any Operating System

Language Used : PHP, Html5, JavaScript,

Game Logic

Iniciative: 0 to 100. Higher, attack first.

Page 13: Teach Your Bot

Player A attack and roll to see what happens (hit 90%, error/miss 5%, critical hit 5%) so a simple 0 -

100 roll.

If Miss(0%-5%): 0 damage, animation here can be a player b dodge or just a miss attack.

If HIT(5%-95%): damage is: No weapon (3-5) + strenght + 0.50*dexterity

If Critical hit(95%-100%): (No weapon (3-5) + strenght + 0.50*dexterity) * 2

After damage is calculated, you do a damage reduction based in the armor.

So each player starts with armor 1, wich is 5% damage reduction.

You can just follow the values bellow to find out all info you need.

If you have any question, just ask me :)

This should be enough.

And for extra weapons, just add random values, like: sword 5-10 damage, axe 6-12 damage and so. I

will have to fix this later.

//////////////////////// MANUAL START /////////////////////////////////////

Stats

Strenght - Add +1 to damage.

Page 14: Teach Your Bot

Dexterity - Add 0.25 armor and 0.50 damage.

Hit Points - Add 20 HP.

Armor (Cant level it up)

Value / Damage reduction

1 / 5% - -1 / -5%

2 / 10% - -2 / -10%

3 / 15% - -3 / -15%

4 / 19% - -4 / -20%

5 / 23% - -5 / -25%

6 / 27% - -6 / -30%

7 / 30%

8 / 33%

9 / 36%

10 / 38%

11 / 40%

12 / 42%

13 / 43%

14 / 44%

15 / 45%

16 / 45%

17 / 46%

18 / 46%

19 / 47%

20 / 47%

Page 15: Teach Your Bot

21 / 48%

22 / 48%

23 / 49%

24 / 49%

25+ / 50%

Combat

Hit 90%

Error/miss 5%

Critical hit 5%

Initinal char base status

Strenght: 3

Dexterity: 3

Hit Points: 30

Initial damage: Punch (3 a 5) + Strenght

Initial Armor: 1 (5% damage reduction)

Critical damage: 2x normal hit damage.

When creating the char, player will be able to chooe: +1 strenght or +1 dexterity or +10 Hit points.

Page 16: Teach Your Bot

Earning Levels

Each level up will give 5 HP and 3 status points (str, dex or hp) or 10 HP + 1 status point (str, dex or

hp) and 1 spell.

Spells/skills

Spells can be passive (active all the combat) or have a certain amount of usage per combat.

Stone skin

Type: Passive

Desc: Add +1 in armor.

Steel skin

Type: Passive

Desc: Add +2 in armor.

Titanium skin

Type: Passive

Desc: Add +3 in armor.

Fists of steel

Page 17: Teach Your Bot

Type: Passive

Desc: Your hands cause more damage, instead 3-5 damage to 5 to 10.

Martial Arts

Type: Passive

Desc: Your hands damage is increase by 3. (hands = 3-5, with Martial = 6-8, with Fist of Steel and

Martial arts = 8-13)

Apprentice Assassin

Type: Passive

Desc: Add 1% to critical chance.

Master Assassin

Type: Passive

Desc: Add 2% to critical chance.

Initiative

Type: Passive

Desc: You always win initiative, unless the other player also have this skill.

Precision

Type: Passive

Desc: Miss chance -1%.

Tenacious

Page 18: Teach Your Bot

Type: Passive

Desc: If you miss an attack, you have 50% to make a new attack that will hit (not crit or miss, just

hit).

Sabotage

Type: One use on the start of the combat

Desc: The other player lose 5% of his life.

Counter attack

Type: Passive

Desc: Every damage you take, the other player takes 10%. So player A cause 100 damage, he also

take 10 damage.

Disarm

Type: Passive

Desc: Everytime you hit the other player, there is 50% chance he will drop his weapon (if he is

holding any).

Regeneration

Type: Passive

Desc: Everty end of turn you heal 1% of your maximum life.

Immortal

Type: Passive

Desc: Your total life is increased by 50%.

Page 19: Teach Your Bot

Heavy Training

Type: Passive

Desc: Add 5 to your strenght.

Cat agility

Type: Passive

Desc: Add 5 to your dexterity.

Apprentice

Type: Passive

Desc: Your experience increase by 5%. (if you have Professor make it 15%)

Professor

Type: Passive

Desc: Your experience increase by 10%. (if you have apprentice make it 15%)

Dodge

Type: Passive

Desc: Increase the other player miss change by 3%.

Fury

Type: One use per combat

Desc: If your next attack hits, will make 3x times the damage.

Sixth Sense

Page 20: Teach Your Bot

Type: One use per combat

Desc: You get 50% more dodge when the other player attack you.

Weapon Master

Type: Passive

Desc: Increase all damage you cause by 10% when using a weapon.

Unbreakable

Type: One use per combat

Desc: If you get hit and die, instead die this damage leave you with 1 life.

Vampiric touch

Type: Passive

Desc: Everytime you cause damage, you heal 1% of the damage caused.

Titan

Type: Passive

Desc: Increase strenght, dexterity, life and armor. (+1 strenght, dexterity, armor and +20 life).

Anatomy

Type: Passive

Desc: Crit cause 2.5x damage instead 2.0x.

Stun

Type: One use per combat

Page 21: Teach Your Bot

Desc: When use it, your next attack will hit with a 5 amor reduction. (If the other player have 10

armor, its like he has 5 only).

Weak spot

Type: One use per combat

Desc: Your next attack will hit the other player like he have -5 armor. If your attack hits.

Level up and rakings

We gonna use a ranking system. Each ranking will let the player leve up till level 20. The last

ranking, they player will leve up till 30.

Ranking 1 - Apprentice

Ranking 2 - Street fighter

Ranking 3 - Ultimate Fighter

Ranking 4 - Assassin

Ranking 5 - Master

*** Leave a way to change these names, they are not that good :P

To change the ranking, the player must win a tournment. You can only play a tournment once a day.

Ranking 1 - Tournment with 4 slots, 8 players. Fight between 2 players, the winner goes on, the loser

gets out the tournment. They fight till only 1 player left, then this winner will level up a ranking.

Page 22: Teach Your Bot

Ranking 2 - Tournment with 5 slots.

Ranking 3 - Tournment with 6 slots.

Ranking 4 - Tournment with 8 slots.

Ranking 5 - Tournment with 10 slots.

Experience to level up.

Level 2 - 2 experience points.

Level 3 - 3 experience points.

Level 4 - 5 experience points.

Level 5 - 7 experience points.

Level 6 - 10 experience points.

Level 7 - 13 experience points.

Level 8 - 16 experience points.

Level 9 - 20 experience points.

Level 10 - 24 experience points.

Level 11 - 28 experience points.

Level 12 - 33 experience points.

Level 13 - 38 experience points.

Page 23: Teach Your Bot

Level 14 - 43 experience points.

Level 15 - 49 experience points.

Level 16 - 55 experience points.

Level 17 - 61 experience points.

Level 18 - 67 experience points.

Level 19 - 74 experience points.

Level 20 - 90 experience points.

Level 21 to 30 (only on ranking 5) - 100 experience points to each level.

Each combat you get 1 experience, even if you lose.

If you win without get any damage, you get 1 extra XP.

If you win with 1 hit only, you get 1 extra XP.

Note that you can get till 3 XP per combat (if you get all 3 situations above) (Not including bonus

like Apprentice or Professor)

Page 24: Teach Your Bot

Chapter No 4

INTERNAL TECHNICAL DESIGN &

DATABASE DESIGN

Page 25: Teach Your Bot

DATA DICTIONARY

armor_valuesColumn Type Null Default Comments

id int(11) No

armor int(11) No

value int(11) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 30 A No

instructionColumn Type Null Default Comments

id int(11) No

t_id int(11) No

ins_id int(11) No

active text No

inactive text No

attack

varchar(30) No

length int(11) No

Page 26: Teach Your Bot

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 0 A No

levelColumn Type Null Default Comments

id int(11) No

level int(11) No

xp int(11) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 20 A No

player_figthColumn Type Null Default Comments

player_id int(11) No

id int(11) No

player2_id int(11) No

figth text No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 97 A No

player_skillsColumn Type Null Default Comments

skills_id int(11) No

Page 27: Teach Your Bot

player_id int(11) No

player_skills_id int(11) No

custom varchar(30) No 0

IndexesKeyna

meType

Unique

Packed Column Cardin

alityCollat

ionNull

Comment

PRIMARY

BTREE Yes No player_skills

_id 20 A No

player_weaponeColumn Type Null Default Comments

player_id int(11) No

player_weapone_id int(11) No

player_weapone_amount int(11) No

player_weapone_dropable int(11) No

player_weapone_damage int(11) No

weapone_id int(11) No

IndexesKeyna

meType

Unique

Packed Column Cardin

alityCollat

ionNull

Comment

PRIMARY

BTREE Yes No player_weapon

e_id 11 A No

player_id

BTREE No No

player_id 11 A No

weapone_id 11 A No

playersColumn Type Null Default Comments

id int(11) No

Page 28: Teach Your Bot

name varchar(30) No

password varchar(30) No

expreince int(11) No

strength int(11) No

armor int(11) No

dexterity int(11) No

hp int(11) No

level int(11) No

weapones int(11) No

skills int(11) No

skin int(11) No

skin_color

varchar(30) No

rank int(11) No

tour_played int(11) No

levelup text No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 35 A No

weapones

BTREE No No

weapones 2 A No

skills 2 A No

skin 5 A No

Page 29: Teach Your Bot

previous_figthColumn Type Null Default Comments

id int(11) No

player_figth_id int(11) No

ins_id int(11) No

active text No

inactive text No

attack varchar(30) No

length int(11) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 0 A No

skillsColumn Type Null Default Comments

id int(11) No

name varchar(30) No

value varchar(20) No

type varchar(30) No

level varchar(30) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 29 A No

Page 30: Teach Your Bot

skinsColumn Type Null Default Comments

skin_id int(11) No

skin_name varchar(30) No

skip_color varchar(30) No

path varchar(400) No

speedFix int(11) No

stepFix int(11) No

weaponeFix_x int(11) No

weaponeFix_y int(11) No

color varchar(30) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No skin_i

d 3 A No

t_slotsColum

n Type Null Default Comments

t_id int(11) No

slot_no int(11) No

tsl_id int(11) No

p1_id int(11) No

p2_id int(11) Yes NULL

winner_id int(11) Yes NULL

Page 31: Teach Your Bot

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No tsl_id 5 A No

tournamentColumn Type Null Default Comments

ts_id int(11) No

t_id int(11) No

t_status varchar(30) No

t_active_slot int(11) No

t_wait_time

varchar(11) No

t_currTSolt int(11) No

level int(11) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No t_id 3 A No

tournament_schemColumn Type Null Default Comments

ts_id int(11) No

ts_slot int(11) No

ts_rank int(11) No

ts_exp int(11) No

ts_level_req int(11) No

Page 32: Teach Your Bot

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No ts_id 1 A No

weaponsColumn Type Null Default Comments

id int(11) No

name varchar(30) No

damage varchar(11) No

path varchar(500) No

dropable int(11) No

description text No

hp_require int(11) No

level_unlock int(11) No

IndexesKeyna

meType

Unique

Packed

Column

Cardinality

Collation

Null

Comment

PRIMARY

BTREE Yes No id 3 A No

Page 33: Teach Your Bot

Chapter No 5

OBJECT ORIENTED ANALYSIS AND

DESIGN

Page 34: Teach Your Bot

SEQUENCE DIAGRAMS

A sequence diagram depicts the sequence of actions that occur in a system. The invocation of

methods in each object, and the other in which the invocation occurs is captured in a sequence

diagram. This makes the sequence diagram a very useful tool to easily represent the dynamic

behavior of a system.

A sequence diagram is two-dimensional in nature. On the horizontal axis, it shows the life of the

object that it represents, while on the vertical axis, it shows the sequence of creation or invocation of

these objects.

The sequence diagrams of the PPS Online Recruitment System are shown below:

Sequence Diagram For Login

Page 35: Teach Your Bot

Actor System Screen Database

Open register link

Execute Command

Sign up form

Enter fieldssend data

SuccessRedirect to Dashboard

Sequence Diagram for Sign-up

Page 36: Teach Your Bot

Use Case DiagramsThe objective of Object Oriented Analysis and Design is to develop a model that describes computer

software as it works to satisfy a set of requirements. After understanding the current situation of the

problem domain the team is ready to strive for the solution by using OOAD approach.

Use Cases

view contact

view About us

Home pageVistior

Sign Up

user

Login

Dashboard

Fight

Tournament

Page 37: Teach Your Bot

Chapter No 6

USER INTERFACE AND DESIGN

Page 38: Teach Your Bot

Site Map:

As the website is actor based on so the site plan is according to the rules of the actors.

1. Home

2. SignUp

3. About T.Y.B

4. Contact

User

1. Home

2. Logout

3. About T.Y.B

4. Contact

5. View old fight

6. Fight

7. Dashboard

Page 39: Teach Your Bot

Screen Shots

Home

Page 40: Teach Your Bot

About T.Y.B

Page 41: Teach Your Bot

Contact

Page 42: Teach Your Bot

Sign Up

Page 43: Teach Your Bot

Dashboard

Page 44: Teach Your Bot

Select Bot for fighting

Page 45: Teach Your Bot

Fight

Page 46: Teach Your Bot

Previous Fights

Page 47: Teach Your Bot

DEVELOPMENT AND TESTING

DEVELOPMENT AND TESTING

Development approach

During project I have used RUP (Rational Unified Process) modeling to:

Identify deliverables for all modules.

Develop and Interaction matrix to specify actors and Sub System.

Describe high level business use cases and business models.

Verifying that modeling meets the requirements.

Identify business objects and develop object interaction, sequence and activity diagrams.

Identify user inputs and outputs and develop a story board.

Identify dependencies between solution modules.

Develop high level information architecture.

Page 48: Teach Your Bot

Develop the different concept designs for approval.

Development Platform

Following technologies are used for development of software.

VERTRIGO

DREAM WEAVER

JAVA SCRIPT

Following hardware are used for development

Core i5

Deployment Platform

Deployment Platform will have following technologies

PHP MY ADMIN

WINDOWS 7

Testing

We shall check the system in accordance with the test plan that shall specify the following:

Testing techniques and tools to b employed.

Types of testing to be done.

User acceptance test .

verification of interaction between objects, integration of all modules and ensure that defects

are addresses prior to the activation of software.

List of Deliverables

User acceptance test use case.

QA/Test reports (based on each iteration) identified bugs and their current status.

Iteration released notes.

Iteration feedback.

User manuals site operation guide.

Setup installations and configuration manuals.

Page 49: Teach Your Bot

Project Management

Duration project management phase we shall perform the following activites.

Resource planning.

Deployment planning.

Iteration release planning.

Quality assurance and test planning.

Requirement change control planning.