0% found this document useful (0 votes)
60 views68 pages

UNOTIC - The Uno Game Report

The project report titled 'UNOTICS – THE AI UNO' presents a virtual version of the popular card game UNO, designed for multiple human and AI players. It outlines the game's objectives, rules, and functionalities, including the introduction of strategic AI players and additional game rules. The report includes system requirements, design analysis, and testing strategies, aimed at fulfilling the diploma requirements for Computer Engineering at Gujarat Technological University.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views68 pages

UNOTIC - The Uno Game Report

The project report titled 'UNOTICS – THE AI UNO' presents a virtual version of the popular card game UNO, designed for multiple human and AI players. It outlines the game's objectives, rules, and functionalities, including the introduction of strategic AI players and additional game rules. The report includes system requirements, design analysis, and testing strategies, aimed at fulfilling the diploma requirements for Computer Engineering at Gujarat Technological University.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 68

UNOTICS – THE AI UNO

A
Project Report
On

UNOTICS – THE AI UNO

By

Vishw Kacha
Aryan Prajapati
Vishesh Doshi

Enrollment No.: 204510307015


Enrollment No.: 204510307039
Enrollment No.: 204510307045

Semester: VI
Diploma Computer Engineering

Guided By:
Tejal Modi
HOD CE
SAL Institute of Diploma Studies

A Project Report Submitted to


Gujarat Technological University in Fulfillment of the Requirements for
The Degree of Diploma Engineering in Computer Engineering

MAY-JUNE:2023

SAL EDUCATION
SAL Institute of Diploma Studies
Opp. Science City, Sola, Ahmedabad, Gujarat: 380060

i
UNOTICS – THE AI UNO

CERTIFICATE

This is to certify that Project work embodied in this Project Report titled “UNOTIC – THE AI
UNO” was carried out by Vishw Kacha, Enrollment No.:204510307015 at SAL Institute of
Diploma Studies (451) for fulfillment of Diploma Engineering in Computer Engineering to be
awarded by Gujarat Technological University. This Project work has been carried out under my
guidance and supervision and it is up to my satisfaction.

Date:

Place: SIDS, Ahmedabad.

Signature and Name of H.O.D. Signature and Name of H.O.D.


Tejal Modi Tejal Modi
Head of the Department (C.E.) Head of the Department (C.E.)
SIDS (451), Ahmedabad. Computer Engineering
SIDS (451), Ahmedabad.

Signature and Name of Principal


Dr. Monika Swami
I/C. Principal,
SIDS (451), Ahmedabad.

Seal of Institute

ii
UNOTICS – THE AI UNO

CERTIFICATE

This is to certify that Project work embodied in this Project Report titled “UNOTIC – THE AI
UNO” was carried out by Aryan Prajapati, Enrollment No.:204510307039 at SAL Institute
of Diploma Studies (451) for fulfillment of Diploma Engineering in Computer Engineering to
be awarded by Gujarat Technological University. This Project work has been carried out under
my guidance and supervision and it is up to my satisfaction.

Date:

Place: SIDS, Ahmedabad.

Signature and Name of H.O.D. Signature and Name of H.O.D.


Tejal Modi Tejal Modi
Head of the Department (C.E.) Head of the Department (C.E.)
SIDS (451), Ahmedabad. Computer Engineering
SIDS (451), Ahmedabad.

Signature and Name of Principal


Dr. Monika Swami,
I/C. Principal,
SIDS (451), Ahmedabad.

Seal of Institute

iii
UNOTICS – THE AI UNO

CERTIFICATE

This is to certify that Project work embodied in this Project Report titled “UNOTIC – THE AI
UNO” was carried out by Vishesh Doshi, Enrollment No.:204510307045 at SAL Institute of
Diploma Studies (451) for fulfillment of Diploma Engineering in Computer Engineering to be
awarded by Gujarat Technological University. This Project work has been carried out under my
guidance and supervision and it is up to my satisfaction.

Date:

Place: SIDS, Ahmedabad.

Signature and Name of H.O.D. Signature and Name of H.O.D.


Tejal Modi Tejal Modi
Head of the Department (C.E.) Head of the Department (C.E.)
SIDS (451), Ahmedabad. Computer Engineering
SIDS (451), Ahmedabad.

Signature and Name of Principal


Dr. Monika Swami,
I/C. Principal,
SIDS (451), Ahmedabad.

Seal of Institute

iv
UNOTICS – THE AI UNO

ACKNOWLEDGEMENTS

I am very obliged to Dr. Monika Swami, Principal of SAL Institute of Diploma Studies, for
providing facilities to achieve the desire milestone.
I am also thankful to Tejal Modi H.O.D., Computer Department, SAL Institute of Diploma
Studies, Ahmedabad for his continuous encouragement and motivation.
I am grateful to my guide “Tejal Modi”, Department of Computer Engineering, SAL Institute of
Diploma Studies, Ahmedabad, for the preparation of the present work towards partial fulfillment
of my project. It is due to her constant support and guidance that I could pursue the present topic
of my study. Without her treasonable advice and assistance it would not have been possible for
me to attain this landmark. She has always been willingly present whenever I needed the
slightest support from her. She not only guided me at crucial points but also helped me to
sharpen my skills at various stages of progress of this study. Her continuous guidance and
support will be of great help to complete the final work that I have undertaken.
I am very obliged to all my dear friends for their continuous livelihood and comfort in each and
every phase of my life. I would like to thank all of them whose name are not mentioned here but
have played a significant role in any way to accomplish the work.
Grace of the almighty God and blessings of my parents have formed the path to reach my desire
goal.

Regards,
Vishw Kacha (204510307015)
Aryan Prajapati (204510307039)
Vishesh Doshi (204510307045)

v
UNOTICS – THE AI UNO

TABLE OF CONTENTS

CHAPTERS PAGE NO.

Title Page i

Certificate Page ii

Acknowledgements V

Table of Contents Vi

List of Figures ix

Abstract x

CHAPTER 1 INTRODUCTION 01

1.1 Introduction of the Project 02

1.2 Purpose of the Project 03

1.3 Function Requirements 03

1.4 Problems in Existing System 04

1.5 Main Modules 04

1.6 The Traditional UNO Game 04

1.7 Rules 06

1.8 Effect of Action and Wild Cards 07

1.9 Penalties 08

1.10 Added Rules 08

1.11 Types of Cards 09

CHAPTER 2 SYSTEM REQUIREMENTS 13

2.1 Hardware & Software Requirements 14

vi
UNOTICS – THE AI UNO

2.1.1 Server-Side Requirements 14

2.1.2 Developer Side Requirements 17

2.1.3 User Side Requirements 18

CHAPTER 3 SYSTEM ANALYSIS AND DESIGN 21

3.1 System Analysis and Design 22

3.1.1 Game View 22

3.1.2 Game Play View 23

3.1.3 Game Over View 24

3.2 System Development Life Cycle (SDLC) 25

3.2.1 Needs of SDLC 25

3.2.2 SDLC Cycle 26

3.3 Incremental Model 28

3.4 Feasibility Study 29

CHAPTER 4 FRONT END OF SYSTEM 31


4.1 About Front End 31

CHAPTER 5 BACK END OF SYSTEM 32


5.1 About Back End 32

CHAPTER 6 SYSTEM DESIGN 33


6.1 Use Case 34
6.2 Activity Diagram 37
6.3 E-R Diagram 39
6.4 Class Diagram 40
6.5 Flow Diagram 42

vii
UNOTIC – THE AI UNO

CHAPTER 7 TESTING 43
7.1 Testing Plan 44

7.2 Testing Strategies 49

