Advertisement
GeeckoDev

dames chinoises

Dec 28th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.57 KB | None | 0 0
  1. // N=4
  2.  
  3. void creeLigne(int **tablier, int y, int xstart, int xend, int val) {
  4.     int i;
  5.    
  6.     for (i=xstart; i<=xend; i++) {
  7.         tablier[y][i] = val;
  8.     }
  9. }
  10.  
  11. void creeTablier(int **tablier, int n) {
  12.     int largeur = 4*n + 1;
  13.     int i, j, y;
  14.    
  15.     for (i=0; i<largeur; i++) {
  16.         for (j=0; j<largeur; j++) {
  17.             // Impossible de placer une pièce
  18.             tablier[i][j] = -1;
  19.         }
  20.     }
  21.    
  22.     // Creation de l'étoile
  23.     // On la construit ligne par ligne de haut en bas
  24.     y = 0;
  25.    
  26.     // Premier quart
  27.     for (i=0; i<n; y++, i++) {
  28.         // Orange
  29.         creeLigne(
  30.             tablier,
  31.             y,
  32.             largeur/2 + n - i,
  33.             largeur/2 + n,
  34.             1
  35.         );
  36.     }
  37.    
  38.     // Deuxième quart
  39.     for (i=0; i<n; y++, i++) {
  40.         // Vert
  41.         creeLigne(
  42.             tablier,
  43.             y,
  44.             largeur/2 - n,
  45.             largeur/2 - i - 1,
  46.             6
  47.         );
  48.         // Noir
  49.         creeLigne(
  50.             tablier,
  51.             y,
  52.             largeur/2 - i,
  53.             largeur/2 + n,
  54.             0
  55.         );
  56.         // Rouge
  57.         creeLigne(
  58.             tablier,
  59.             y,
  60.             largeur/2 + n + 1,
  61.             largeur/2 + 2*n - i,
  62.             2
  63.         );
  64.     }
  65.    
  66.     // Ligne du milieu
  67.     creeLigne(
  68.         tablier,
  69.         y++,
  70.         largeur/2 - n,
  71.         largeur/2 + n,
  72.         0
  73.     );
  74.    
  75.     // Troisième quart
  76.     for (i=0; i<n; y++, i++) {
  77.         // Gris
  78.         creeLigne(
  79.             tablier,
  80.             y,
  81.             largeur/2 - n - i - 1,
  82.             largeur/2 - n - 1,
  83.             5
  84.         );
  85.         // Noir
  86.         creeLigne(
  87.             tablier,
  88.             y,
  89.             largeur/2 - n,
  90.             largeur/2 + n - i - 1,
  91.             0
  92.         );
  93.         // Violet
  94.         creeLigne(
  95.             tablier,
  96.             y,
  97.             largeur/2 + n - i,
  98.             largeur/2 + n,
  99.             3
  100.         );
  101.     }
  102.    
  103.     // Quatrième quart
  104.     for (i=0; i<n; y++, i++) {
  105.         // Bleu
  106.         creeLigne(
  107.             tablier,
  108.             y,
  109.             largeur/2 - n,
  110.             largeur/2 - i - 1,
  111.             4
  112.         );
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement