Professional Documents
Culture Documents
CSE - 2020 - 27 - Android Dice Roller App
CSE - 2020 - 27 - Android Dice Roller App
CSE - 2020 - 27 - Android Dice Roller App
2020-21
MOBILE APPLICATION DEVELOPMENT[18CSMP68]
Mini Project Report
On
By
JAYANTH P B 4VM18CS020
SUGAM BK 4VM18CS039
Mr. SAGAR B
Assistant Professor
Dept. of CSE, VVIET
CERTIFICATE
Certified that the MAD Mini Project Work entitled “ANDROID DICE ROLLER APP ”
carried out by JAYANTH PB [4VM18CS020] and SUGAM BK [4VM18CS039], bonafide
students of VVIET in partial fulfillment for the award of degree Bachelor of Engineering in
COMPUTER SCIENCE and ENGINEERING as prescribed by VISVESVARAYA
TECHNOLOGICAL UNIVERSITY, BELGAUM during the academic year 2020-21. It is
certified that all corrections/suggestions indicated for internal assessment have been
incorporated in the report deposited in the departmental library. The project report has
been approved as it satisfies the academic requirements in respect of mini project work
prescribed for the said degree.
EXTERNAL VIVA
Name of the examiners Signature with date
1.
2.
Android Dice Roller App
ACKNOWLEDGEMENT
We would like to thank and express our heartfelt gratitude to God almighty for the
abundant blessings without which this project would not have been successful.
We would like to express our sincere gratitude to Sri. Vasu, Chairman of VVIET,
Mr. Kaveesh Gowda V, Secretary of VVIET and all management members of VVIET, for their
constant support.
We acknowledge and express our sincere thanks to our beloved Principal
Dr. Ravishankar M, VVIET, Mysuru who is the source of inspiration.
We would like to express our deepest sense of gratitude towards Dr. Madhu B K,
Head of the Department, CSE, VVIET, Mysuru for his valuable suggestions, support and
encouragement.
We would like to extend our heartfelt gratitude to Mr. Theja N, Assistant Professor,
Dept. of CSE, for the valuable guidance and advice. We would also like to thank him for his
guidance and useful suggestions, which helped us in completing the project work on time.
We would also thank all other teaching and non-teaching staffs of the Computer
Science Department who has directly or indirectly helped us in completion of this project.
Our thanks and appreciation also go to our family and friends who have willingly
helped us out with their abilities.
Regards,
Jayanth P B
Sugam B K
Android Dice Roller App
ABSTRACT
Dice are used in many games, and often in fairly complex ways that make it
difficult to unambiguously describe the dice-roll mechanism in plain language.
Many role-playing games, such as Dungeons & Dragons, use a formalised notation
for some instances of dice-rolls. This notation, once explained, make dice-roll
descriptions concise and unambiguous. Furthermore, the notation has been used in
automated tools for pseudo-random dice-rolling (typically used when playing over
the Internet). This notation is, however, fairly limited in the types of dice-rolls it
can describe, so most games still use natural language to describe rolls. Even
Dungeons & Dragons use formal notation only for some of the dice-roll methods
used in the game. Hence, a more complete notation is in this paper proposed, and a
tool for pseudo-random rolls and (nearly) exact probability calculations is
described. The notation is called "Troll", combining the initial of the Danish word
for dice ("terninger") with the English word "roll". It is a development of the
language Roll described in an earlier paper. The present paper describes the most
important features of Troll and its implementation.
Android Dice Roller App
TABLE OF CONTENTS
Acknowledgement
Abstract
Table of contents
List of Figures
1. Introduction 1-2
1.1 Aim 3
1.3 Motivation 3
1.4 Application 3
2. Literature Survey 5
5. Implementation 19-25
5.1 Source codes 21-24
5.1.1 Android Mainfest.XML 21
5.1.2 Main Activity .JAVA 22-24
5.1.2.1 New code to initialize sound playback 23-24
5.1.3 Snapshots 25
Conclusion 31
Future Enhancement 32
References 31-33
Android Dice Roller App
LIST OF FIGURES
Fig no Fig description Page no
CHAPTER 1
INTRODUCTION
A dice is typically a small, throwable object that has multiple faces (most commonly six)
and possible positions that indicate a number (or something else), used for generating random
numbers and events. They are typically used for tabletop games, which includes a wide variety of
games, as well as for gambling. Examples of tabletop games that involve the use of dice include
games like backgammon, Boggle, and Yahtzee, where dice are a central component of the game.
Some other well-known tabletop games include Monopoly, Risk, Dungeons and Dragons, and
Settlers of Catan. There are however, numerous others.
Dice shapes
The most commonly used dice shapes are listed below.
Tetrahedron: 4 faces – the blue die
Cube: 6 faces – the orange, cubic die
Octahedron: 8 faces – the green die
Pentagonal trapezohedron: 10 faces – the orange, non-cubic die
Dodecahedron: 12 faces – the yellow die
Icosahedron: 20 faces – the purple die
Although the image shows some of the more common die shapes, there are many other
polyhedral dice, or dice of other shapes. There are also non-numeric dice, dice that do not follow
a counting sequence that begins at one, and spherical dice.
Virtual dice, like the one above, are almost always based on pseudo-random number
generating algorithms, which are also not truly random. However, a virtual dice roll is likely
more close to true randomness than most physical dice.
They may be used to produce results other than one through six. Loaded and crooked
dice are designed to favor some results over others for purpose of cheating or amusement a dice
tray ,a tray used to contain thrown dice, is sometimes used for gambling or board games.
Today game industry produces many different kinds of multimedia controllers that allow
player to manage game process and naturally interact with media: joysticks, key-boards, remote
controllers, VR helmets etc. This paper aims to show the new possibilities of using analog
random number generator, so-called gambling die used in non-gambling tabletop games.
Nowadays, all the digital tabletop games use digital random generator to simulate the die. We
suggest to use normal 6-side plastic die equipped with several sensors for state classification and
game control. Using of real model will make the game process more interactive and also can
decrease the eyestrain. It assumed to use different dice with different physical parameters for
every player to provide full compatibility with different dice manufacturers including custom-
made dice. Dice recognition techniques have been researched before by several authors most
solutions are based on using the camera and pattern recognition algorithm sand, according to
author’s knowledge, inertial sensors were not yet considered. From the practical point of view
using the camera imposes restrictions on the minimum size of die, area lighting and requires
additional action from user since the camera vision angle is quite limited and resolution
properties are limited too, so playable area is restricted by camera properties. In authors show
that different colors of dice can also affect on accuracy of detection; during experiments they
found that dice that are less contrast are less amenable to recognition by 2% comparing with
more contrast dice. From recognition point of view, method described in this article is more
beneficial since it guarantees100% recognition rate on flat surface. Our initial idea consist of
taking the attitude measurements using accelerometers and gyroscopes and send the result via
existing transmission media to a game device(mobile phone, TV, etc.). The size of modern
MEMS(Microelectromechanical systems) sensors allows top lace it in the die of any shape and
size. In this paper we propose to use IMU(Inertial Measurement Unit) that includes both types of
sensor and able to communicate with other devices. The most important problem in this case is
presented by bias of the die that will affect on game result during the long-term period. By
default, every die can be considered as loaded die due to its physical imperfection. Only the ideal
physical model of die with equal result probability can be considered to be totally unbiased, in
another case any die has some physical issues that provides higher probability for one of the
sides. Moreover, using of intentionally loaded die, which can be considered as cheating, is also
possible during the game process. To prevent cheating and equalize the results in general we
propose to use the algorithm that allows to generate fair results out of pseudo-randomly
generated sequence of numbers, meaning to turn loaded die into unloaded. Originally, the idea of
turning loaded die into unloaded one belongs to John von Neumann who is famous for research
in statistics and game theory .
But in the current research we used the methods described by Ari Jules et al. in[6] which
is also based on the work of von Neumann. These methods allow to generate a fair result out of
minimum three independent rolls. The only side effect of this method lies in the increasing
number of rolls that takes more time for a player to get the fair result. The method doesn’t take
much computational power and can be implemented in any modern device with CPU and data
memory. Another aspect discussed in the article is an upper surface detection. It can be done in
different ways but we present the method using roll and pitch values of the die. Roll and pitch
values are calculated based on accelerometer and gyroscope measurements. There are several
ways to implement described in. One of the problems was to detect the moment when the die is
finally stopped since there are situations possible when the die is balancing on one of the edges
and flips in a second. During this second accelerometer shows that the die is static but surface
detector cannot detect the face properly. For this purpose we included the countdown timer in our
implementation that waits pre-defined amount of seconds before calculating the upper surface.
1.1 Aim
A Dice Roller Android App that has a Button to roll a dice and updates the text on the screen
with the result of the roll.
We cannot carry a physical dice where ever we go so we have created an app called virtual dice
roller which we can install in our phones and use it whenever we need.
1.3 Motivation
Android Dice roller app is a simply virtual based app .In this app we have used the random
module for this, since we want to randomize the numbers we get from the dice. We are still
working on implementing some graphical interface
.
1.4 Applications
They are typically used for tabletop games, which includes a wide variety of games, as well as
for gambling. Examples of tabletop games that involve the use of dice include games like
backgammon, Boggle, and Yahtzee, where dice are a central component of the game.
1.5 Advantages
Tools:
Android development tool(ADT)
Android Studio
XML
Java Development tool kit (JDK)
SDK 7.0
UML
MS Office
MS paint
9 Patch resizer
Technologies:
Touch Screen Control
CHAPTER 2
LITERATURE SURVEY
A literature review is a written document that presents a logically argued case founded on
a comprehensive understanding of the current state of knowledge about a topic of study. This
literature review discusses about the work on dice rolling application.
CHAPTER 3
SYSTEM ANALYSIS
Analysis involves requirement determination and specification. It is basically establishing the
requirements for all system elements and then mapping these requirements to software forms. It
should address issues such as: -
Analysis encompasses requirements gathering at the system level with small amount of top-level
design. The data obtained from the requirement determination phase are documented in Software
Requirement Specification (SRS) document. During analysis, a great deal of relatively
unstructured data is collected through procedural manuals and through websites. The traditional
approach is to organize and convert the data through system flowcharts, which support future
developments of the system and simplify communication with users. But the system flowcharts
represent the physical system rather than the logical system. Hence, it makes it difficult to
distinguish between what happens and how it happens in the system. Because of this drawback it
is necessary to have something, which is analogous to the architect's blueprint as a starting point
for the design. It is the way of focus on the functions rather than physical implementation.
SDK ver : Android 5.0 Lollipop (API level 21) and higher
The current system has no proper solution for monitoring and management of Weather. There
exist separate solutions for separate problems like tracking location of user, geological issues of
user and network related issues. There is no proper solution for network related problems.
Nowadays, weather forecasting provides several benefits like cyclone detection in cities, high
tide formation in marine areas, identification for event planning , construction of effective
weather forecasts, other resource management like temperature humidity etc, better customer
relation. Wind speed detection is also one of the significant areas of research .
Limitations
In this game dice can be rolled in between minimum and maximum values added in the
dice. There will occour error if user gives unexpected input value.
Dungeons and Dragons, Yahtzee, and a huge number of other games all rely on throwing
dice--from the 4-sided pyramid shape to the familiar 6-sided cube and the monster 20-
sided variety. The dice are meant to introduce an element of chance to these games; we
expect that the outcomes of the rolls will be truly random.
We cannot use the application if the network condition in poor.
•Player shakes the die in order to start the game. This functionality was implemented to prevent
accidental start of the game.
•Player has thrown the die and the die is falling or rolling over the floor
.•The die has stopped rolling.
In our implementation every part is clearly identified by either IMU itself or an application and
both are behave according to corresponding scenarios.
Next chapters of article describe algorithms that were implemented to provide game
functionality, including: state classifier, upper surface detector, die unbiasing. These algorithms
were combined in one solution but the description is presented in different subsections.
Functional requirements
Digital dice can be used for more than just facilitating games – here a few tips for use in
the class. The custom dice can be used for ELA lessons:
Create dice with vowels and consonants. Have students select which dice shows the
vowels and which shows consonants.
Create dice containing nouns, verbs, and adjectives. Roll the dice and have students create
sentences using the given words.
Create dice containing sight words, CVC words, and other vocabulary building blocks
You can also use these dice in your math lessons, not just for quick mental math, but also
for multiplication. Use two 10-sided dice. Roll the dice and ask students to solve that
multiplication problem. Remember that once you’ve made an account, you can easily
save lessons and activities to your profile so you can reuse them later.
Coordinates can also be practiced using dice. Give students a handout with a coordinate
plane showing 1-6 on the x-axis and a-f on the y-axis. Create dice with 1-6 and a-f and
have students mark the coordinates given by the dice. As a variant, you can mark off
coordinates in the classroom and have students move to that location in the classroom!
Via the settings screen you have the option of standard dice or custom dice (for example,
showing words or letter groupings). Within the ‘standard’ option you are given a variety
of options, namely:
Non-functional requirements
Availability – System will be available all time. Whenever one can use it.
Maintainability –The system provides a better platform for tracking and monitoring the
cattle.
Reliability – The system is scalable as it provides the better and faster results.
Scalability – The system is scalable as it allows the cattle owner to select the particular
symptoms and get the result of it.
CHAPTER 4
System design is the process of defining the architecture, components, modules, interfaces, and
data for a system to satisfy the specified requirements. Here, the design functions and operations
are described in detail, including screen layouts, business rules, process diagrams and other
documentation. The output of this stage will describe the new system as a collection of modules
or subsystems. Having a design methodology enforces consistency in the work as it helps in
achieving the deadlines timely.
The design stage takes as its initial input the requirements identified in the approved
requirements document. For each requirement, a set of one or more design elements will be
produced that describe the desired software features in detail. They generally include functional
hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams,
pseudo code, and a complete entity relationship diagram with a full structure of the database.
Systems design implies a systematic approach to the design of a system. It may take a bottom-up
or top-down approach, but either way the process is systematic wherein it takes into account all
related variables of the system that needs to be created — from the architecture, to the required
hardware and software, right down to the data and how it travels and transforms throughout its
travel through the system. Systems design then overlaps with systems analysis, systems
engineering and systems architecture.
Design begins with requirements model. The team works to transform this model into four level
of design detail and they are,
• The data structure
• The system architecture
• The interface representation
• The component level detail
The data design transforms the information domain model created during analysis into the data
structure that is required for the implementation. The data objects and relationships defined in the
entity relationship diagram and detailed data content depicted provide the basis for the data
design activity. Part of data design may occur in conjunction with the design of software
architecture.
The importance of software design can be stated with a single word - Quality. Design provides
the representations of software that can be assessed for quality. Design is an iterative process
through which requirements are translated into a "blueprint" for constructing the software. The
design represented at a high level of abstraction - a level that can be directly traced to the specific
system objective and more detailed data, functional and behavioural requirements. There are
three characteristics that serve as a guide for the evaluation of a good design. Each of these
characteristics is actually a goal of the design process. They are:
• The design must implement all of the explicit requirements contained in the analysis
model and also accommodate the desired implicit requirements.
• The design must be readable and understandable for coding, testing and subsequently
support the software.
• The design should provide a complete picture for addressing the data, functional and
behavioural domains from an implementation perspective.
The Software design includes different design materials. The designs are Architectural, Work
flow, Use case, Activity, Sequence, Database, Form Design. These designs are used in software
development of a web-application and provides details of how the android - application should be
created.
The Project virtual dice roller will helps us to play any dice games where ever we want,There is
no need to carry a physical dice everywhere we go.
This is for a similar game but the player is rolling one dice and not 2. The object of this games is
to roll a 6 on the dice on the first roll. If you do not roll a 6, then to when you must roll the same
number you rolled on the first roll before you roll a 6 to win. Rolling a 6 after the first roll ends
the game
Step 2: Building a top-level widget to make the main window for our application.
Step 5: Constructing a label for image, adding a button and assigning functionality.
The design process involves developing several models of the system at different levels of
abstraction. As design is decomposed, errors and omissions in earlier stages are discovered. And
their feedbacks help in earlier design models to be improved. The various design activities are:
Architectural design: The sub-systems making up the systems and their relationships are
identified and documented.
Abstract Specification: For each sub-system an abstract specification of the services it
provides and the constraint under which it must be operate is produced.
Interface Design: For each sub-system, its interfaces with other sub-systems is designed
and documented. This interface specification must be unambiguous as it allows the sub-
system to be used without knowledge of the sub-system operation.
Component Design: Services are allocated to different components and the interfaces of
these components are designed.
Algorithm Design: The algorithms are used to provide services that are designed in
detail with corresponding specifications.
4.2.System Architecture:
way. Application allows to track the roll and pitch of die, track final result, analyse it and
generate unloaded result, save it to a file and show on the screen. Current version uses 6-
faced model of die but potentially can be used to represent die with N faces.
Creating the function
For this part of the project, I imported 2 libraries: statistics and rand int (from random).
The statistics library is not needed for this project, but I think it’s neat to use the library
to gather statistics on any rolling you decide to do.
from random import rand int
import statistics
Now we are ready to create our dice rolling function. For this function, there will be 2
required inputs: n and x.
n will be the number of sides for the dice you are rolling.
x will be the number of dice you are rolling.
# Define the dice rolling function using two inputs.
rolls = []
def roll_many(n, x):
for i in range(x):
roll = randint(1,n)
rolls.append(roll)
print(roll)
That’s it! Simple enough. Now you can use this function to obta in dice rolls.
# This cell will simulate rolling 2 six -sided dice.
rolls = []
roll_many(6,2)
This is an example of what should show up when you run it
CHAPTER 5
IMPLEMENTATION
Implementation is the carrying out, execution, or practice of a plan, a method, or any design for
doing something. It encompasses all the processes involved in getting new software or hardware
operating properly in its environment, including installation, configuration, running, testing, and
making necessary changes. The word deployment is sometimes used to mean the same thing.
Dice rolling applications are typically used for tabletop games, which includes a
wide variety of games, as well as for gambling. Examples of tabletop games that involve
the use of dice include games like backgammon, Boggle, and Yahtzee , where dice are a central
component of the game.
:•Hardware implementation: Two foam-rubber dice loaded with an IMU on different distances
from the center of die.
•Software implementation. Android phone with the application for the visualization of algorithm
data and automatic detection of states.
<ImageView
android:id="@+id/imageView"
android:layout_width="131dp"
android:layout_height="121dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/dice3d160" />
<TextView
android:id="@+id/dice_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dice Number : ? Spin it "
android:textSize="25sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView"
app:layout_constraintVertical_bias="0.157" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#0184FC"
android:textSize="25sp"
android:textStyle="italic|bold"
android:text="Click on the Dice to Spin it"
app:layout_constraintBottom_toTopOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
package protocoderspoint.com.androiddicerollertutorial;
import android.media.AudioAttributes;
import android.media.SoundPool;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import protocoderspoint.PreLollipopSoundPool;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dice_no=(TextView)findViewById(R.id.dice_no);
InitSound();
Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(3000);
rotate.setInterpolator(new LinearInterpolator());
handler=new Handler(callback);
}
dice_picture.setImageResource(R.drawable.dice3d160);
soundplay= dice_sound.play(sound_id, 1.0f, 1.0f, 0, 0, 1.0f);
dice_picture.startAnimation(rotate);
timer.schedule(new Roll(), 3000);
}
}
}
void InitSound() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes aa = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
} else {
dice_sound= PreLollipopSoundPool.NewSoundPool();
}
sound_id=dice_sound.load(this,R.raw.shake_dice,1);
}
switch(rng.nextInt(6)+1) {
case 1:
rotate.cancel();
dice_no.setText("Dice Number : 1");
dice_picture.setImageResource(R.drawable.one);
break;
case 2:
rotate.cancel();
dice_no.setText("Dice Number : 2");
dice_picture.setImageResource(R.drawable.two);
break;
case 3:
rotate.cancel();
dice_no.setText("Dice Number : 3");
dice_picture.setImageResource(R.drawable.three);
break;
case 4:
rotate.cancel();
dice_no.setText("Dice Number : 4");
dice_picture.setImageResource(R.drawable.four);
break;
case 5:
rotate.cancel();
dice_no.setText("Dice Number : 5");
dice_picture.setImageResource(R.drawable.five);
break;
case 6:
rotate.cancel();
dice_no.setText("Dice Number : 6");
dice_picture.setImageResource(R.drawable.six);
break;
default:
}
rolling=false;
return true;
}
};
5.3 SNAPSHOTS:
CHAPTER 6
SYSTEM TESTING
Software testing is a process of executing a program or application with the intent of finding the
software bugs. It can also be stated as the process of validating and verifying that a software
program or application or product meets the business and technical requirements that guided its
design and development. The purpose of testing can be quality assurance, verification and
validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness
testing and reliability testing are two major areas of testing. Software testing is a trade-off
between budget, time and quality.
6.1. What is Verification and Validation?
Verification is the process to make sure the product satisfies the conditions imposed at the start of
the development phase. In other words, to make sure the product behaves the way we want it to.
Validation is the process to make sure the product satisfies the specified requirements at the end
of the development phase. In other words, to make sure the product is built as per customer
requirements.
6.2. Key Benefits of Testing
The key benefits of testing are
Reduced risk of failures (or incidents) once systems are transferred to live operation
Demonstrative proof that business requirements have been met
Assurance that the system will function appropriately with existing legacy systems
where required and will integrate with other systems as necessary
Assurance that the users for which the solution was designed are able to operate
productively
Acknowledging these benefits requires accepting the reality that testing costs money. Too much
testing could be risky, as it may delay product launch and allow a competitor to steal significant
market share. Unfocused, inefficient approaches to test management often result in poor return
on investment in testing. As a rule of thumb, sufficient testing is where the costs of testing can be
balanced against the potential costs of failures and over run. The risks of failure and business
benefit should be used to determine how much testing is performed.
identify any unexpected behaviour or bug. There are different stages for manual testing such as
unit testing, integration testing, system testing, and user acceptance testing.
Testers use test plans, test cases, or test scenarios to test a software to ensure the completeness of
testing. Manual testing also includes exploratory testing, as testers explore the software to
identify errors in it.
6.5.2. Automation Testing
Automation testing, which is also known as Test Automation, is when the tester writes scripts
and uses another software to test the product. This process involves automation of a manual
process. Automation Testing is used to re-run the test scenarios that were performed manually,
quickly, and repeatedly.
Apart from regression testing, automation testing is also used to test the application from load,
performance, and stress point of view. It increases the test coverage, improves accuracy, and
saves time and money in comparison to manual testing.
6.6. Test Cases
A test case is a set of conditions or variables under which a tester will determine whether a
system under test satisfies requirements or works correctly. The process of developing test cases
can also help find problems in the requirements or design of an application.
Writing good test cases involve the following steps —
• Test cases should be ‘atomic’; they should not overlap or complicate testing. Each test case
should be written such that only one thing should be tested at a time
• All positive and negative scenarios should be considered
• Each test case should be written in a language that is simple and easy to understand, using an
active voice, and using consistent and exact names
The characteristics of a good test case are —
• Accurate
• Economical
• Traceable
• Repeatable
• Reusable
Test Cases:
CONCLUSION
This virtual dice roller can have any number of faces and can generate
random numbers simulating a dice roll based on the number of faces
and dice. Examples of tabletop games that involve the use of dice include
games like backgammon, Boggle, and Yahtzee, where dice are a central
component of the game.
The outcome of the experiments shows that technology is quite reliable and
can be implemented in different applications on different platforms.
The application created during research can be used for
both scientific and entertainment purposes: for collecting
and processing roll statistics and representing game content.
The method described in is proved as working in real
conditions and also can be used in other applications.
REFERENCES
Android developer fundamentals course- concepts
Erik Hellman, “ANDROID PROGRAMMING- PUSHING THE LIMITS”,1st edition,
India Pvt ltd,2014.
Dawn Griffiths and David Griffiths, “HEAD FIRST ANDROID DEVELOPER”, 1st
edition, O’reillySPD publishers 2015.
W.-Y. Chen, P.-J. Lin, and D.-Y. Kuo, “Dice image recognition
scheme using pattern comparison technique,” in in Proc. Int. Symp.
Computer Consumer Control, Taichung, Taiwan, June 4-6 2012, pp.
128–131.
B. A. B. Correia, J. A. Silva, F. D. Carvalho, R. Guilherme,
F. C. Rodrigues, and A. M. de Silva Ferreira, “Automated
detection and classification of dice,” in Proc. SPIE 2423,
Machine Vision Applications in Industrial Inspection III, San
Jose, CA, Mar. 27 1995, pp. 196–202. [Online]. Available:
http://dx.doi.org/10.1117/12.205506
I. Lapanja, M. Mraz, and N. Zimic, “Computer vision based reliability
control for electromechanical dice gambling machine,” in Proc. IEEE
Int. Conf. Industrial Tech., Goa, India, Jan 19-22 2000, pp. 325–328.
G. S. Hsu, H. C. Peng, and S. M. Yeh, “Color and illumination
invariant dice recognition,” in 2012 IEEE Int. Conf. on Systems, Man,
and Cybernetics (SMC), Oct 2012, pp. 857–862.
J. von Neumann, “Various Techniques Used in Connection with
Random Digits,” J. Res. Nat. Bur. Stand., vol. 12, pp. 36–38, 1951.
A. Juels, M. Jakobsson, E. Shriver, and B. Hillyer, “How to turn
loaded dice into fair coins,” IEEE Trans. Inf. Theory, vol. 46, no. 3,
pp. 911–921, May 2000.
Y. Hao, Z. Xiong, W. Gao, and L. Li, “Study of strapdown inertial
navigation integration algorithms,” in Proc. Int. Conf. Intelligent
Mechatronics Automation, Chengdu, China, Aug 26-31 2004, pp.
751–754.
M. Xu, N. Fan, and Z. Wang, “Study on extended kalman filtering
for attitude estimation of micro flight vehicle,” in Proc. Int. Conf.
Measuring Tech. Mechatronics Automation, Shanghai, China, Jan 6-7
2011, pp. 457–460.
H. Rehbinder and X. He, “Nonlinear pitch and roll estimation for
walking robots,” in Proc. IEEE Int. Conf. Robotics Automation, San
Francisco, CA, Apr. 24-28 2000, pp. 2617–2622 vol.3.
C. C.-Y., “On the detection of vehicular crashes-system characteristics
and architecture,” Vehicular Technology, vol. 51, no. 1, pp. 180–193,
2002.
H. Tabata and K. Kushida, “Automatic accident reporting apparatus
for two-wheeled vehicles,” Apr. 29 2009, EP Patent 1,197,426.
J. Parviainen, J. Collin, T. Pihlstrom, J. Takala, K. Hanski, and ¨
Lumiaho, “Automatic crash detection for motor cycles,” in Proc.
Ann. Conf. IEEE Industrial Electronics Soc., Dallas, TX, Oct. 29 -
Nov. 1 2014, pp. 3409–3413.
Unity3d, what is unity? http://goo.gl/n3YtYX. [Online; accessed Dec.
2015].
R. Rosenkrantz, “Concentration of distributions at entropy maxima
(1979),” in E. T. Jaynes: Papers on Probability, Statistics and
Statistical Physics, ser. Synthese Library, R. Rosenkrantz, Ed.
Springer Netherlands, 1989, vol. 158, pp. 315–336. [Online].
Available: http://dx.doi.org/10.1007/978-94-009-6581-2 11
M. Kapitaniak, J. Strzalko, J. Grabski, and T. Kapitaniak, “The
three-dimensional dynamics of the die throw,” Chaos, vol. 22, no. 4,
2012. [Online]. Available: http://goo.gl/Cga9iZ
M. Small and C. K. Tse, “Feasible implementation of a prediction
algorithm for the game of roulette,” in Circuits and Systems, 2008.
APCCAS 2008. IEEE Asia Pacific Conference on, Nov 2008, pp.
1208–1211.
www.developers.android.com
https://www.scribd.com/presentation/410927469/Dice-Rolling
web&rct=j&url=https://cod ereview.stackexchange.com/questions/46328/dice-rolling-
simulator&ved=2ahUKEwiouf2juaPcAhUKto8KHca8BMYQFjAMegQIBBAB&usg=A
OvVaw3mHIjKVr4u8N0TWWY4KmgZ
https://www.google.co.in/url?sa=t&source=web&rct=j&url=%23&ved=2
ahUKEwiouf2juaPcAhUKto8KHca8BMYQwqsBMAF6BAgKEAU&usg=AOvVaw0VT
JzWxrN8ZFOD4xbU2nov
https://www.google.co.in/url?sa=t&source=web&rct=j&url=https://en.
m.wikipedia.org/wiki/Dice_control&ved=2ahUKEwjm-MzvuaPcAhVJtY8K
HT02CN0QFjABegQICxAG&usg=AOvVaw3jCIUTvZucMYWe_kI428z1
https://www.google.co.in/url?sa=t&source=web&rct=j&url=https://ygor
ganization.com/dicetheory/amp/&ved=2ahUKEwjm-MzvuaPcAhVJtY8KH
T02CN0QFjAVegQ