7.3 Testing Method 50

7.4 Test Case 51

CHAPTER 8 SNAPSHOTS OF WEBSITE 54


8.1 Admin Site 55

CHAPTER 9 ADVANTAGES 59
9.1 Advantages 60

9.2 Limitations 60

CHAPTER 10 CONCLUSION AND FUTURE 61


ENHANCEMENT
10.1 Conclusion 62

10.2 Future Enhancement 60

CHAPTER 11 BIBLIOGRAPHY 63

11.1 Web Reference 64

Computer Engineering VIII


UNOTIC – THE AI UNO

LIST OF FIGURES

NO. NAME PAGE NO.

6.1 Entity Relationship Diagram 39

6.2 Use Case Diagram 40

6.3 Class Diagram 41

6.4 Flow Diagram 42

6.5 Activity Diagram for Choosing 44


Players

6.6 Activity Diagram for Player Turn 45

Computer Engineering IX
UNOTIC – THE AI UNO
Abstract

The main objective of the project is to create an UNO game which can be played virtually on computers.
UNO is a very popular multiplayer card game where the player with no card wins at the end. Here we can
play the game with multiple human players as well as we can play with AI players.

Here we can choose the total number of players as well as the number of AI players we want to play with.
Starting from a minimum of 2 players we can choose upto maximum of 9 players to play the game.

Here the game provides 2 different AI players- Strategic and Basic/Baseline. The basic AI takes a more
trivial approach to the card selection whereas the strategic AI plays the game strategically using some
predefined strategies instead of making first available legal move. The game follows all the rules of classical
UNO game and we have a couple of added rules which makes the game play even more interesting.

Keywords: Basic Artificial Intelligence, Strategic Artificial Intelligence, Draw four, draw wild, Reverse, Skip, Draw
two, Numbers(0-9), Main controller, player selection, Change direction, Change color, Player’s Stack card
Show/Hide.

Computer Engineering X
UNOTIC – THE AI UNO

Computer Engineering XI
UNOTICS – THE AI UNO

1. INTRODUCTION:

1.1 INTRODUCTION
1.2 PURPOSE OF THE PROJECT
1.3 FUNCTION REQUIREMENT
1.4 PROBLEMS IN EXISTING SYSTEM
1.5 MAIN MODULE
1.6 THE TRADITIONAL UNO GAME
1.7 RULES
1.8 EFFECT OF ACTION AND WILD CARDS
1.9 PENALTIES
1.10 ADDED RULES
1.11 TYPES OF CARDS

1
UNOTICS – THE AI UNO

1.1 INTRODUCTION:

UNOTIC - THE AI UNO is a virtual UNO game which follows the rules and
functionalities of the traditional UNO game. As well as it has few added rules that makes
the game play even more interesting. More custom strategies can be added to improve
the strategic AI so that it can make better moves which would result into a more
competitive game of UNO.

In the game of UNO, the deck consists of 108 cards.

These cards are broken up into 4 colors with each color having 19 cards (0 to 9) along
with 24 action cards, and 8 wild cards.
This is a multi-player card game where the player with no card wins at the end.

This game follows all the official rules of UNO game.


As well as adds two new rules: 1) Players are penalized with 1 card for illegal move, 2)
Wild and Wild Draw Four cards can also be used to change direction of the game.

1.2 PURPOSE OF THE PROJECT:


 To play UNO card game with multiple players as well as single player with AI computer.

 To spend family time and also for entertainment purpose.

 UNO can be played anytime, anywhere.

 To increase the strategic thinking of children.

 It also provides hours of entertainment.

 Teaches kids how to identify numbers and colors.

2
UNOTICS – THE AI UNO

1.3 FUNCTION REQUIREMENTS:


 User can choose total number of players.

 User can choose number of AI players.

 User can choose number of strategic AI players.

 User can either play a card or choose to skip chance.

 User can choose Auto Hide option to hide cards after each player’s turn, so that no one can get
an unfair advantage.

1.4 PROBLEMS IN EXISTING SYSTEM:


 Size of current application is too high.

 Only online play is available.

 Only access in mobile not able to connect personal computer to mobile.

 Not have single player features.

1.5 MAIN MODULE:


In UNOTICS main modules are cards, rules, basisline AI, strategic AI, view of game, players
selection etc.

We use java language to implement the game with the help of some frontend and backend
features of java.

1.6 THE TRADITIONAL UNO GAME:

UNO is an American shedding-type card game that is played with a specially printed deck.
The game was originally developed in 1971 by Merle Robbins in Reading, Ohio, a suburb
of Cincinnati. When his family and friends began to play more and more, he spent $8,000 to have
5,000 copies of the game made. He sold it from his barbershop at first, and local businesses began
to sell it as well. Robbins later sold the rights to Uno to a group of friends headed by Robert
Tezak, a funeral parlor owner in Joliet, Illinois, for $50,000 plus royalties of 10 cents per game.
Tezak formed International Games, Inc., to market Uno, with offices behind his funeral parlor.
The games were produced by Lewis Saltzman of Saltzman Printers in Maywood, Illinois.In 1992,
International Games became part of the Mattel family of companies.

UNO is a multiplayer card game in which the objective is to be the first player to get rid of all
the cards in their hands. Each player is dealt 7 cards and players take turn drawing card from the
deck. If a player has a card in their hand matching a card, they drew from the deck they can play
3
UNOTICS – THE AI UNO

their card (helping to reduce the total card in their hand). If the player doesn’t have matching card
in their hand, they must draw another card from the deck to add to their hand, which increases
the total number of cards they need to get rid of to win. When a player has only 1 card left in their
hand, they must yell “UNO!”, but if an opposite player notices before the original player has a
chance to say “UNO”, the original player must draw 4 more cards. In the game we use 108v
special cards that are made just to play UNO.

1.7 RULES:

The aim of the game is to be the first player (usually over several rounds of play) to play all of one's
own cards and scoring points for the cards still held by the other players. The deck consists of 108
cards: four each of "Wild" and "Wild Draw Four", and 25 each of four colors (red, yellow, green,
blue). Each color consists of one zero, two each of 1 through 9, and two each of "Skip", "Draw Two",
and "Reverse". These last three types are known as "action cards".
To start a hand, seven cards are dealt to each player, and the top card of the remaining deck is flipped
over and set aside to begin the discard pile. The player to the dealer's left plays first unless the first
card on the discard pile is an action or Wild card (see below). On a player's turn, they must do one of
the following:

 Play one card matching the discard in color, number, or symbol


 Play a Wild card, or a playable Wild Draw Four card (see restriction below)
 Draw the top card from the deck, then play it if possible
Cards are played by laying them face-up on top of the discard pile. Play initially proceeds clockwise
around the table.

 A player who draws from the deck must either play or keep that card and may play no
other card from their hand on that turn.
 A player may play a Wild card at any time, even if that player has other playable cards.
 A player may play a Wild Draw Four card only if that player has no cards matching the
current color. The player may have cards of a different color matching the current number
or symbol or a Wild card and still play the Wild Draw Four card. A player who plays a
Wild Draw Four may be challenged by the next player in sequence (see Penalties) to prove
that their hand meets this condition.
 If the entire deck is used during play, the top discard is set aside and the rest of the pile is
shuffled to create a new deck. Play then proceeds normally.
 It is illegal to trade cards of any sort with another player.

A player who plays their penultimate card must call "UNO" as a warning to the other players.

4
UNOTICS – THE AI UNO

1.8 EFFECT OF ACTION AND WILD CARDS:

i. SKIP:
Next player in sequence misses a turn.

ii. REVERSE:
Order of play switches directions (clockwise to counterclockwise, or vice versa).

iii. DRAW TWO (+2):


Next player in sequence draws two cards and misses a turn.

iv. WILD:
Player declares the next color to be matched (may be used on any turn even if the player has
matching color; current color may be chosen as the next to be matched).

v. DRAW FOUR WILD (+4 AND WILD):


Player declares the next color to be matched; next player in sequence draws four cards and
misses a turn. May be legally played only if the player has no cards of the current color.

1.9 PENALTIES:

If a player does not call "UNO" after laying down their penultimate card and is caught before the
next player in sequence takes a turn (i.e., plays a card from their hand, draws from the deck, or
touches the discard pile), they must draw two cards as a penalty. If the player is not caught in
time (subject to interpretation) or remembers to call "UNO" before being caught, they suffer no
penalty.

If a player plays a Wild Draw Four card, the following player can challenge its use. The player
who used the Wild Draw Four must privately show their hand to the challenging player, in order
to demonstrate that they had no matching-colored cards. If the challenge is correct, then the
challenged player draws four cards instead. If the challenge is incorrect, then the challenger must
draw six cards; the four cards they were already required to draw plus two more cards.

1.10 ADDED RULES:

1. Players are penalized with 1 card for illegal move.

2. Wild and Wild Draw Four cards can also be used to change direction of the game.

5
UNOTICS – THE AI UNO

1.11 TYPES OF CARDS:

i. NUMBER CARD:

6
UNOTICS – THE AI UNO

ii. SKIP:

iii. REVERSE:

7
UNOTICS – THE AI UNO

iv. DRAW TWO (+2):

8
UNOTICS – THE AI UNO

v. WILD:

vi. DRAW FOUR WILD (+4 AND WILD):

9
UNOTICS – THE AI UNO

2. SYSTEM REQUIREMENTS STUDY:


2.1 SOFTWARE AND HARDWARE REQUIREMENTS
2.1.1 Server-Side Requirements
2.1.2 Developer Side Requirements
2.1.3 User Side Requirements

10
UNOTICS – THE AI UNO

2.1 Software and Hardware Requirements:

Software and Hardware Requirements are used to describe the minimum hardware and software
requirements to run the Software. These requirements are described below.

 Software Requirements:

 Operating System: Windows or Linux


 IDE: Any JAVA complaint IDE
 JAVASE13 or higher
 JDK 16.0.1 or higher
 JUnit 4.13.0 or higher

 Hardware Requirements:
 1.6 GHZ CPU
 256 MB of RAM
 Monitor
 Keyboard/Mouse

2.1.1 Server-Side Requirement:


The Java Development Kit is a cross platformed software development environment that offers a
collection of tools and libraries is necessary for developing java-based software applications and
applets. It is a core package used in java, along with JVM (JavaVirtual Machine) and JRE (Java
Runtime Enviornment).

The Java Development Kit is an implementation of one of the Java Platform:

 Standard Edition (JavaSE)


 Java Enterprise Edition (JavaEE)
 Micro Edition (JavaME)

The JDK contains a private Java Virtual Machine (JVM) and a few other resources such as an
interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc),
etc. to complete the development of a Java Application

11
UNOTICS – THE AI UNO

JDK contains:

 Java Run Time Environment (JRE),


 An Interpreter/Loader (Java),
 A Compiler,
 An archiver (jar) and many more.

The Java Runtime Environment in JDK is usually called Private Runtime because it is separated from
the regular JRE and has extra content. The Private Runtime in JDK contains a JVM and all the class
libraries present in the production environment, as well as additional libraries useful to developers, e.g,
internationalization libraries and the IDL libraries.

Most popular JDKs:

 Oracle JDK: the most popular JDK and the main distributor of Java11.
 OpenJDK: Ready for use JDK 16, JDK 15 and JMC.
 Azul System Zing: efficient and low latency JDK for Linux os.
 Azul Systems: based Zulu brand for Linux, Windows, Mac OS X.
 IBM J9 JDK: for Aix, Linux, Windows, and many other OS.
 Amazon Corretto: the newest option with the no-cost of OpenJDK and long-term support.

Set-Up:

Setting up JDK in your development environment is super easy, just follow the below simple steps:

Installation of JDK:

 Go to this Oracle’s official Download Page.


 Select the latest JDK version and click Download and add it to your Classpath.
 Just check the JDK software is installed or not on your computer at correct location, for example,
at C:\Program Files\Java\jdk16.0.9.

Set JAVA_HOME for Windows:

 Right-click My Computer and select Properties.

12
UNOTICS – THE AI UNO

 Go to the Advanced tab and select Environment Variables, and then edit JAVA_HOME to point
to the exact location where your JDK software is stored, for example, C:\Program
Files\Java\jdk16.0.9.

Java maintains backward compatibility, so don’t worry just download the latest release and you will get
all the old and many new features. After Installing the JDK and JRE adds the java command to your
command line. You can verify this through the command prompt by the java -version command. In some
cases, you need to restart your system after installing the JDK.

2.1.2 Developer Side Requirement:


2.1.2.1 JAVASE 13
The SE stands for Java Standard Edition is a computing platform in which we can execute
software, and it can be used for development and deployment of portable code for desktop
and server environments. It has the Java programming language in use. It is part of Java
software-platform family. Java SE has a variety of general purpose APIs and the Java
Class Library. It is the core Java programming platform and provides all the libraries and
APIs such as java. lang, java.io, java. math, java.net, java

2.1.2.2 JDK 16.0.1

The Java Development Kit is a cross platformed software development environment that offers a
collection of tools and libraries is necessary for developing java based software applications and
applets. It is a core package used in java, along with JVM(JavaVirtual Machine) and JRE(Java Runtime
Enviornment).

13
UNOTICS – THE AI UNO

2.1.1.2 JUnit 4.13.0


JUnit is a unit testing framework for Java programming language. JUnit has been important in the
development of test-driven development, and is one of a family of unit testing frameworks collectively
known as xUnit, that originated with JUnit.

2.1.3 User Side Requirement :


Eclipse (@ www.eclipse.org) is an open-source Integrated Development Environment (IDE) supported
by IBM. The Eclipse platform can be used to develop rich client applications, integrated development
environments and other tools. Eclipse can be used as an IDE for any programming language for which a
plug-in is available.

It contains a base workspace and an extensible plug-in system for customizing the environment. It is the
second-most-popular IDE for Java development, and until 2016, was the most popular. Eclipse is written
mostly in Java and its primary use is for developing Java applications, but it may also be used to develop
applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, COBOL,
etc.

It can also be use to develop documents with LaTeX and packages for the software Mathematics.
Development environments include the Eclipse Java development tools for Java and Scala, Eclipse CDT
for C/C++, and Eclipse PDT for PHP, among others.

The initial codebase originated from IBM VisualAge. The Eclipse software development kit (SDK),
which includes the Java development tools, is meant for Java developers. Users can extend its abilities
by installing plug-ins written for the Eclipse Platform, such as development toolkits for other
programming languages, and can write and contribute their own plug-in modules. Since the introduction
of the OSGi implementation (Equinox) in version 3 of Eclipse, plug-ins can be plugged-stopped
dynamically and are termed (OSGI) bundles.

Eclipse software development kit (SDK) is free and open-source software, released under the terms of
the Eclipse Public License, although it is incompatible with the GNU General Public License. It was one
of the first IDEs to run under GNU Classpath and it runs without problems under IcedTea.
History of Eclipse:
Eclipse was inspired by the Smalltalk-based VisualAge family of integrated development
environment (IDE) products. Although fairly successful, a major drawback of the VisualAge products
was that developed code was not in a component-based software engineering model.
Instead, all code for a project was held in a compressed database using SCID techniques (somewhat like
a zip file but in a proprietary format called .dat). Individual classes could not be easily accessed, certainly
not outside the tool. A team primarily at the IBM Cary, NC lab developed the new product as a Java-
based replacement.
In November 2001, a consortium was formed with a board of stewards to further the development of
Eclipse as open-source software. It is estimated that IBM had already invested nearly $40 million by that
14
UNOTICS – THE AI UNO

time. The original members were Borland, IBM, Merant, QNX Software Systems, Rational
Software, Red Hat, SuSE, TogetherSoft, and WebGain. The number of stewards increased to over 80 by
the end of 2003.
In January 2004, the Eclipse Foundation was created. Eclipse 3.0 (released on 21 June 2004) selected
the OSGi Service Platform specifications as the runtime architecture.
The Association for Computing Machinery recognized Eclipse with the 2011 ACM Software Systems
Award on 26 April 2012.
Licensing
The Eclipse Public License (EPL) is the fundamental license under which Eclipse projects are
released. Some projects require dual licensing, for which the Eclipse Distribution License (EDL) is
available, although use of this license must be applied for and is considered on a case-by-case basis.
Eclipse was originally released under the Common Public License, but was later re-licensed under the
Eclipse Public License. The Free Software Foundation has said that both licenses are free
software licenses, but are incompatible with the GNU General Public License (GPL).
Name
According to Lee Nackman, Chief Technology Officer of IBM's Rational division (originating
in 2003) at that time, the name "Eclipse" (dating from at least 2001) was not a wordplay on Sun
Microsystems, as the product's primary competition at the time of naming was Microsoft Visual
Studio, which Eclipse was to eclipse.
Different versions of Eclipse have been given different science-related names. The versions
named after Callisto, Europa, and Ganymede, which are moons of Jupiter, were followed by a
version named after Galileo, the discoverer of those moons. These were followed by two sun-
themed names, Helios of Greek mythology, and Indigo, one of the seven colors of a rainbow
(which is produced by the sun). The version after that, Juno, has a triple meaning: a Roman
mythological figure, an asteroid, and a spacecraft to Jupiter. Kepler, Luna, and Mars continued
the astronomy theme, and then Neon and Oxygen constituted a theme of chemical
elements. Photon represented a return to sun-themed names.
As of 2018, the alphabetic scheme was abandoned in order to better align with the new
Simultaneous Release strategy. Releases are named in the format YYYY-MM to reflect the
quarterly releases, starting with version 4.9 named 2018-09.
Releases:
Since 2006, the Foundation has coordinated an annual Simultaneous Release. Each release
includes the Eclipse Platform and several other Eclipse projects.
From 2008 through 2018, each Simultaneous Release had occurred on the 4th Wednesday of
June. In 2018 the project switched to quarterly (13 week) YYYY-MM releases without
intermediate service releases.
Server Platform
Eclipse supports development for Tomcat, GlassFish and many other servers and is often
capable of installing the required server (for development) directly from the IDE. It supports
remote debugging, allowing a user to watch variables and step through the code of an
application that is running on the attached server.

15
UNOTICS – THE AI UNO

Web Tools Platform


The Eclipse Web Tools Platform (WTP) project is an extension of the Eclipse platform with
tools for developing Web and Java EE applications. It includes source and graphical editors for
a variety of languages, wizards and built-in applications to simplify development, and tools and
APIs to support deploying, running, and testing apps.
Extension
Eclipse supports a rich selection of extensions, adding support
for Python via PyDev, Android development via Google's ADT (superseded by Android
Studio since 2015), JavaFX via e(fx)clipse, JavaScript, jQuery, and many others at the Eclipse
Marketplace. Valable is a Vala plug-in for Eclipse.

16
UNOTICS – THE AI UNO

3. System Analysis and Design:


3.1 System Analysis and Design
3.2 System Development Life Cycle (SDLC)
3.2.1 Need of SDLC
3.2.2 SDLC Cycle
3.3 Incremental Model
3.3 Feasibility Study

17
UNOTICS – THE AI UNO

3.1 System Analysis and Design:


Our game “UNOTIC – THE AI UNP” is based on a game named UNO.

In the game of UNO, the deck consists of 108 cards. These cards are broken up into 4 colors with each
color having 19 cards (0 to 9) along with 24 action cards, and 8 wild cards. This is a multi-player card
game where the player with no card wins at the end. This game follows all the official rules of UNO
game. As well as adds two new rules: 1) Players are penalized with 1 card for illegal move, 2) Wild
and Wild Draw Four cards can also be used to change direction of the game.

To implement this game we are going to use Java language. As it supports some features of Front End
and Back End both.

3.1.1 GAME VIEW


3.1.1.1 – Button “Show”
When user clicks the unhide button, the game shows the card of the player. Player cannot play
card while the cards are hidden.

3.1.1.2 – Label “Player”


Player label shows the current player, so when the turn changes, the player label gets updated.

3.1.1.3 – Label “Penalties”


Penalties label shows the number of cards to draw from the pile if skipped the turn. So, when a
player plays a draw two or draw four cards, then the penalties for the next player should increase
accordingly.

3.1.1.4 – Label “Direction”


Direction label shows the current game direction, so when the direction changes from reverse
card or a wild card, then the direction label must be updated accordingly.

3.1.1.5 – Label “Skip/Draw”


When a player wants to skip their turn or draw the cards from the deck, then this button should
automatically draw correct number of cards for the player from the deck.

3.1.1.6 – Label “Color”


Color label should change according to the current color being played in the game. If a player
changes the next color, then the color label needs to be updated.
3.1.1.7 – Button “Right”
A can navigate next cards to the right using right button. So, a right button press should show
user their next card available in their hand. If the user reaches the right most card, then the right
button gets disabled.
18
UNOTICS – THE AI UNO

3.1.1.8 – Check Box “Auto Hide”


When selected, the next player’s cards are automatically hide between turns. When unchecked,
the cards are exposed for the next player.

3.1.1.9 – Error Bar


When player does an illegal move, then the error bar notifies the player. Also, the error bar is
used to show that an AI is playing the card if the current player is not human.

3.1.2 GAME VIEW


3.1.2.1 – Button “Play”
When user clicks the play button, the game state is updated. If the card played is not legal, then
the user is penalized. Otherwise, the game state gets updated along with the removal of the card
played from the user hand and addition of the new card on top of the discard deck. Also, the user
cannot play a card when the hand cards are hidden.

3.1.2.2 – Button “Left”


The player can navigate their cards on the left side of the deck. If the player reaches the left most
card, then the left button gets disabled. If the user navigates to the right side, the left button should
automatically get re-activated.

3.1.2.3 - Drop Down “ChangeColorBox”


If a player selects a wild card or wild draw four card, then the player can select the next color
card that needs to be played. And the labels for the next color and next direction should be updated
accordingly. Also, the draw four card should apply penalties to the next player.

3.1.2.4 – Drop Down “ChangeDirectionBox”


If a player selects a wild card or wild draw four card, then the player can select the next direction
that needs to be played in. This should also update the direction label in order to indicate the
current direction of the game.

3.1.3 GAME OVERVIEW


3.1.3.1 – Game Over
Game over frame needs to be shown when a player wins a game. This frame shows the player
who has won the game and disables the GameView window. This marks the end of the current
game, and player can start a new game.

19
UNOTICS – THE AI UNO

3.1.3.2 – Button “Ok”


