Académique Documents
Professionnel Documents
Culture Documents
Tumblerz is an educational game which is helpful for the player to increase his I.Q. level, concentration, patience, memory power and logical thinking abilities. This game is based on the water-jug problem which is a part of artificial intelligence studies. Tumblerz is the collection of three categories of games.
The names of the games corresponds with the features available in the games.
JUNGLE :
In jungle game, we have unlimited water supply as is present in jungles.Here, in this game we are given some unmarked tumblerz which are empty but we know their capacity, unlimited water and target for each given tumbler. Here with target we mean the amount of water which is to be filled in that tumbler. Our objective is to reach the target state.We have 40 levels for this game. Player will not be able to access next level before going through previous level.
RAIN :
In rain game, we have limited water supply as is present during rains.Here, in this game we are given some unmarked tumblerz which are fully or partially filled but we know their capacity and initial amount, limited water and target for each given tumbler. Here with target we mean the amount of water which is to be filled in that tumbler. Our objective is to reach the target state.We have 20 levels for this game. Player will not be able to access next level before going through previous level.
SPLIT: We can split the tumbler into half its original capacity with the help of lightning bolts.A tumbler can be split only once.Only one bolt is available in 1-10 levels and two bolts in 11-20 levels.
DESERT :
In desert game, we have limited water supply as is present in deserts.Here, in this game we are given some unmarked tumblerz which are fully or partially filled but we know their capacity and initial amount, limited water and target for each given tumbler. Here with target we mean the amount of water which is to be filled in that tumbler. Our objective is to reach the target state.We have 40 levels for this game. Player will not be able to access next level before going through previous level.
Features : 1. POUR
The project also show solution to the given puzzle by two ways: 1. 2. OPTIMAL SOLUTION SEARCH SOLUTION
OPTIMAL SOLUTION:
Optimal solution shows the shortest path from the initial state to the final state.
SEARCH SOLUTION:
Search solution shows the path from initial state to the final state using a search algorithm. The solution may or may not be the shortest solution.
APPLICATUION AREAS: Mental I.Q evaluation For exercising the brain Entertainment In teaching artificial intelligence.
SYSTEM SPECIFICATION
1.
Hardware Requirements : : : : : : : Intel Pentium IV 2.4 GHZ or above 500 MHZ 32 bits 256MB of RAM or more 40 GB or higher SVGA COLOR 108 keys : button mouse
Processor Clock speed System bus RAM HDD Monitor Keyboard Mouse
2.
Technology Tools
NETBEANS IDE NetBeans IDE is an open-source integrated development environment. NetBeans IDE supports development of all Java application types (Java SE (including JavaFX), Java ME, web, EJB and mobile applications) out of the box. Modularity: All the functions of the IDE are provided by modules. Each module provides a well defined function, such as support for the Java language, editing, or support for the CVS versioning system, and SVN. NetBeans contains all the modules needed for Java development in a single download, allowing the user to start working immediately. Modules also allow NetBeans
to be extended. New features, such as support for other programming languages, can be added by installing additional modules. For instance, Sun Studio, Sun Java Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems are all based on the NetBeans IDE. License: From July 2006 through 2007, NetBeans IDE was licensed under Sun's Common Development and Distribution License (CDDL), a license based on the Mozilla Public License (MPL). In October 2007, Sun announced that NetBeans would henceforth be offered under a dual license of the CDDL and the GPL version 2 licenses, with the GPL linking exception for GNU Classpath. Java SE Application A Java SE application is an application written to the Java Platform, Standard Edition (Java SE). The same unmodified Java SE applications can be run on almost any computer, whether that computer uses the Microsoft Windows, Solaris, Linux, or MacOS X operating systems. The key to this application portability is the Java Runtime Environment, which is available free of charge for most operating systems, including all of the ones mentioned above. In addition to being a platform for multi-platform desktop applications, the Java SE platform is the basis for other technologies such as Java Platform, Enterprise Edition. You might find yourself writing Java code that provides back-end logic for web and enterprise applications as well. FEATURES: Desktop Application Development Java SE is the programming platform for developers who create browser applets, command line tools, and graphical user interfaces targeted for desktop users. Applications written in Java run on Windows, Mac OS, Linux, Solaris and other operating systems.
Annotation Processors
Attach annotation processors to a project and use them while working on your code. The NetBeans IDE supports third-party annotation processors, such as JPA 2.0 from JEE or custom ones. Javadoc Integration Use the Auto Comment action to generate Javadoc code for your methods. Use the Javadoc Analyzer plugin to check and fix existing Javadoc comments. Java Call Hierarchy The Java Call Hierarchy view displays a tree representing the hierarchy of callers and callees of the selected method in a project. Compile on Save The Build action has been replaced by the Compile on Save feature: Now the IDE builds your project automatically and the run/debug/test actions are immediately available after saving a file. If you save changes to a method while the debugger is already running the running application will be automatically reloaded. Compilation errors inside a method don't stop you from running your program: The debugger will halt when the program runs into the method in question.
JUnit 3 and 4 are integrated into the IDE. You can quickly create, run and re-run unit tests and view the test results in the IDE. The editor provides keyboard shortcuts for fast navigation between the test and the class it is testing.
Non-Proprietary Project Build System The NetBeans IDE stores your project information in open, extendible, non-proprietary formats such as Apache Ant and Maven scripts. Integrated Tools The Java Bean support makes Bean property generation and BeanInfo editing easier. The NetBeans GUI Builder assists you with Java Swing development, from the prototype to the final graphical user interface. The well-integrated NetBeans debugger and the NetBeans profiler help you to write rock-solid Java desktop software.
CONCEPT FORMULATION
When I joined my training our guide asked us to make a java program to solve a water jug problem,then I thought to make a program to solve it visually.from there I got the concept for my project.
PROBLEM UNDERSTANDING
In water jug problems, we are given some tumblers whose capacities are known.We have to fill a fix amount of water in any particular tumbler.
FEASIBILITY STUDY
Feasibility study is both necessary and prudent to evaluate the feasibility of the project at the earliest possible time. It involves preliminary investigation of the project.
The different types of feasibility are: 1. Technical feasibility 2. Operational feasibility 3. Economical feasibility
Technical feasibility
Technical Feasibility deals with the hardware as well as software requirements. We have to find out whether the necessary technology, the proposed equipments have the capacity to hold the data, which is used in the project, should be checked to carryout this technical feasibility.
Technical feasibility in this project: The main applet can be made using NetBeans IDE or Eclipse IDE. The webpage can be made using Adobe DreamWeaver.
Operational feasibility
This feasibility test asks if the system will work when it is developed.
The proposed system offers greater level of user-friendliness. The proposed system produces best results and gives high performance. It can be implemented easily .So this project is operationally feasible.
Economical feasibility
Economical Feasibility deals about the economical impact faced by the organization to implement a new system. The cost of conducting a full system, including software and hardware cost for the class of application being considered should be evaluated.
Economic Feasibility in this project: The cost to develop the project is feasible as the softwares required are available free of cost on the internet. There is no additional manpower requirement. There is no additional cost involved in maintaining the proposed system.
SYSTEM DESIGN
System Design is the most creative and challenging phase in the system life cycle.
Design is
the first step into the development phase for any engineered product or system. Design is a creative process. A good design is the key to effective system. System design is a solution how to approach the creation of a new system. System design transforms a logic representation of what is required to do into the physical specification. The specification is converted into physical reality during development.
SOFTWARE DESCRIPTION
This project is implemented using Java. Java goes back to 1991 when a group of sun engineers led by James Gosling , wanted to design a small computer language that could be used for consumer devices and named it as Green Project. Their idea was to develop a portable language that could generate intermediate code for virtual machines. This intermediate code then can be used on any machines that has the correct interpreter. Java is a programming language that lets us to do almost anything we can do with traditional programming language for distributed applications. It is platform in-dependent and having a lot of networking features included within it. A java program can run equally well on any architecture that has a java interpreter.
FEATURES OF JAVA
1) Encapsulation Data Encapsulation is one of the most sticking features of OOPs. Encapsulation is the wrapping up of data and function into single unit called class. The wrapped defines the behavior and protects the code and data from being arbitrarily accessed by the outside world and only those function which are wrapped in the class can access it. This type of insulation of data from direct access by the program is called data hiding.
2) Inheritance
Inheritance is the process by which objects a class can acquire the properties of objects of another class i.e. In OOPs the concept of inheritance provides idea of reusability providing the means of adding additional features to an existing class without modifying it. This is possible by deriving a new class from the existing on thus the newly created class will have the combined features of both the parent and the child classes.
3) Object Oriented
Almost everything in java is a clear, a method or an object. Only the most basic primitive operative and data types are at a sub-class level.
4) Data Abstraction
Data Abstraction is an act of representing essential features without including the background details and explanation.
5) Platform Independent
Java programs are compiled with a byte code format that can be read and run by interpreters on many platforms including Windows 95, Windows NT and later.
6) Multi-Thread
Java is inherently multi-threaded. A single java program can make many different things processing independently and continuously.
7) High Performance
Java can be compiled on the fly with a Just-in-time compiler (JIT) to code that rivals C++ in speed.
8) Safe
Java code can be executed in an environment that prohibits it from viruses, deleting or modifying files or otherwise performing data destroying and computer crashing operation.
9) Simple
Java has the bare bones functionally needed to implement its rich feature set.
2.2.2 Components
Java has several in-built components: Javac : Compiler for java programs that could generate byte codes Java : Interpreter to read and execute java byte codes. Javap : To disassemble and debug the java bytecodes. Javadoc: Document generator. Javah : To write and link native codes with java programs.
1. Unit Testing
Unit test comprises of a set tests performed by an individual program prior to the integration of the unit into large system. A program unit is usually the smallest free functioning part of the whole system. Module unit testing should be as exhaustive as possible to ensure that each representation handled by each module has been tested. All the units that makeup the system must be tested independently to ensure that they work as required. During unit testing some errors were raised and all of them were rectified and handled well. The result was quiet satisfactory and it worked well.
2. Integration Testing
Integration testing is a system technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested modules and build a program structure that has been dictated by design. Bottom-up integration consists of unit test followed by testing of the entire system.
All the modules were tested for their compatibility with other modules .The test were almost successful. All the modules coexisted very well, with almost no bugs. All the modules were encapsulated very well so as to not hamper the execution of other modules.
3. Validation Testing
After validation testing, software is completely assembled as a package, interfacing errors that have been uncovered and corrected and the final series of software test; the validation test begins. Steps taken during software design and testing can greatly improve the probability of successful integration in the larger system. The system was tested fully using variety of test cases and the outcome was satisfactory.
4. Recovery Testing
It is a system that forces the software to fail in a variety of ways and verifies that the recovery is properly performed. The test cases were chosen to fail the project and the project was able to make considerable recovery.
Black box testing is done to find out the following information as shown in below:
3. Performance error: There were some performance errors which were corrected and tested again.
After preparing test data, the system under study is tested using the test data. While testing the system using test data, errors are again uncovered and corrected by using above testing and corrections are also noted for future use. The bugs found were corrected and then tested again.
SNAPSHOTS
Jungle Levels
Jungles Level 1 The player can use the fill and empty buttons shown to fill and empty the tumblers.
The player can pour the water from one tumbler to another by clicking on the first tumbler and then on the next tumbler.
Rain levels
The player can split the tumbler into half its capacity by using the bolt button.
Try solution screen You can try any of the move by clicking on that particular move.
Screen while searching for the solution when using search solution option.
Screen after the target is achieved. You can either go to the next level or quit the game.