jeudi 20 octobre 2016

switching turns in a 2d array C

I'm trying to print some characters in this order after the user enters some instructions:

       player=0 prints O   
       player=1 prints D
       player=2 prints O
       player=3 prints D
       player=4 prints O

    #include <stdio.h>
   char direction(void)
   {
    printf("Walking to the right\n");

   return getchar();
   }

   int getRow(char z)
   {
   int c;

   if (z == 'R') {
   printf("Row: ");
   scanf("%d", &c);
   }

   return c;
   }
   int getSteps(char z)
   {
   int f;

   if (z == 'R') {
   printf("Steps: ");
    scanf("%d", &f);
  }

  return f;
  }

  void print(char a[4][4])
   {
   int i, k;

   for (i = 0; i < 4; i++) {
    for (k = 0; k < 4; k++) {
        printf("%c ", a[i][k]);
    }
    printf("\n");
   }
   }

   int main(void)
   {
   char z;
   int c, f;
   int player;
   char a[4][4] = {
    { '*', '*', '*', '*' },
    { '*', '*', '*', '*' },
    { '*', '*', '*', '*' },
    { '*', '*', '*', '*' }
    };

  for (player=0;player<5;player++) {
    z = direction();
    c = getRow(z);
    f = getSteps(z);

  if (player == 0 || player == 2 || player == 4)
  {
  a[c][f] = 'O';
  }
  else   {

 a[c][f] = 'D';
            }
 print(a);
 }
 return 0;
 }

I think my if statements and my for loop are wrong because currently my code is only printing D's except for the last turn :/ any help will be appreciate it.

Aucun commentaire:

Enregistrer un commentaire