On clicking the ok button, the GameOverView window as well as GameView windows needs to
be closed. And the player is directed to the ChoosePlayerView to start a new game.

3.1.3.3 – Button “Start”


On clicking the start button on the choose player menu, the game should dispose all the frames
and restart a fresh new game.

20
UNOTICS – THE AI UNO

3.2 System Development and Life cycle (SDLC):


SDLC is a process followed for a software project, within a software organization. It consists of a
detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The
life cycle defines a methodology for improving the quality of software and the overall development
process.

The following figure is a graphical representation of the various stages of a typical SDLC.

Limitations of SDLC:

It is difficult to estimate the actual cost of the entire project and the project overruns.

 It may lead to an increase in the cost of software development especially if the customer
requirements are not understood properly.
 It consists of specific requirements and phases that need to be completed, which increase the
time taken in the software development.
 Sometimes the input of users may be limited.
 The execution of SDLC phases depends on factors, such as customer requirements and the
availability of funds.

3.2.1 Need of SDLC:

 It provides an effective framework and method to develop software applications.


 It helps in effectively planning before starting the actual development. SDLC
allows developers to analyze the requirements.
 It helps in reducing unnecessary costs during development. During the initial
phases, developers can estimate the costs and predict costly mistakes.
 It enables developers to design and build high-quality software products. This is
because they follow a systematic process that allows them to test the software
before it is rolled out.
 It provides a basis when evaluating the effectiveness of the software. This further
enhances the software product.

21
UNOTICS – THE AI UNO

3.2.2 SDLC Cycle:

A typical Software Development Life Cycle consists of the following stages −

Stage 1: Planning and Requirement Analysis

Requirement analysis is the most important and fundamental stage in SDLC. It is


performed by the senior members of the team with inputs from the customer, the sales
department, market surveys and domain experts in the industry. This information is then
used to plan the basic project approach and to conduct product feasibility study in the
economical, operational and technical areas.

Planning for the quality assurance requirements and identification of the risks associated
with the project is also done in the planning stage. The outcome of the technical
feasibility study is to define the various technical approaches that can be followed to
implement the project successfully with minimum risks.

Stage 2: Defining Requirements

Once the requirement analysis is done the next step is to clearly define and document
the product requirements and get them approved from the customer or the market
analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be designed
and developed during the project life cycle.

Stage 3: Designing the Product Architecture

SRS is the reference for product architects to come out with the best architecture for the
product to be developed. Based on the requirements specified in SRS, usually more than
one design approach for the product architecture is proposed and documented in a DDS
– Design Document Specification.

This DDS is reviewed by all the important stakeholders and based on various parameters
as risk assessment, product robustness, design modularity, budget and time constraints,
the best design approach is selected for the product.

A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third party
modules (if any). The internal design of all the modules of the proposed architecture
should be clearly defined with the minutest of the details in DDS.

Stage 4: Building or Developing the Product

In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is performed
in a detailed and organized manner, code generation can be accomplished without much
hassle.

Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate the
22
UNOTICS – THE AI UNO

code. Different high level programming languages such as C, C++, Pascal, Java and
PHP are used for coding. The programming language is chosen with respect to the type
of software being developed.

Stage 5: Testing the Product

This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this stage
refers to the testing only stage of the product where product defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined in the
SRS.

Stage 6: Deployment in the Market and Maintenance

Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a limited
segment and tested in the real business environment (UAT- User acceptance testing).

Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.

Each phases are iteratively carried out. Main reason for using this then any other is
waterfall has the drawback of iterations, if there is any other requirement added later on
then this is not possible to add up in it, Spiral model has disadvantage that it need more
manpower and even it is for multiple transactions or multiple tasks handling projects and
so does the time consumption is more in it for those projects.

Planning is essential cause multiple software teams works in parallel on different system
functions. Scalability should be obtained in any of the project selected but it is not
available in waterfall cause of few drawbacks.

3.3 Incremental Model:


The model that is referred for the development of the project is INCREMENTAL model. It
combines elements of the waterfall model applied in an iterative fashion. In this process the
phases are same as waterfall but the advantage is that when first phase is done it is incremented
and then the other phases are carried with the same cycle. Here in this add one on each phase
can be added according to the need of the client and the project.

Phases are as follows:


1. Communication
2. Planning
3. Modeling: Includes Designing
4. Construction
5. Deployment: Feedback,Delivery

23
UNOTICS – THE AI UNO

Each phases are iteratively carried out. Main reason for using this then any other is waterfall has
the drawback of iterations, if there is any other requirement added later on then this is not possible
to add up in it, Spiral model has disadvantage that it need more manpower and even it is for
multiple transactions or multiple tasks handling projects and so does the time consumption is
more in it for those projects.

Planning is essential cause multiple software teams works in parallel on different system
functions. Scalability should be obtained in any of the project selected but it is not available in
waterfall cause of few drawbacks.
3.4 Feasibility Study:
Feasibility Study in Software Engineering is a study to evaluate feasibility of proposed project or
system. Feasibility study is one of stage among important four stages of Software Project
Management Process. As name suggests feasibility study is the feasibility analysis or it is a
measure of the software product in terms of how much beneficial product development will be
for the organization in a practical point of view. Feasibility study is carried out based on many
purposes to analyze whether software product will be right in terms of development, implantation,
contribution of project to the organization etc.

Economic Feasibility –
A software project is not just about writing a few hundred lines of source code to achieve a
particular objective. One of the major activities of the project planning phase, is to estimate
various project parameters in order to take proper decisions. Some important project parameters
are project size, duration, cost and efforts. By using COCOMO model we can find the estimation.

COCOMO (Constructive Cost Model) is a regression model based on LOC, i.e. number of Lines
of Code. It is a procedural cost estimate model for software projects and often used as a process
of reliably predicting the various parameters associated with making a project such as size, effort,
cost, time and quality.

In COCOMO model there is three categories.

oOrganic
oSemidetached
oEmbedded

In our project under a semidetached system, consider a software project using semidetached
system mode with 10000 line of code.

We will obtain estimation for this project as follows:

1.Effort Estimation:
E = a1(KLOC)Exp(a2) person-months E = 3.0(10)Exp(1.121)
E = 40 PM(approx)

24
UNOTICS – THE AI UNO

2.Duration Estimation:
D = b1(E)Exp(b2)months D = 2.5(40)Exp(.35)
D = 9.09 Mont

Need of Feasibility Study:


Feasibility study is so important stage of Software Project Management Process as after
completion of feasibility study it gives a conclusion of whether to go ahead with proposed project
as it is practically feasible or to stop proposed project here as it is not right/feasible to develop or
to think/analyze about proposed project again.

Along with this Feasibility study helps in identifying risk factors involved in developing and
deploying system and planning for risk analysis also narrows the business alternatives and
enhance success rate analyzing different parameters associated with proposed project
development.

25
UNOTICS – THE AI UNO

4. Front End:

Java Swing Framework is part of the Java Foundation Class (JFC). It is lightweight, user-friendly,
and platform-independent. It is used to create Windows-based software that has texts, input fields,
buttons, can perform actions, etc.

Swing Framework contains a rich set of components like JFrame, JLabel, JTextField, JButton,
JPanel, etc., using which we can build a Graphical User Interface (GUI). Swing has three major
revolutionary advances i.e. it uses fewer resources, adds more advanced components, and lets the
programmer control its appearance and behavior.

Introduction To Swing Java:-


This is an era where everything is to be made user-friendly and interactive. Look at the image
below, the first image contains graphics such as texts, images, buttons, checkboxes, colors, etc.,
whereas the second image is simple and less interactive.

Need For Swing:-


