15 puzzle problem program in c
#include <stdio.h>
void movenumbers();
void moveright();
void moveleft();
void moveup();
void movedown();
int checkforfinish();
void displaytable();
int table[4][4];
void movenumbers(){
char key;
int s;
while(key!='e'){
printf("\n----MENU----\nfor moveup enter 'u'\nfor movedown enter 'd'\nfor moveleft enter 'l'\nfor moveright enter 'r'\nTo exit enter 'e'\nTo checkforfinish enter 'c'\n");
printf("Enter your choice: ");
scanf("%s",&key);
switch(key){
case 'l':
moveleft();
displaytable();
break;
case 'r':
moveright();
displaytable();
break;
case 'u':
moveup();
displaytable();
break;
case 'd':
movedown();
displaytable();
break;
case 'c':
s=checkforfinish();
if(s==1){
printf("Game Completed Successfully!");
}
else{
printf("Continue with the moves");
movenumbers();
}
break;
case 'e':
printf("Exit!");
break;
}
}
}
void moveright(){
int i,j,temp;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(table[i][j]==0 && j!=0){
temp=table[i][j-1];
table[i][j-1]=0;
table[i][j]=temp;
}
}
}
}
void moveleft(){
int i,j,temp;
for(i=3;i>=0;i--){
for(j=3;j>=0;j--){
if(table[i][j]==0 && j!=3){
temp=table[i][j+1];
table[i][j+1]=0;
table[i][j]=temp;
}
}
}
}
void moveup(){
int i,j,temp;
for(i=3;i>=0;i--){
for(j=3;j>=0;j--){
if(table[i][j]==0 && i!=3){
temp=table[i+1][j];
table[i+1][j]=0;
table[i][j]=temp;
}
}
}
}
void movedown(){
int i,j,temp;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(table[i][j]==0 && i!=0){
temp=table[i-1][j];
table[i-1][j]=0;
table[i][j]=temp;
}
}
}
}
int checkforfinish(){
int i,j,result=0,temp=1;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(table[i][j]==temp){
temp++;
}
}
}
if(temp==16) result=1;
return result;
}
void displaytable(){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(table[i][j]==0){
printf("-\t");
}
else{
printf("%d\t",table[i][j]);
}
}
printf("\n");
}
}
int main(){
int i,j;
printf("Enter Values: \n");
for(i=0; i<4; i++){
for(j=0; j<4; j++){
scanf("%d",&table[i][j]);
}
}
displaytable();
movenumbers();
return 0;
}
Output -
Enter Values:
1 2 3 0
5 6 7 4
9 10 11 8
13 14 15 12
1 2 3 -
5 6 7 4
9 10 11 8
13 14 15 12
----MENU----
for moveup enter 'u'
for movedown enter 'd'
for moveleft enter 'l'
for moveright enter 'r'
To exit enter 'e'
To checkforfinish enter 'c'
Enter your choice: u
1 2 3 4
5 6 7 -
9 10 11 8
13 14 15 12
----MENU----
for moveup enter 'u'
for movedown enter 'd'
for moveleft enter 'l'
for moveright enter 'r'
To exit enter 'e'
To checkforfinish enter 'c'
Enter your choice: u
1 2 3 4
5 6 7 8
9 10 11 -
13 14 15 12
----MENU----
for moveup enter 'u'
for movedown enter 'd'
for moveleft enter 'l'
for moveright enter 'r'
To exit enter 'e'
To checkforfinish enter 'c'
Enter your choice: u
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 -
----MENU----
for moveup enter 'u'
for movedown enter 'd'
for moveleft enter 'l'
for moveright enter 'r'
To exit enter 'e'
To checkforfinish enter 'c'
Enter your choice: c
Game Completed Successfully!
----MENU----
for moveup enter 'u'
for movedown enter 'd'
for moveleft enter 'l'
for moveright enter 'r'
To exit enter 'e'
To checkforfinish enter 'c'
Enter your choice: e
Exit!More like this -

Post a Comment
If you have any doubts, please let me know