Java How To Program (Early Objects) (10th Edition)
10th Edition
ISBN: 9780133807806
Author: Paul J. Deitel, Harvey Deitel
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 7, Problem 17.3E
Program Plan Intro
- int[] horizontal, vertical: arrays containing the horizontal and vertical displacement values for each of the knight's moves respectively.
- int[][] board: a 2-dimensional array representing the chessboard.
- int currentRow, currentColumn, moveNumber, minAccessibility, accessibility: int variables representing the current row position of the knight, current column position of the knight, current move number of the knight, minimum accessibility of all possible moves for the knight, and the number of possible moves from a given position, respectively.
The methods used in the program are as follows:
- run(): a public void method that initializes the knight's starting position and iterates through all possible moves until the end of the tour or no more valid moves are available
- getNextMove(int currentRow, int currentColumn): a private static method that determines the next best move for the knight based on accessibility and validity of the move
- isValidMove(int row, int column): a private static method that checks whether a given move is valid based on the chessboard's boundaries
- getAccessibility(int row, int column): a private static method that calculates the number of possible moves from a given position on the chessboard.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
17. A chessboard is an 8 x 8 grid. A knight can move up two squares plus one square to the left or right, or up
one plus two squares to the left or right. For a knight in the position shown, determine the number of paths to
the top of the board, moving upward at all times. Describe how you solved the problem. (A:
/2)(C:
14)
Part 2 only
The Philosophers' Dinner Problem
Five philosophers sit around a table and spend their lives dining and thinking. Each philosopher has a bowl of noodles and a fork to the left of your plate. To eat the noodles you need two forks and each philosopher you can only take the ones to your left and right. If any philosopher takes a fork and the other is busy, he will wait, fork in hand, until pick up the other fork, so you can start eating later. If two adjacent philosophers try to pick up the same fork at the same time, a race condition: they both compete to take the same fork, and one of them left without eating. If all the philosophers take the fork to their right at the same time, then everyone will be waiting forever, because someone must release the fork that is lack. No one will because everyone is in the same situation (hoping that someone put down their forks). Then the philosophers will starve. This lock mutual is called deadlock or deadlock. The problem is to find an algorithm that…
Chapter 7 Solutions
Java How To Program (Early Objects) (10th Edition)
Knowledge Booster
Similar questions
- q2 aarrow_forward(Perkovic, Problem 6.31a) Craps is a single player dice game, that proceeds as follows: 1. the player rolls 2 six-sided dice once 。 if the total is 7 or 11, the player wins o if the total is 2, 3 or 12, the player loses 。 otherwise, the game continues, ... see 2 ... 2. the player the continues to roll the dice repeatedly, until ... 。 the total is the same as the original total (from 1), in which case the player wins 。 the total is 7, in which case the player loses Write a function craps that simulates a single game of craps (may be many rolls) and returns 1 if the player wins and 0 otherwise. 1 >>> import random 2 >>> random.seed(0) 3 >>> craps () 4 5 0 >>> random.seed(1) 6 LO 7 1 8 >>> craps () >>> random.seed(2) 9 >>> craps () 10 0 11 12 >>> [ (i, random.seed(i), craps()) for i in range(20)] [(0, None, 0), (1, None, 1), (2, None, 0), (3, None, 1), (4, None, 0), (5, None, 1), (6, None, 0), (7, None, 1), (8, None, 0), (9, None, 0), (10, None, 1), (11, None, 1), (12, None, 1), (13,…arrow_forwarduse pythonarrow_forward
- 4. The Area of the Target: To decide on prizes for the archery contest, you decided to use the areas of the center and rings. You decided that rings with smaller areas should be worth more points. But how much more? Complete the following investigation to help you decide. a. Find the sequence of the areas of the rings, including the center. (Be careful.) b. Write a recursive formula and an explicit formula for this sequence. C. Write the explicit formula in summation notation. Find the total area of the bull's eye if it had 9 rings around the bull's eye.arrow_forwardp.278, icon at Example 6 # 3. (Problem A1 from the 1989 William Lowell Putnam Mathematics Competition.) Consider the sequence of integers (in base 10): 101, 10101, 1010101, 101010101, 10101010101,.... Prove that 101 is the only number in this sequence that is prime. (Hint: Use place value to write each number in terms of the sum of its digits; for example, abcde = a10+ + b10³ + c10² + d10+ e. Then examine how the sum might be factored.)arrow_forwardPhyton The surface of the Earth is curved, and the distance between degrees of longitude varies with latitude. As a result, finding the distance between two points on the surface of the Earth is more complicated than simply using the Pythagorean theorem. Let (t1, g1) and (t2, g2) be the latitude and longitude of two points on the Earth’s surface. The distance between these points, following the surface of the Earth, in kilometers is: distance = 6371.01 × arccos(sin(t1) × sin(t2) + cos(t1) × cos(t2) × cos(g1 − g2)) The value 6371.01 in the previous equation wasn’t selected at random. It is the average radius of the Earth in kilometers. Create a program that allows the user to enter the latitude and longitude of two points on the Earth in degrees. Your program should display the distance between the points, following the surface of the earth, in kilometers. Hint: Python’s trigonometric functions operate in radians. As a result, you will need to convert the user’s input from degrees to…arrow_forward
- x4 + 2x3 – 7x2 + 3 = 0 a) One of the root of the equation lies in the range (1.0, 2.0). Find this root in 100 iterations using the bisection method. b) Draw the graph of the function between points (0, 2). Your code should include the following steps: • Write the steps of the bisection function (if, else...) and explain each step. (Explain each step in English or Turkish.) • Your code should calculate the root. • Graphic; Variables of x and y axes should be written, x and y axis names should be written, Series should be written to calculate x axis. Use the linspace() for the x series of the graph and section the range 0-2 into 100 pięces.arrow_forward(Paths in Graphs) Graph theory studies sets of vertices connect by edges. A very simple way to store the connectivity information about a graph is using what is called an adjacency malrir. In an adjacency matrix A, entry aij is 1 if nodes i and j are connected by an edge and is 0 otherwise. For example, the graph below has adjacency matrix [0 1 1 01 101 0 A = 1 10 1 o o 10 3 One interesting calculation that can casily be done using an adjacency matrix is that we can count the number of paths between two nodes in the graph by calculating powers of the matrix. For example, because 1 11] 1 2 1 1 1 1 3 0 1 10 1 we know that there are 0 paths of length 2 from node 3 to node 4 because the entry in row 3, column 4 of A is a 0. find num_paths Function: Input parameters: • a square adjacency matrix • a scalar representing the desired path length • two scalars representing the two nodes Output parameters: • a scalar representing the number of paths connecting the two desired nodes of the desired…arrow_forwardPlease explain how to write an expression for the function in the image. Thank you.arrow_forward
- Problem Statement: The mathematician Conway imagined a game, called game of life, whichconsidered cells that are susceptible to reproduce, disappear, or survive when they obey certainrules. These cells are represented by elements on a grid of squares, where a grid has an arbitrarysize. Thus, each cell (except those on the boundaries of the grid) is surrounded by eight squaresthat contain other cells. The rules are stated as follows:1. Survival: Each cell that has two or three adjacent cells survives until the next generation.2. Death: Each cell that has at least four adjacent cells disappears (or dies) by overpopulation.Also, each cell that has at most one adjacent cell dies by isolation.3. Birth: Each empty square (i.e., dead cell) that is adjacent to exactly three cells gives birthto a new cell for the next generation.It is worth noting that all births and deaths occur at the same time during a generation.Write a program that simulates this game and displays all successive…arrow_forwardProblem B. Musical Key ConversionThe chromatic scale is a 12-note scale in music in which all notes are evenly spaced: that is, the ratio of the frequency between any two consecutive notes is constant. The notes are typically labeled in the following sequence: A, A#, B, C, C#, D, D#, E, F, F#, G, G# After G#, the labels loop back and start over with A (one octave higher). To convert between musical keys, you can shift all notes in a piece of music a constant number of steps along the scale above. For example, the sequence of notes E, E, F, G, G, F, E, D, C, C, D, E, E, D, D can be converted to another musical key by shifting everything up three steps: E, E, F, G, G, F, E, D, C, C, D, E, E, D, D G, G, G#, A#, A#, G#, G, F, D#, D#, F, G, G, F, F Notice that G was converted to A#, since going three steps up required us to loop off of the top of the scale back to the bottom: G -> G# -> A -> A#. Technically we should note that this would be A# of the next octave up, but we’ll…arrow_forwardPythonarrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education