lightweight - as swing doesn't use native resources, it is light- weighted.
platform-independent - it doesn't depend on any platform thus, the swing is platform-independent.

customizable - it can be designed and made according to the requirement of the programmer.
configurable - as we see that the applications that have regular updates with new features swing
also provides a facility to configure existing applications with variable features.

26
UNOTICS – THE AI UNO

5. Back End:

In this project the 75-80% code is backend as it will have some content like basline AI ,strategic
AI,card colour change ,player selections, game views,main controllers ,etc.

Basline AI:-Baseline AI can automatically play random(if there is more than one) legal cards for
each round and draw cards when no legal cards are present.

Strategic AI:- Strategic AI is customed AI which plays card strategically to win the game instead of
naively .

Cards:-the uno card images is use to play the game the images are import to the code in string form.

Player selection:-the game is being played by the players so we will provide view section for
choosing the number of players.

Controllers:- controllers are use to manage and to combine all the functionality of the game.

Basically whole process will be done by the controllers

We are using JAVASE 13, JDK 16.0.1, Junit 4.1.3.0 in our system to implement the game.

27
UNOTICS – THE AI UNO

6. SYSTEM DESIGN:
6.1 Use Case Diagram
6.2 Activity Diagram
6.3 E-R Diagram
6.4 Class Diagram
6.5 Flow Diagram

28
UNOTICS – THE AI UNO

6.1 USE CASE DIAGRAM :

Use Case during requirement elicitation and analysis to represent the functionality of the system. Use
case describes a function by the system that yields a visible result for an actor. The identification of actors
and use cases result in the definitions of the boundary of the system i.e., differentiating the tasks
accomplished by the system and the tasks accomplished by its environment. The actors are outside the
boundary of the system, whereas the use cases are inside the boundary of the system. Use case describes
the behaviour of the system as seen from the actor’s point of view. It describes the function provided by
the system as a set of events that yield a visible result for the actor.
Purpose of Use Case Diagrams :

The purpose of use case diagram is to capture the dynamic aspect of a system. However, this definition
is too generic to describe the purpose, as other four diagrams (activity, sequence, collaboration, and
Statechart) also have the same purpose. We will look into some specific purpose, which will distinguish
it from other four diagrams.

Use case diagrams are used to gather the requirements of a system including internal and external
influences. These requirements are mostly design requirements. Hence, when a system is analyzed to
gather its functionalities, use cases are prepared and actors are identified.
When the initial task is complete, use case diagrams are modelled to present the outside view.
In brief, the purposes of use case diagrams can be said to be as follows − Used to gather the requirements
of a system.

Used to get an outside view of a system.

Identify the external and internal factors influencing the system. Show the interaction among the
requirements are actors.

How to Draw a Use Case Diagram?

Use case diagrams are considered for high level requirement analysis of a system. When the requirements
of a system are analyzed, the functionalities are captured in use cases.
We can say that use cases are nothing but the system functionalities written in an organized manner. The
second thing which is relevant to use cases are the actors. Actors can be defined as something that
interacts with the system.
Actors can be a human user, some internal applications, or may be some external applications. When we
are planning to draw a use case diagram, we should have the following items identified.
Functionalities to be represented as use case Actors
Relationships among the use cases and actors.

Use case diagrams are drawn to capture the functional requirements of a system. After identifying the
above items, we have to use the following guidelines to draw an efficient use case diagram.

29
UNOTICS – THE AI UNO

The name of a use case is very important. The name should be chosen in such a way so that it can identify
the functionalities performed.
Give a suitable name for actors.

Show relationships and dependencies clearly in the diagram.

Do not try to include all types of relationships, as the main purpose of the diagram is to identify the
requirements.

Use notes whenever required to clarify some important points.

30
UNOTICS – THE AI UNO

[Figure 6.1: USE CASE DIAGRAM]

31
UNOTICS – THE AI UNO

6.2 ACTIVITY DIAGRAM :

We use Activity Diagrams to illustrate the flow of control in a system and refer to the steps involved in
the execution of a use case. We model sequential and concurrent activities using activity diagrams. So,
we basically depict workflows visually using an activity diagram. An activity diagram focuses on
condition of flow and the sequence in which it happens. We describe or depict what causes a particular
event using an activity diagram.

An activity diagram is a behavioral diagram i.e. it depicts the behavior of a system. An activity diagram
portrays the control flow from a start point to a finish point showing the various decision paths that exist
while the activity is being executed. We can depict both sequential processing and concurrent processing
of activities using an activity diagram. They are used in business and process modelling where their
primary use is to depict the dynamic aspects of a system.

An activity diagram is a special case of a state diagram in which all (or at least most) of the states are
action states and in which all (or at least most) of the transitions are triggered by completion of the actions
in the source states.

[ Figure 6.2.1 : ACTIVITY DIAGRAM FOR CHOOSING PLAYERS ]

32
UNOTICS – THE AI UNO

Start/Stop

[ Figure 6.2.2 : ACTIVITY DIAGRAM FOR PLAYER TURN ]

33
UNOTICS – THE AI UNO

6.3 ENTITY RELATIONSHIP DIAGRAM :

An entity relationship diagram (ERD) shows the relationships of entity sets stored in a database. An
entity in this context is an object, a component of data. An entity set is a collection of similar entities.
These entities can have attributes that define its properties. By defining the entities, their attributes, and
showing the relationships between them, an ER diagram illustrates the logical structure of databases.

[ Figure 6.3: E-R DIAGRAM ]

34
UNOTICS – THE AI UNO

6.4 CLASS DIAGRAM :

Class diagrams model class structure and contents using design elements such as classes, packages and
objects. Class diagram describe the different perspective when designing a system-conceptual,
specification and implementation. Classes are composed of three things: name, attributes, and operations.
Class diagram also display relationships such as containment, inheritance, association etc. The
association relationship is most common relationship in a class diagram. The association shows the
relationship between instances of classes.
How to Draw a Class Diagram?

Class diagrams are the most popular UML diagrams used for construction of software applications. It is
very important to learn the drawing procedure of class diagram.
Class diagrams have a lot of properties to consider while drawing but here the diagram will be considered
from a top level view.
Class diagram is basically a graphical representation of the static view of the system and represents
different aspects of the application. A collection of class diagrams represent the whole system.
The following points should be remembered while drawing a class diagram −

The name of the class diagram should be meaningful to describe the aspect of the system.
Each element and their relationships should be identified in advance. Responsibility (attributes and
methods) of each class should be clearly identified
For each class, minimum number of properties should be specified, as unnecessary properties will make
the diagram complicated.
Use notes whenever required to describe some aspect of the diagram. At the end of the drawing it should
be understandable to the developer/coder.
Finally, before making the final version, the diagram should be drawn on plain paper and reworked as
many times as possible to make it correct.

35
UNOTICS – THE AI UNO

[ Figure 6.4: CLASS DIAGRAM ]

36
UNOTICS – THE AI UNO

6.5 FLOW DIAGRAM :

A flow diagram, or flowchart, is a specific type of activity diagram that communicates a sequence
of actions or movements within a complex system. A flow diagram is a powerful tool for optimizing the
paths of people, objects, or information. Connectors and symbols work together to illustrate directions
of flow, objects that move, and quantities involved. An important feature of a flow diagram is its ability
to incorporate conditional paths that a person or object may follow depending on the state of the condition
in question. An example would be a simple user flow that directs a user to their personal account page if
they are already logged in, or redirects them to a login form if they are not.

[ Figure 6.5: FLOW DIAGRAM ]

37
UNOTICS – THE AI UNO

7. TESTING:-

7.1 Testing Plan

