掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24811

オセロ
投稿者---NANA(2005/12/14 22:25:54)


#include<stdio.h>

/*----------------*
  Reversed function
  *----------------*/
int reverse(int a[][8], int c, int x, int y, int dx, int dy)
{
  static int I = 1;
  if(0 > x && y >= 8 && I > 0 ){
    printf("1\n");
    return c;
  }
  else if(a[x][y] == 0 && I > 0){
    printf("2\n");
    return 0;
  }
  else if(a[x][y] == c && I > 0){
    printf("3\n");
    return 0;
  }
  else if(a[x][y] == c && I < 0){
    printf("4\n");
    a[x][y] = -a[x][y];
    return c;
  }
  else if(a[x][y] != c && I < 0){
    printf("5\n");
    return 0;
  }
  else if(I > 0){
    printf("6\n");
    I = -I;
    reverse(a, c, x + dx, y + dy, dx, dy);
  }
}
/*----------------*
  Display of array 
  *---------------*/
void displaymap(int a[][8])
{
  int i, j;
  for(i = 0; i < 8; i++){
    for(j = 0; j < 8; j++){
      if(a[i][j] == -1)
    a[i][j] = 'X';
      else if(a[i][j] == 1)
    a[i][j] = 'O';
      else if(a[i][j] == 0)
    a[i][j] = '-';
    }
  }
  for(i = 0; i < 8; i++){
    for(j = 0; j < 8; j++){
      printf("%c",a[i][j]);
    }
    printf("\n");
  }
}

int main()
{
  int i, j;
  int x = 4, y = 2, c = 1, dx, dy;
  
  /*------------------------*
    The array is initialized 
    *------------------------*/
  int a[8][8] = {{0,0,0,0,0,0,0,0},
         {0,0,0,0,0,0,0,0},
         {0,0,0,0,0,0,0,0},
         {0,0,0,1,-1,0,0,0},
         {0,0,0,-1,1,0,0,0},
         {0,0,0,0,0,0,0,0},
         {0,0,0,0,0,0,0,0},
         {0,0,0,0,0,0,0,0}};
  displaymap(a);
  a[x][y] = c;
  for(i = -1; i < 2; i++){
    for(j = -1; j < 2; j++){
      dx = i;
      dy = j;
      //printf("pattern = %d %d\n", dx, dy);
      reverse(a, c, x, y, dx, dy);
    }
  }
  printf("\n\n");
  displaymap(a);
  return 0;
}




ox
xo

o
oo
xo
としたいんですけど、

ox
oxo

になっちゃうんですよね。
どこがおかしいんでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> オセロ ↑間違えました 24812 NANA 2005/12/14 22:27:06


No.24812

オセロ ↑間違えました
投稿者---NANA(2005/12/14 22:27:06)


ox
xo
を
 o
oo
xo
としたいんですけど、

 ox
oxo

になっちゃうんですよね。
どこがおかしいんでしょうか?



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