$30
• Topic(A) It is required to provide different types of problem solving methods and solve a travel agent as search problem.
• Topic (B) It is required to introduce the term of gamification and implement a game.
Topic 1 – search problem
1- Read carefully the given program(s) specifications.
2- Write a document that contains the following parts :
a. Introduction (what is problem solving methods (PSMs))
b. Background (different PSMs techniques)
c. Travel agent as a search problem
i. System component (your system)
ii. Test cases (output of your system)
d. Reference
e. Appendix contains the source code of your program
3- Create one zip file with your document (in pdf format) and code directory
System Description:
It is difficult to plan a travel from one city to another city when you are required to use more than one flight, you have to select and arrange the departure and arrival time for every flight in order to minimize the time between each flight and the next so that the total travel time is minimum. The project aims to solve this problem by creating a useful tool to solve the flights search problem, using A* search algorithms.
In other words, you are required to write a program that finds the best flights to reach one city from another city. Given a start city, end city and travel day the system will determine the best way to go from one city to another that minimizes the time. The result will be the travel plan that is a complete list of flights that a user must use between a series of cities to get from a starting city to a destination city.
System Components:
This program consists of a Planner Engine which is responsible for:
• Taking the query entered by the user.
• Apply the planning algorithm using A* search algorithm to get the best path.
• Send the results (travel plan with time needed to reach the destination city) back to the user
Project Knowledge
The project contains some knowledge about:
• The cities and the different flights between them.
• Cities: a list of cities included in the system and their positions (in longitude/latitude form), the positions can be used in the heuristic function to calculate the distance between any two cities in order to calculate the expected time to reach one city from another city.
• Flights: A single flight has a departure time, an arrival time, a flight number, and one or more days that it flies on, you can represent this as:
departure / arrival / flight_number / list_of_days
for example:
9:40 / 12:10 / nw600 / [mon, tue, wed, thu, fri]
• Flights timetable: We’ll call all the flights between two cities a timetable. A timetable consists of a departure city, a destination city, and a list of flights, for example:
timetable(new_york, san_francisco, [12:10 / 5:00 / nw610 / [mon, tue, wed, thu, fri], 5:30 / 10:15 / united440 / [mon , tue, fri] ]).
• The above examples are just for illustration; the knowledge will be represented as predicate Project Input:
The user will enter the following query to
Print_solution(travel( “Cairo”,”San Fransicsco”,[“Tuesday”,”Wednesday”])) Project Output:
The program will print the result in textual format. For example,
Step 1: use flight 555 from Cairo to London. Departure time 4:30 and arrival time 6:30.
Step 2: use flight 980 from London to New York. Departure time 8:00 and arrival time 15:30. Step 3: use flight united440 from New York to, San Francisco. Departure time 16:30 and arrival time 19:15.
Topic 2 – Gamification
1- Read carefully the given program(s) specifications.
2- Write a document that contains the following parts :
a. Introduction (what is Gamification)
b. Background (How to apply game principles in non-game contexts)
c. Development of the described Game
i. System component
ii. Code listing
iii. Test cases (output of your game play)
d. Reference
e. Appendix contains the source code of your program 3- Develop program(s') as required in the System Description.
4- Create one zip file with your document (in pdf format) and code directory
• Game Overview
1
-1
0
1
0
1
0
1
-1
Modified Add the Numbers is a fun logic based game in which you control a box with a numerical value on it. You can move left, right, up, down but whatever value is on the box that you replace effects your value. Some will be positive, and some will be negative. A positive will add to your value, but a negative will subtract.
The aim of the game is to get the highest score, given maximum number of movements and minimal score could be achieved. Good Luck and get adding!
Board
• Given 3x3 board initially initialize randomly with range [-1, +1].
• Position of player initially down left the board (Green tile in the pic)
Rules of Play
• The player can only move within the board’s boarder by the move up, down, left or right and he will represented as maximum (Max) player in alpha-beta algorithm.
• The computer will generate a random integer value range between [-1, 1] that will be represented as the minimum (Min) player in alpha-beta algorithm.
• If the player at any corner of board, he can’t move to another corner. Example: If the left most corner he can’t move to the right one if he pressed left button.
• Given the previous figure of the game, if the green tile moves to the right it’s value will be the addition of the old green tile value [0] and the right tile value [1] which will means that the value of the new green tile will be [1] and the value of the old green tile will be replaced by a random value from [-1,1] let’s say computer chose it to be -1 then the next state would look be as represented in the next figure:
1
-1
0
1
0
1
-1
1
-1
• Project Components:
a. Game Engine
• The main process of this engine is initially take the user input and starts to update the game state using the implementation of the alpha-beta algorithm, to select the computer move, and show the board state and so on until the game ends and show the winning state if reached.
b. Project Knowledge
• Game state.
• The board state; positions of the tiles as well as the possible moves in the board.
• Project Input:
1- Minimal Level Goal, which choose the computer exceed this value. (for example 10)
2- Maximum number of moves, maximum movement to the computer to achieve the goal. (for example 20)
• Project Output:
1. For each step the current game state should be displayed, using textual representation or in GUI.
2. After the game is over, the final results are given including the input values, the current score, and if he wins or fail.