7.2 Testing Strategies

7.3 Testing Method

7.4 Test Case

38
UNOTICS – THE AI UNO

7.1 TESTING PLAN:-


 Type of Testing:
 Manual Testing
 Automation Testing
Manual Testing:

Manual testing is a software testing process in which test cases are executed manually without using any
automated tool. All test cases executed by the tester manually according to the end user's perspective. It
ensures whether the application is working, as mentioned in the requirement document or not. Test cases
are planned and implemented to complete almost 100 percent of the software application. Test case
reports are also generated manually.

Manual Testing is one of the most fundamental testing processes as it can find both visible and hidden
defects of the software. The difference between expected output and output, given by the software, is
defined as a defect. The developer fixed the defects and handed it to the tester for retesting.

Manual testing is mandatory for every newly developed software before automated testing. This testing
requires great efforts and time, but it gives the surety of bug-free software. Manual Testing requires
knowledge of manual testing techniques but not of any automated testing tool.

Manual testing is essential because one of the software testing.

Fundamental is "100% automation is not possible."

 Why we need manual testing:

Whenever an application comes into the market, and it is unstable or having a bug or issues or creating
a problem while end-users are using it.

If we don't want to face these kinds of problems, we need to perform one round of testing to make the
application bug free and stable and deliver a quality product to the client, because if the application is
bug free, the end-user will use the application more conveniently.

If the test engineer does manual testing, he/she can test the application as an end-user perspective and
get more familiar with the product, which helps them to write the correct test cases of the application and
give the quick feedback of the application.

 How to perform Manual Testing:

 First, tester observes all documents related to software, to select testing areas.
 Tester analyses requirement documents to cover all requirements stated by the
customer.
 Tester develops the test cases according to the requirement document.
 All test cases are executed manually by using Black box testing and white box testing.
39
UNOTICS – THE AI UNO

 If bugs occurred then the testing team informs the development team.
 The Development team fixes bugs and handed software to the testing team for a retest.

 Advantages of Manual Testing:

 It does not require programming knowledge while using the Black box method.
 It is used to test dynamically changing GUI designs.
 Tester interacts with software as a real user so that they are able to discover usability
and user interface issues.
 It ensures that the software is a hundred percent bug-free.
 It is cost-effective.
 Easy to learn for new testers.

 Disadvantages of Manual Testing:

 It requires a large number of human resources.


 It is very time-consuming.
 Tester develops test cases based on their skills and experience. There is no evidence
that they have covered all functions or not.
 Test cases cannot be used again. Need to develop separate test cases for each new
software.
 It does not provide testing on all aspects of testing.
 Since two teams work together, sometimes it is difficult to understand each other's
motives, it can mislead the process.

Automation Testing:

Another software testing method is automation testing, which is used some specific tools to execute the
test scripts without any human interference. It is the most acceptable way to enhance the efficiency,
productivity, and test coverage of Software testing.

With the help of an automation testing tool we can easily approach the test data, handle the test
implementation, and compares the actual output against the expected outcome.

40
UNOTICS – THE AI UNO

In automation testing, the test automation engineer will write the test script or use the automation
testing tools to execute the application. On the other hand, in manual testing, the test engineer will
write the test cases and implement the software on the basis of written test cases.

In test automation, the test engineer can execute repetitive tasks and other related tasks. In manual
testing, it is a tedious process to implement the repetitive take again and again.

In other words, we can say that the main concentration of test Automation is to change the manual
human activity with systems or devices.

The automation testing process is a time-saving process as it spends less time in exploratory testing
and more time in keeping the test scripts whereas enhancing the complete test coverage.

 Why do we need to perform automation testing?

 In software testing, automation testing is required to test the application because it


offers us a better application with less effort and time.
 Some organizations still perform only manual testing to test the application as those
companies are not fully aware of the automation testing process.
 But now, they are aware of automated testing and executing the test automation
procedure in their application development process.
 To implement the automation testing, we required pretty a considerable investment of
resources and money.

 Advantages:

The execution of automation testing provides us various advantages, which are as discussed below:

1. Reusability:

We can re-use the test scripts in automation testing, and we don't need to write the new test scripts again
and again. And, we can also re-create the steps which are detailed as the earlier ones.

2. Consistency:

As compared to manual testing, automation testing is more consistent and way faster than executing the
regular monotonous tests that cannot be missed but may cause faults when tested manually.

3. Running Tests 24/7:

In automation testing, we can start the testing process from anywhere in the world and anytime we want
to. And even we can do that remotely if we don't have many approaches or the option to purchase them.

41
UNOTICS – THE AI UNO

4. Early Bug Detection:

We can easily detect the critical bugs in the software development process's initial phases by executing
automation testing. It also helps us spend fewer working hours to fix these problems and reduce costs.

5. Less Human Resources:

To implement the automation test script, we need a test automation engineer who can write the test scripts
to automate our tests, rather than having several people who are repeatedly performing the tedious
manual tests.

 Automation Testing Methodologies:

Automation testing contains the following three different methodologies and approaches, which will help
the test engineer to enhance the software product's quality.

 GUI Testing
 Code-Driven
 Test Automation Framework

1. GUI (Graphical user interface) Testing

In this approach, we can implement that software or an application, which contains GUIs. So, that the
automation test engineers can record user actions and evaluate them many times.

We know that the Test cases can be written in several programming languages like JAVA
, C#
, Python
, Perl, etc.

2. Code-Driven

The code-driven technique is the subsequent methodology used in automation testing. In this method,
the test engineer will mainly concentrate on test case execution in order to identify whether the several
parts of code are performing according to the given requirement or not.

Hence, it is very a commonly used method in agile software development

3. Test Automation Framework

Another approach in automation testing is test automation framework. The test automation framework
is a set of rules used to generate valuable results of the automated testing activity.

Similarly, it brings together test data sources, function libraries, object details, and other reusable
modules.
42
UNOTICS – THE AI UNO

7.2 TESTING STRATEGIES :

 White Box Testing

White box testing (WBT) is also called Structural or Glass box testing.White box testing involves
looking at the structure of the code. When you know the internal structure of a product, tests can be
conducted to ensure that the internal operations performed according to the specification. And all internal
components have been adequately exercised.

 Why we do White Box Testing?


To ensure:

 That all independent paths within a module have been exercised at least once.
 All logical decisions verified on their true and false values.
 All loops executed at their boundaries and within their operational bounds internal
data structures validity.

 Need of White Box Testing?

To discover the following types of bugs:

 Logical error tend to creep into our work when we design and implement functions,
conditions or controls that are out of the program
 The design errors due to difference between logical flow of the program and the actual
implementation
 Typographical errors and syntax checking

Limitation of WBT:

Not possible for testing each and every path of the loops in program. This means exhaustive
testing is impossible for large systems. This does not mean that WBT is not effective. By
selecting important logical paths and data structure for testing is practically possible and
effective.

43
UNOTICS – THE AI UNO

7.3 TESTING METHODS:

 Black Box Testing

 Black box testing treats the system as a “black-box”, so it doesn’t explicitly use
Knowledge of the internal structure or code. Or in other words the Test engineer need not
know the internal working of the “Black box” or application.

 Main focus in black box testing is on functionality of the system as a whole. The term
‘behavioural testing’ is also used for black box testing and white box testing is also
sometimes called ’structural testing’. Behavioural test design is slightly different from
black-box test design because the use of internal knowledge isn’t strictly forbidden, but
it’s still discouraged.
 Each testing method has its own advantages and disadvantages. There are some bugs that
