Advertisement
Guest User

Gioco del 15

a guest
Jan 22nd, 2014
752
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. main() {
  6. int m[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}; //matrice giĆ  riempita
  7. int i,j;
  8. int num; //valore di scambio con quello della matrice
  9. int mosse=0;
  10.  
  11.  
  12. printf("Questo programma compone il gioco del 15\n\n");
  13.  
  14. printf("Inserendo uno dei numeri adiacenti allo spazio, puoi mischiare la matrice!\n\n\n");
  15.  
  16.      //stampa a video
  17.     for(i=0;i<4;i++){
  18.      for(j=0;j<4;j++){
  19.      if(m[i][j]==0)
  20.      printf("    ");
  21.      else
  22.        printf(" %2d ",m[i][j]);
  23.      }
  24.        printf("\n\n");
  25.     }
  26.    
  27.  
  28.    do{
  29.    
  30.      printf("\nInserisci il numero (0 per terminare la mischia)\n");
  31.       scanf("%d",&num);
  32.      
  33.      for(i=0;i<4;i++){
  34.       for(j=0;j<4;j++){
  35.      
  36.        if(m[i][j]==num){
  37.      
  38.         if(m[i-1][j]==0 || m[i+1][j]==0 || m[i][j-1]==0 || m[i][j+1]==0) { //condizione che guarda i 4 numeri circostanti al numero digitato
  39.        
  40.           m[i][j]=0;
  41.            //algoritmo di scambio eventualmente da rivedere
  42.           if(m[i-1][j]==0)
  43.            m[i-1][j]=num;
  44.             else if(m[i+1][j]==0)
  45.              m[i+1][j]=num;
  46.               else if(m[i][j-1]==0)
  47.                m[i][j-1]=num;
  48.                 else if(m[i][j+1]==0)
  49.                  m[i][j+1]=num;
  50.                  
  51.         }
  52.        
  53.           //fine algoritmo scambio
  54.           system("cls");
  55.          
  56.           printf("Questo programma compone il gioco del 15\n\n");
  57.           printf("Inserendo uno dei numeri adiacenti allo spazio, puoi mischiare la matrice!\n\n\n");  
  58.      
  59.            for(i=0;i<4;i++){
  60.             for(j=0;j<4;j++){
  61.              if(m[i][j]==0)
  62.               printf("    ");
  63.              else
  64.               printf(" %2d ",m[i][j]);
  65.             }
  66.               printf("\n\n");
  67.            }
  68.        }
  69.       }
  70.      }
  71.      
  72.    }
  73.    while(num!=0);
  74.      
  75.    
  76. printf("Ora e' il momento di risolvere il puzzle!!\n\n");
  77.    
  78.      
  79.     do{
  80.    
  81.      printf("\nInserisci il numero da spostare (permi 0 quando hai finito)\n");
  82.       scanf("%d",&num);
  83.      
  84.      for(i=0;i<4;i++){
  85.       for(j=0;j<4;j++){
  86.      
  87.        if(m[i][j]==num){
  88.      
  89.         if(m[i-1][j]==0 || m[i+1][j]==0 || m[i][j-1]==0 || m[i][j+1]==0) {
  90.  
  91.          m[i][j]=0;
  92.            //algoritmo di scambio eventualmente da rivedere
  93.           if(m[i-1][j]==0)
  94.            m[i-1][j]=num;
  95.             else if(m[i+1][j]==0)
  96.              m[i+1][j]=num;
  97.               else if(m[i][j-1]==0)
  98.                m[i][j-1]=num;
  99.                 else if(m[i][j+1]==0)
  100.                  m[i][j+1]=num;
  101.         }
  102.        
  103.           //fine algoritmo scambio
  104.           system("cls");
  105.          
  106.          
  107.           printf("Questo programma compone il gioco del 15\n\n");
  108.           printf("Inserendo uno dei numeri adiacenti allo spazio, puoi mischiare la matrice!\n\n\n");
  109.      
  110.           for(i=0;i<4;i++){
  111.            for(j=0;j<4;j++){
  112.             if(m[i][j]==0)
  113.              printf("    ");
  114.             else
  115.              printf(" %2d ",m[i][j]);
  116.            }
  117.              printf("\n\n");
  118.           }
  119.        }
  120.       }
  121.      }
  122.      mosse++;
  123.    }
  124.    while(num!=0);
  125.    
  126.    printf("Hai risolto il Gioco del 15 in %d mosse!\n\n", mosse-1);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement