Senin, 30 Desember 2013

Program Puzzle

Posted by Unknown On 22.52 | No comments
Program Tugas Besar Dasprog Universitas Jenderal Soedirman Purwokerto, program menampilkan puzzel yang output atau nilai yang benarnya adalah angka yang urut dari angka yang dimasukan.

Screenshoot Program









Berikut Source Code dari program tersebut:

#include<stdio.h>
#include<stdlib.h>

 int kotak1[3][3];  
 int kotak2[3][3];
 int sort[9];  
 int a,b,c,d,e,f,navigasi,temp;
//================================================
void tujuan()
{
 a=0;
 for(f=-999;f<999;f++)
 {
  for(b=0;b<3;b++)
  {
   for(c=0;c<3;c++)
   {
    if(f==kotak1[b][c])
    {
     sort[a]=kotak1[b][c];
     a++;
    }
   }
  }
 }
 a=0;
 for(b=0;b<3;b++)
 {
  for(c=0;c<3;c++)
  {
   kotak2[b][c]=sort[a];
   a++;
  }
 }
}
//================================================
void input()
{
 while(f!=1)
 {
  f=0;
  a=0;
  for(b=0;b<3;b++)
  {
   for(c=0;c<3;c++)
   {
    printf("\nMasukan elemen [%d][%d] = ",b,c);
    scanf("%d", &kotak1[b][c]);
    a++;
   }
  }
  for(b=0;b<3;b++)
  {
   for(c=0;c<3;c++)
   {
    if(kotak1[b][c]==0)
    {f++;}
   }
  }
  if(f!=1)
  {printf("\n7anda harus memasukan angka 0 sebanyak 1 kali..!!\n");}
 }
}
//================================================
void banding()
{
 e=0;
 for(b=0;b<3;b++)
 {
  for(c=0;c<3;c++)
  {
   if(kotak1[b][c]==kotak2[b][c])
   {e++;} //banyak nilai cocok
  }
 }
}
//================================================
void tukar()
{
 for(b=0;b<3;b++)
 {
  for(c=0;c<3;c++)
  {
   if(kotak1[b][c]==0)
   {
    if(b==0&&c==0&&navigasi==1)
    {
     temp=kotak1[0][0];                        
     kotak1[0][0]=kotak1[0][1];
     kotak1[0][1]=temp;
    }
    if(b==0&&c==0&&navigasi==4)
    {
     temp=kotak1[0][0];                        
     kotak1[0][0]=kotak1[1][0];
     kotak1[1][0]=temp;
    }
    //=============================
    if(b==0&&c==1&&navigasi==2)
    {
     temp=kotak1[0][1];                        
     kotak1[0][1]=kotak1[0][0];
     kotak1[0][0]=temp;
    }
    if(b==0&&c==1&&navigasi==1)
    {
     temp=kotak1[0][1];                        
     kotak1[0][1]=kotak1[0][2];
     kotak1[0][2]=temp;
    }
    if(b==0&&c==1&&navigasi==4)
    {
     temp=kotak1[0][1];                        
     kotak1[0][1]=kotak1[1][1];
     kotak1[1][1]=temp;
    }
    //=============================
    if(b==0&&c==2&&navigasi==2)
    {
     temp=kotak1[0][2];                        
     kotak1[0][2]=kotak1[0][1];
     kotak1[0][1]=temp;
    }
    if(b==0&&c==2&&navigasi==4)
    {
     temp=kotak1[0][2];                        
     kotak1[0][2]=kotak1[1][2];
     kotak1[1][2]=temp;
    }
    //=============================
    if(b==1&&c==0&&navigasi==3)
    {
     temp=kotak1[1][0];                        
     kotak1[1][0]=kotak1[0][0];
     kotak1[0][0]=temp;
    }
    if(b==1&&c==0&&navigasi==1)
    {
     temp=kotak1[1][0];                        
     kotak1[1][0]=kotak1[1][1];
     kotak1[1][1]=temp;
    }
    if(b==1&&c==0&&navigasi==4)
    {
     temp=kotak1[1][0];                        
     kotak1[1][0]=kotak1[2][0];
     kotak1[2][0]=temp;
    }
    //=============================
    if(b==1&&c==1&&navigasi==3)
    {
     temp=kotak1[1][1];                        
     kotak1[1][1]=kotak1[0][1];
     kotak1[0][1]=temp;
    }
    if(b==1&&c==1&&navigasi==4)
    {
     temp=kotak1[1][1];                        
     kotak1[1][1]=kotak1[2][1];
     kotak1[2][1]=temp;
    }
    if(b==1&&c==1&&navigasi==2)
    {
     temp=kotak1[1][1];                        
     kotak1[1][1]=kotak1[1][0];
     kotak1[1][0]=temp;
    }
    if(b==1&&c==1&&navigasi==1)
    {
     temp=kotak1[1][1];                        
     kotak1[1][1]=kotak1[1][2];
     kotak1[1][2]=temp;
    }
    //=============================
    if(b==1&&c==2&&navigasi==3)
    {
     temp=kotak1[1][2];                        
     kotak1[1][2]=kotak1[0][2];
     kotak1[0][2]=temp;
    }
    if(b==1&&c==2&&navigasi==2)
    {
     temp=kotak1[1][2];                        
     kotak1[1][2]=kotak1[1][1];
     kotak1[1][1]=temp;
    }
    if(b==1&&c==2&&navigasi==4)
    {
     temp=kotak1[1][2];                        
     kotak1[1][2]=kotak1[2][2];
     kotak1[2][2]=temp;
    }
    //=============================
    if(b==2&&c==0&&navigasi==3)
    {
     temp=kotak1[2][0];                        
     kotak1[2][0]=kotak1[1][0];
     kotak1[1][0]=temp;
    }
    if(b==2&&c==0&&navigasi==1)
    {
     temp=kotak1[2][0];                        
     kotak1[2][0]=kotak1[2][1];
     kotak1[2][1]=temp;
    }
    //=============================
    if(b==2&&c==1&&navigasi==2)
    {
     temp=kotak1[2][1];                        
     kotak1[2][1]=kotak1[2][0];
     kotak1[2][0]=temp;
    }
    if(b==2&&c==1&&navigasi==3)
    {
     temp=kotak1[2][1];                        
     kotak1[2][1]=kotak1[1][1];
     kotak1[1][1]=temp;
    }
    if(b==2&&c==1&&navigasi==1)
    {
     temp=kotak1[2][1];                        
     kotak1[2][1]=kotak1[2][2];
     kotak1[2][2]=temp;
    }
    //=============================
    if(b==2&&c==2&&navigasi==3)
    {
     temp=kotak1[2][2];                        
     kotak1[2][2]=kotak1[1][2];
     kotak1[1][2]=temp;
    }
    if(b==2&&c==2&&navigasi==2)
    {
     temp=kotak1[2][2];                        
     kotak1[2][2]=kotak1[2][1];
     kotak1[2][1]=temp;
    }    
    b=2;
    c=2;
   }
  }
 }
}
//================================================
void tampil_posisi_sekarang()
{
 printf("Posisi Sekarang :\n\n");
 a=0;
 for(b=0;b<3;b++)
 {
  for(c=0;c<3;c++)
  {
   printf("%d      ",kotak1[b][c]);
   a++;
  }
  printf("\n");
 }
 printf("==================================================\n");
}
//================================================
void tampil_posisi_tujuan()
{
 printf("Posisi Tujuan :\n\n");
 a=0;
 for(b=0;b<3;b++)
 {
  for(c=0;c<3;c++)
  {
   printf("%d      ",kotak2[b][c]);
   a++;
  }
  printf("\n");
 }
 printf("==================================================\n");
}
//================================================
void tampil_keterangan()
{
 system("cls");
 printf("==================================================\n");
 printf("|        TUGAS BESAR DASAR PEMROGRAMAN           |\n");
 printf("|           TAHUN AKADEMIK 2013/2014             |\n");
 printf("==================================================\n");
 printf("Aturan:\n");
 printf("1. Nilai yang dimasukan ke kolom, bertipe integer.\n");
 printf("2. Salah satu nilai adalah 0.\n");
 printf("3. Navigasi untuk menjalankan nilai 0 :\n");
 printf("   1. Kanan\n");
 printf("   2. Kiri\n");
 printf("   3. Atas\n");
 printf("   4. Bawah\n");
 printf("==================================================\n");
}
//================================================
int main()
{
 tampil_keterangan();
 tampil_posisi_sekarang();
 input();
 tujuan();
 tampil_keterangan();
 tampil_posisi_sekarang();
 tampil_posisi_tujuan();
 while(e!=9)
 {
  printf("Navigasi : ");
  scanf("%d",&navigasi);
  tukar();
  banding();
  tampil_keterangan();
  tampil_posisi_sekarang();
  tampil_posisi_tujuan();
 }
 printf("\nHORE ANDA BERHASIL");
 printf("\n\n");
 system("pause");
 return(0);
}



0 komentar:

Posting Komentar

Blogger templates