cannot be found using only black box or only white box. Majority of the application are
tested by black box testing method. We need to cover majority of test cases so that most
of the bugs will get discovered by black box testing.
 Black box testing occurs throughout the software development and Testing life cycle i.e.
in Unit, Integration, System, Acceptance and regression testing stages.
 Advantages of Black Box Testing

• Tester can be non-technical.


• Used to verify contradictions in actual system and the specifications.
• Test cases can be designed as soon as the functional specifications are complete

 Disadvantages of Black Box Testing


• The test inputs needs to be from large sample space.
 It is difficult to identify all possible inputs in limited testing time. So writing test
cases is slow and difficult. Chances of having unidentified paths during this
testing.
7.4 TEST CASES :
7.4.1 TEST- CHOOSE PLAYER VIEW
Test 7.4.1.1 – Button “Start” When user clicks the start button, the window should launch
UNO game with specified number of players.

Test 7.4.1.2 – Number of Players Slider User should be able to change the number of
players allowed in the game by sliding the bar. This should also update the number of player box
next to it. This change should also reflect on AI player.

Test 7.4.1.3 – Number of AI Player Slider User should be able to change the number of
AI players allowed in the game by sliding the bar. This should also update the number of AI
player box next to it. This change should be reflected on strategic AI slider.
44
UNOTICS – THE AI UNO

Test 7.4.1.4 – Number of Players Slider User should be able to change the number of
strategic AI players allowed in the game by sliding the bar. This should also update the number
of strategic AI player box next to it.

7.4.2 TEST- GAME VIEW


Test 7.4.2.1 – Button “Show”
When user clicks the unhide button, the game shows the card of the player. Player cannot play
card while the cards are hidden.

Test 7.4.2.2 – Label “Player”


Player label shows the current player, so when the turn changes, the player label gets updated.

Test 7.4.2.3 – Label “Penalties”


Penalties label shows the number of cards to draw from the pile if skipped the turn. So, when a
player plays a draw two or draw four cards, then the penalties for the next player should increase
accordingly.

Test 7.4.2.4 – Label “Direction”


Direction label shows the current game direction, so when the direction changes from reverse
card or a wild card, then the direction label must be updated accordingly.
Test 7.4.2.5 – Label “Skip/Draw”
When a player wants to skip their turn or draw the cards from the deck, then this button should
automatically draw correct number of cards for the player from the deck.

Test 7.4.2.6 – Label “Color”


Color label should change according to the current color being played in the game. If a player
changes the next color, then the color label needs to be updated.

Test 7.4.2.7 – Button “Right”


A can navigate next cards to the right using right button. So, a right button press should show
user their next card available in their hand. If the user reaches the right most card, then the right
button gets disabled.

Test 7.4.2.8 – Check Box “Auto Hide”


When selected, the next player’s cards are automatically hide between turns. When unchecked,
the cards are exposed for the next player.

Test 7.4.2.9 – Error Bar


When player does an illegal move, then the error bar notifies the player. Also, the error bar is
used to show that an AI is playing the card if the current player is not human.

45
UNOTICS – THE AI UNO

7.4.3 TEST – GAME VIEW

Test 7.4.3.1 – Button “Play”


When user clicks the play button, the game state is updated. If the card played is not legal, then
the user is penalized. Otherwise, the game state gets updated along with the removal of the card
played from the user hand and addition of the new card on top of the discard deck. Also, the user
cannot play a card when the hand cards are hidden.

Test 7.4.3.2 – Button “Left”


The player can navigate their cards on the left side of the deck. If the player reaches the left most
card, then the left button gets disabled. If the user navigates to the right side, the left button should
automatically get re-activated.

Test 7.4.3.3 – Drop Down “ChangeColorBox”


If a player selects a wild card or wild draw four card, then the player can select the next color
card that needs to be played. And the labels for the next color and next direction should be updated
accordingly. Also, the draw four card should apply penalties to the next player.

Test 7.4.3.4 – Drop Down “ChangeDirectionBox”


If a player selects a wild card or wild draw four card, then the player can select the next direction
that needs to be played in. This should also update the direction label in order to indicate the
current direction of the game.

7.4.4 TEST – GAME OVERVIEW


Test 7.4.4.1 – Game Over
Game over frame needs to be shown when a player wins a game. This frame shows the player
who has won the game and disables the GameView window. This marks the end of the current
game, and player can start a new game.

Test 7.4.4.2 – Button “Ok”


On clicking the ok button, the GameOverView window as well as GameView windows needs to
be closed. And the player is directed to the ChoosePlayerView to start a new game.

Test 7.4.4.2 – Button “Start”


On clicking the start button on the choose player menu, the game should dispose all the frames
and restart a fresh new game.

46
UNOTICS – THE AI UNO

8. SNAPSHOTS OF SOFTWARE:-
8.1 User Site

47
UNOTICS – THE AI UNO

8.1 USER SITE:

[ Figure 8.1.1: Choosing players and AI players to play game ]

48
UNOTICS – THE AI UNO

[ Figure 8.1.2: Layout of the game while playing ]

49
UNOTICS – THE AI UNO

[ Figure 8.1.2: Layout of the game while playing ]

50
UNOTICS – THE AI UNO

[ Figure 8.1.3: Pop up for which player won]

51
UNOTICS – THE AI UNO

9. ADVANTAGES OF UNOTICS: -

9.1 Advantages of UNOTICS


9.2 Limitations of UNOTICS

52
UNOTICS – THE AI UNO

9.1 ADVANTAGES OF UNOTICS:


 Can be played with multiple AI players if real players are not available.

 Added set of rules makes the game even more interesting.

 Space occupied on the disc is very less.

 Has minimal technical requirements to get the game running on any system.
 The player can choose the level of AI (Strategic and Basic) he/she wants to play
against.

9.2 LIMITATIONS OF UNOTICS:


 Different players cannot play together from their own devices.

 Layman cannot access the game directly by just clicking an icon.

 It is mandatory to run the code manually to start the game.

 The player can see only single card from all the cards in his/her hand at a time.

53
UNOTICS – THE AI UNO

10. CONCLUSION ANDFUTURE ENHANCEMENT

10.1 Conclusion
10.2 Future Enhancement

54
UNOTICS – THE AI UNO

10.1 CONCLUSION :

UNOTIC- THE AI UNO is a software based game which can be played by multiple users
and a user can also play the game with AI.

On board we have 2 types of AI-(1) Baseline AI which plays the first available legal move
and (2)The Strategic AI which plays strategically according to a few predefined strategies
and makes a competitive environment. The player with no card left i.e. the one who plays all
the cards in his hand, in the end wins the game.

10.2 FUTURE ENHANCEMENTS :

 Can be converted into Android/IoS Application so that game can be played on mobile
phones which we usually carry along with us.

 The AI can be customised in a way that it learns from the human players and their strategic
moves.

 A new mode can be added that enables random players to play with each other online.

 A tutorial can be added for the new players trying the game for the first time.

 A list of rules can be added for the reference of players whenever required.

Custom game mode can be added where the players can select the rules, they want to
play the game with.

55
UNOTICS – THE AI UNO

11. REFERANCE:-

11.1 Webliography

56
UNOTICS – THE AI UNO

11.1 BIBLIOGRAPHY :

Web Resources :

1. https://en.wikipedia.org/wiki/Uno_(card_game)

2. https://service.mattel.com/instruction_sheets/42001pr.pdf

3. https://www.geeksforgeeks.org/java/

4. https://www.tutorialspoint.com/java/index.htm

5. http://www.clker.com/clipart-801692.html

6. https://en.wikipedia.org/wiki/Uno_(card_game)

7. https://www.crazygames.com/game/uno-online

57

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy