UNOTIC - The Uno Game Report
UNOTIC - The Uno Game Report
A
Project Report
On
By
Vishw Kacha
Aryan Prajapati
Vishesh Doshi
Semester: VI
Diploma Computer Engineering
Guided By:
Tejal Modi
HOD CE
SAL Institute of Diploma Studies
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:
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:
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:
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
Title Page i
Certificate Page ii
Acknowledgements V
Table of Contents Vi
List of Figures ix
Abstract x
CHAPTER 1 INTRODUCTION 01
1.7 Rules 06
1.9 Penalties 08
vi
UNOTICS – THE AI UNO
vii
UNOTIC – THE AI UNO
CHAPTER 7 TESTING 43
7.1 Testing Plan 44
CHAPTER 9 ADVANTAGES 59
9.1 Advantages 60
9.2 Limitations 60
CHAPTER 11 BIBLIOGRAPHY 63
LIST OF FIGURES
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.
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.
2
UNOTICS – THE AI UNO
User can choose Auto Hide option to hide cards after each player’s turn, so that no one can get
an unfair advantage.
We use java language to implement the game with the help of some frontend and backend
features of java.
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:
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
i. SKIP:
Next player in sequence misses a turn.
ii. REVERSE:
Order of play switches directions (clockwise to counterclockwise, or vice versa).
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).
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.
2. Wild and Wild Draw Four cards can also be used to change direction of the game.
5
UNOTICS – THE AI UNO
i. NUMBER CARD:
6
UNOTICS – THE AI UNO
ii. SKIP:
iii. REVERSE:
7
UNOTICS – THE AI UNO
8
UNOTICS – THE AI UNO
v. WILD:
9
UNOTICS – THE AI UNO
10
UNOTICS – THE AI UNO
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:
Hardware Requirements:
1.6 GHZ CPU
256 MB of RAM
Monitor
Keyboard/Mouse
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:
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.
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:
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.
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
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
16
UNOTICS – THE AI UNO
17
UNOTICS – THE AI 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.
19
UNOTICS – THE AI UNO
20
UNOTICS – THE AI UNO
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.
21
UNOTICS – THE AI UNO
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.
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.
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.
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.
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.
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.
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.
oOrganic
oSemidetached
oEmbedded
In our project under a semidetached system, consider a software project using semidetached
system mode with 10000 line of code.
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
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.
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.
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
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.
Identify the external and internal factors influencing the system. Show the interaction among the
requirements are actors.
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.
Do not try to include all types of relationships, as the main purpose of the diagram is to identify the
requirements.
30
UNOTICS – THE AI UNO
31
UNOTICS – THE AI UNO
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.
32
UNOTICS – THE AI UNO
Start/Stop
33
UNOTICS – THE AI UNO
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.
34
UNOTICS – THE AI UNO
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
36
UNOTICS – THE AI UNO
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.
37
UNOTICS – THE AI UNO
7. TESTING:-
38
UNOTICS – THE AI UNO
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.
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.
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.
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.
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.
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.
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
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.
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 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
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.
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
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.
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.
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
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
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.
45
UNOTICS – THE AI UNO
46
UNOTICS – THE AI UNO
8. SNAPSHOTS OF SOFTWARE:-
8.1 User Site
47
UNOTICS – THE AI UNO
48
UNOTICS – THE AI UNO
49
UNOTICS – THE AI UNO
50
UNOTICS – THE AI UNO
51
UNOTICS – THE AI UNO
9. ADVANTAGES OF UNOTICS: -
52
UNOTICS – THE AI UNO
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.
The player can see only single card from all the cards in his/her hand at a time.
53
UNOTICS – THE AI UNO
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.
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