Total position where king can reach on a chessboard in exactly M moves | Set 2

09 Jun, 2022
Given the position of the king on an 8 X 8 chessboard, the task is to count the total number of squares that can be visited by the king in m moves. The position of the king is denoted using row and column number. Note: The square which is currently acquired by the king is already visited and will be counted in the result.Examples:  
Input: r = 4, c = 4, m = 1 Output: 9Input: r = 4, c = 4, m = 2 Output: 25 
Approach: A king can move one square in any direction (i.e horizontally, vertically and diagonally). So, in one move king can visit its adjacent squares.  
So, A square which is within m units distance (Considering 1 Square as 1 unit distance) from the king’s current position can be visited in m moves. For all squares of the chessboard, check if a particular square is at m unit distance away or less from King’s current position.
Increment count, if step 1 is true.Print the count
Increment count, if step 1 is true.
Print the count
Below is the implementation of the above approach:
C++
Java
C#
Python3
PHP
Javascript
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std; // Function to return the count of squares// that can be visited by king in m movesint countSquares(int r, int c, int m){     // To store the count of squares    int squares = 0;     // Check all squares of    // the chessboard    for (int i = 1; i <= 8; i++) {        for (int j = 1; j <= 8; j++) {             // Check if square (i, j) is            // at a distance <= m units            // from king's current position            if (max(abs(i - r), abs(j - c)) <= m)                squares++;        }    }     // Return count of squares    return squares;} // Driver codeint main(){    int r = 4, c = 4, m = 1;     cout << countSquares(r, c, m) << endl;     return 0;}
// Java implementation of the approachclass GFG {     // Function to return the count of squares    // that can be visited by king in m moves    static int countSquares(int r, int c, int m)    {        // To store the count of squares        int squares = 0;         // Check all squares of        // the chessboard        for (int i = 1; i <= 8; i++) {            for (int j = 1; j <= 8; j++) {                 // Check if square (i, j) is                // at a distance <= m units                // from king's current position                if (Math.max(Math.abs(i - r), Math.abs(j - c)) <= m)                    squares++;            }        }         // Return count of squares        return squares;    }     // Driver code    public static void main(String[] args)    {        int r = 4, c = 4, m = 1;        System.out.print(countSquares(r, c, m));    }}
// C# implementation of the approachusing System;class GFG {     // Function to return the count of squares    // that can be visited by king in m moves    static int countSquares(int r, int c, int m)    {        // To store the count of squares        int squares = 0;         // Check all squares of        // the chessboard        for (int i = 1; i <= 8; i++) {            for (int j = 1; j <= 8; j++) {                 // Check if square (i, j) is                // at a distance <= m units                // from king's current position                if (Math.Max(Math.Abs(i - r), Math.Abs(j - c)) <= m)                    squares++;            }        }         // Return count of squares        return squares;    }     // Driver code    public static void Main()    {        int r = 4, c = 4, m = 1;        Console.Write(countSquares(r, c, m));    }}
# Python implementation of the approach # Function to return the count of squares# that can be visited by king in m movesdef countSquares(r, c, m):     # To store the count of squares    squares = 0         # Check all squares of    # the chessboard    for i in range (1, 9):        for j in range (1, 9):                         # Check if square (i, j) is            # at a distance <= m units            # from king's current position            if(max(abs(i - r), abs(j - c)) <= m):                squares = squares + 1             # Return count of squares    return squares # Driver coder = 4c = 4m = 1 print(countSquares(r, c, m));
<?php// PHP implementation of the approach // Function to return the count of squares// that can be visited by king in m movesfunction countSquares($r, $c, $m){     // To store the count of squares    $squares = 0;     // Check all squares of    // the chessboard    for ($i = 1; $i <= 8; $i++)    {        for ($j = 1; $j <= 8; $j++)        {             // Check if square (i, j) is            // at a distance <= m units            // from king's current position            if (max(abs($i - $r),                    abs($j - $c)) <= $m)                $squares++;        }    }     // Return count of squares    return $squares;} // Driver code$r = 4;$c = 4;$m = 1; echo countSquares($r, $c, $m); // This code is contributed by Ryuga?>
<script> // Javascript implementation of the approach      // Function to return the count of squares    // that can be visited by king in m moves    function countSquares(r, c, m)    {        // To store the count of squares        let squares = 0;           // Check all squares of        // the chessboard        for (let i = 1; i <= 8; i++) {            for (let j = 1; j <= 8; j++) {                   // Check if square (i, j) is                // at a distance <= m units                // from king's current position                if (Math.max(Math.abs(i - r), Math.abs(j - c)) <= m)                    squares++;            }        }           // Return count of squares        return squares;    } // Driver Code          let r = 4, c = 4, m = 1;        document.write(countSquares(r, c, m));            </script>
9
 
Time Complexity: O(1), since the loop runs for a total of 64 times, that is constant time only.Auxiliary Space: O(1), since no extra space has been taken.
ankthon
sanjoy_62
singhh3010
subhamkumarm348
chessboard-problems
Constructive Algorithms
math
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.