#include <stdio.h>
#include <stdlib.h>
void boardDefine( char board[ 8 ] [ 8 ] , int i, int j, int row, int column, int nextMove) ;
void boardDraw( ) ;
int main( )
{
char board[ 8 ] [ 8 ] ;
int i, j, row, column;
int nextMove;
printf ( "Please enter the position of the Knight on the board\n " ) ; scanf ( "%d\n %d" ,& row
,& column
) ; if ( row< 1 || row> 9 || column< 1 || column> 9 )
{
printf ( "You must enter a value greater than zero" ) ; }
boardDefine( board, i, j, row, column, nextMove) ;
boardDraw( board, i, j) ;
return 0 ;
}
void boardDefine( char board[ 8 ] [ 8 ] , int i, int j, int row, int column, int nextMove)
{
nextMove= 1 ;
for ( j= 0 ; j< 8 ; j++ )
{
for ( i= 0 ; i< 8 ; i++ )
{
//printf("%d, %d\n", i,j);
if ( i== row&& j== column)
{
board[ i] [ j] = 'K' ; //Places the Knight to the position that entered by user
}
/*From here we are basicly showing where the Knight can move from its current position
for this we first check that if both row and column values are inside the board or not
after the L move if not then we put the nextMove value at that adress of the array
*/
else if ( row- 1 <= 8 && row- 1 >= 0 && column+ 2 <= 8 && column+ 2 >= 0 && i== row- 1 && j== column+ 2 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row- 1 <= 8 && row- 1 >= 0 && column- 2 <= 8 && column- 2 >= 0 && i== row- 1 && j== column- 2 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row+ 1 <= 8 && row+ 1 >= 0 && column+ 2 <= 8 && column+ 2 >= 0 && i== row+ 1 && j== column+ 2 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row+ 1 <= 8 && row+ 1 >= 0 && column- 2 <= 8 && column- 2 >= 0 && i== row+ 1 && j== column- 2 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row- 2 <= 8 && row- 2 >= 0 && column+ 1 <= 8 && column+ 1 >= 0 && i== row- 2 && j== column+ 1 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row- 2 <= 8 && row- 2 >= 0 && column- 1 <= 8 && column- 1 >= 0 && i== row- 2 && j== column- 1 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row+ 2 <= 8 && row+ 2 >= 0 && column- 1 <= 8 && column- 1 >= 0 && i== row+ 2 && j== column- 1 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else if ( row+ 2 <= 8 && row+ 2 >= 0 && column+ 1 <= 8 && column+ 1 >= 0 && i== row+ 2 && j== column+ 1 )
{
board[ i] [ j] = nextMove+ '0' ;
nextMove++;
}
else
{
board[ i] [ j] = 'X' ; //Places X to the places where Knight cant move.
}
}
// printf("\n");
}
}
//Then we use this function to print
void boardDraw( char board[ 8 ] [ 8 ] , int i, int j)
{
for ( j= 0 ; j< 8 ; j++ )
{
for ( i= 0 ; i< 8 ; i++ )
{
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgYm9hcmREZWZpbmUoY2hhciBib2FyZFs4XVs4XSxpbnQgaSwgaW50IGosaW50IHJvdyxpbnQgY29sdW1uLGludCBuZXh0TW92ZSk7CnZvaWQgYm9hcmREcmF3KCk7CgppbnQgbWFpbigpCgp7CiAgICBjaGFyIGJvYXJkWzhdWzhdOwogICAgaW50IGksaixyb3csY29sdW1uOwogICAgaW50IG5leHRNb3ZlOwoKICAgIHByaW50ZigiUGxlYXNlIGVudGVyIHRoZSBwb3NpdGlvbiBvZiB0aGUgS25pZ2h0IG9uIHRoZSBib2FyZFxuIik7CiAgICBzY2FuZigiJWRcbiVkIiwmcm93LCZjb2x1bW4pOwogICAgaWYocm93PDF8fHJvdz45fHxjb2x1bW48MXx8Y29sdW1uPjkpCiAgICB7CiAgICAgICAgcHJpbnRmKCJZb3UgbXVzdCBlbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiB6ZXJvIik7CiAgICB9CgogICAgYm9hcmREZWZpbmUoYm9hcmQsaSxqLHJvdyxjb2x1bW4sbmV4dE1vdmUpOwogICBib2FyZERyYXcoYm9hcmQsaSxqKTsKCgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgYm9hcmREZWZpbmUoY2hhciBib2FyZFs4XVs4XSxpbnQgaSwgaW50IGosaW50IHJvdyxpbnQgY29sdW1uLGludCBuZXh0TW92ZSkKewogICAgbmV4dE1vdmU9MTsKICAgIGZvciggaj0wO2o8ODtqKyspCiAgICB7CiAgICAgICAgICAgICBmb3IoaT0wO2k8ODtpKyspCiAgICAgICAgewoKCQkJLy9wcmludGYoIiVkLCAlZFxuIiwgaSxqKTsKCQkJCiAgICAgICAgICAgIGlmKGk9PXJvdyYmaj09Y29sdW1uKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBib2FyZFtpXVtqXT0nSyc7Ly9QbGFjZXMgdGhlIEtuaWdodCB0byB0aGUgcG9zaXRpb24gdGhhdCBlbnRlcmVkIGJ5IHVzZXIKICAgICAgICAgICAgfQogICAgICAgICAgICAvKkZyb20gaGVyZSB3ZSBhcmUgYmFzaWNseSBzaG93aW5nIHdoZXJlIHRoZSBLbmlnaHQgY2FuIG1vdmUgZnJvbSBpdHMgY3VycmVudCBwb3NpdGlvbgogICAgICAgICAgICBmb3IgdGhpcyB3ZSBmaXJzdCBjaGVjayB0aGF0IGlmIGJvdGggcm93IGFuZCBjb2x1bW4gdmFsdWVzIGFyZSBpbnNpZGUgdGhlIGJvYXJkIG9yIG5vdAogICAgICAgICAgICBhZnRlciB0aGUgTCBtb3ZlIGlmIG5vdCB0aGVuIHdlIHB1dCB0aGUgbmV4dE1vdmUgdmFsdWUgYXQgdGhhdCBhZHJlc3Mgb2YgdGhlIGFycmF5CiAgICAgICAgICAgICovCiAgICAgICAgICAgIGVsc2UgaWYocm93LTE8PTgmJnJvdy0xPj0wJiZjb2x1bW4rMjw9OCYmY29sdW1uKzI+PTAmJmk9PXJvdy0xJiZqPT1jb2x1bW4rMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYm9hcmRbaV1bal09bmV4dE1vdmUrJzAnOwogICAgICAgICAgICAgICAgbmV4dE1vdmUrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHJvdy0xPD04JiZyb3ctMT49MCYmY29sdW1uLTI8PTgmJmNvbHVtbi0yPj0wJiZpPT1yb3ctMSYmaj09Y29sdW1uLTIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJvYXJkW2ldW2pdPW5leHRNb3ZlKycwJzsKICAgICAgICAgICAgICAgIG5leHRNb3ZlKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihyb3crMTw9OCYmcm93KzE+PTAmJmNvbHVtbisyPD04JiZjb2x1bW4rMj49MCYmaT09cm93KzEmJmo9PWNvbHVtbisyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBib2FyZFtpXVtqXT1uZXh0TW92ZSsnMCc7CiAgICAgICAgICAgICAgICBuZXh0TW92ZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYocm93KzE8PTgmJnJvdysxPj0wJiZjb2x1bW4tMjw9OCYmY29sdW1uLTI+PTAmJmk9PXJvdysxJiZqPT1jb2x1bW4tMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYm9hcmRbaV1bal09bmV4dE1vdmUrJzAnOwogICAgICAgICAgICAgICAgbmV4dE1vdmUrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHJvdy0yPD04JiZyb3ctMj49MCYmY29sdW1uKzE8PTgmJmNvbHVtbisxPj0wJiZpPT1yb3ctMiYmaj09Y29sdW1uKzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJvYXJkW2ldW2pdPW5leHRNb3ZlKycwJzsKICAgICAgICAgICAgICAgIG5leHRNb3ZlKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihyb3ctMjw9OCYmcm93LTI+PTAmJmNvbHVtbi0xPD04JiZjb2x1bW4tMT49MCYmaT09cm93LTImJmo9PWNvbHVtbi0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBib2FyZFtpXVtqXT1uZXh0TW92ZSsnMCc7CiAgICAgICAgICAgICAgICBuZXh0TW92ZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYocm93KzI8PTgmJnJvdysyPj0wJiZjb2x1bW4tMTw9OCYmY29sdW1uLTE+PTAmJmk9PXJvdysyJiZqPT1jb2x1bW4tMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYm9hcmRbaV1bal09bmV4dE1vdmUrJzAnOwogICAgICAgICAgICAgICAgbmV4dE1vdmUrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHJvdysyPD04JiZyb3crMj49MCYmY29sdW1uKzE8PTgmJmNvbHVtbisxPj0wJiZpPT1yb3crMiYmaj09Y29sdW1uKzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGJvYXJkW2ldW2pdPW5leHRNb3ZlKycwJzsKICAgICAgICAgICAgICAgIG5leHRNb3ZlKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBib2FyZFtpXVtqXT0nWCc7Ly9QbGFjZXMgWCB0byB0aGUgcGxhY2VzIHdoZXJlIEtuaWdodCBjYW50IG1vdmUuCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIC8vICBwcmludGYoIlxuIik7CiAgICB9Cgp9CgovL1RoZW4gd2UgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcHJpbnQKdm9pZCBib2FyZERyYXcoY2hhciBib2FyZFs4XVs4XSxpbnQgaSwgaW50IGopCnsKICAgIGZvciggaj0wO2o8ODtqKyspCiAgICB7CiAgICAgICAgICAgICBmb3IoaT0wO2k8ODtpKyspCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCIlYyAiLGJvYXJkW2ldW2pdKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KCn0=