1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   ショッピングモール


掲示板利用宣言

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

 私は

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

掲示板1

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

No.5516

オセロ(に似た)ゲーム
投稿者---TG(2006/03/03 13:00:06)


この掲示板は随分アクティブですね。:)
ところで、最後のBIGな(当方にとっては)課題です。
オセロゲームのようなもので、黒と白のコマを順にボードにいれていき、4つ縦横斜め、どれでもよいから先にとった方が勝ちというものです。

すでに2つのFunctionは配られたものなのでタッチできません。
役割は、一つFunctionを作って、その中で以下のTaskを完了させるというモジュールプログラミング(っていうんですよね?)です。


途中まで自分で作りました。自分のやろうとしていることがこれで合っているのか、ということをお伺いしたいのですが。。。。

−int updateBoard(int boardp[6][7], int player, int column);のFunctionプロトタイプを使用し、以下の条件を満たせ
−ボードは2DArrayである。横7つ、縦6つコマを入れる個所があります
−課題は、プレーヤー(2人いるわけですが、どっちでもよい)がコマを入れたとき(白のコマか黒のコマか二種類あります)、その入れようとしている個所が「0;=空」であるか(つまり、まだコマが入ってないので入れられる)、または「−1;すでにコマが入っている」かをプレイヤーに通知する。。。。


まず、この部分をやり遂げなければなりません。
この部分が完成後、あとは、どっちが勝ったかとかそういうこともコーディングするわけですが、まず上の部分だけ先に。。。

以下、わたしがちょっと試したコードです。
3つFunctionがあるうち、int updateBoard(int board[6][7], int player, int column)以外はクラスより配られたものです。

#include <stdio.h>

int updateBoard(int board[6][7], int player, int column)
{
//columnを通してプレイヤーがどこにコマを入れようとしているかがわかります
//そのあと、Functionはプレイヤーに、0;いれてもいいよ、または-1;
他のコマが入っているからだめだよ
//以上の二つのことだけを指示します。その指示する、つまりreturnを0か-1かでかえす、という機能をコーディングしたいのですが。。。。


      board[i][j] = column; 
      for(i=0; i<6; i++){
         for(j=0; j<7; j++){
           if (board[i][j] = 0)

             return 0;
             else
               return -1;
         }/*end inner for*/
      }/*end outer for*/


}/*end updatBoard*/

//これはクラスで配られたコードです
void displayBoard(int board[6][7])
{
        int i, j;

        for(i=0; i<6; i++) {
                for(j=0; j<7; j++)
                        printf("%d ", board[i][j]);
                printf("\n");
        }
        return;
}

//これもクラスで配られたコードです。変更できません。
int main(int argc, char* argv[])
{
        int board[6][7] = {0, 0, 0, 0, 0, 0, 0,
                           0, 0, 0, 0, 0, 0, 0,
                           0, 1, 0, 1, 0, 0, 0,
                           0, 1, 0, 2, 0, 0, 0,
                           2, 2, 2, 1, 1, 0, 0,
                           1, 2, 1, 2, 2, 1, 2};
        int player, column, return_state;
        int i, j;

        /** board initialization **\
        for(i=0; i<6; i++)
                for(j=0; j<7; j++)
                        board[i][j] = 0;
        **/

        printf("Select a player [1/2]: ");
        scanf("%d", &player);
        fflush(stdin);
        printf("Pick a column to drop [0,6]: ");
        scanf("%d", &column);
        fflush(stdin);

        printf("Board before updating\n");
        displayBoard(board);
        return_state = updateBoard(board, player, column);
        printf("\nBoard after updating\n");
        displayBoard(board);
        printf("\nwith return state as %d\n", return_state);
        getchar();
        return 0;
}
[/code]
[/blue]


アドバイスいただけますでしょうか?(たぶん、いろいろわからないことあるでしょうが。。質問ください)


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:オセロ(に似た)ゲーム 5518 kz3 2006/03/03 13:17:19
<子記事> Re:オセロ(に似た)ゲーム 5529 RAPT 2006/03/04 00:17:04


No.5518

Re:オセロ(に似た)ゲーム
投稿者---kz3(2006/03/03 13:17:19)


>この掲示板は随分アクティブですね。:)

掲示板利用宣言には書かれていませんが質問投稿の同時平行は考えものですよ。

私にはどこからどこまでが課題の丸投げに当たるのか分かりません。



この投稿にコメントする

削除パスワード

No.5529

Re:オセロ(に似た)ゲーム
投稿者---RAPT(2006/03/04 00:17:04)


で、何がききたいのですか?

> 自分のやろうとしていることがこれで合っているのか、
> ということをお伺いしたい
提示されたコードは未完成なので、コンパイルできないうえ、
「やれ」と指示されていることは書かれていますが、
「自分がやろうとしていること」が説明されていません。
→よって、仮に「丸投げ」と判断されたとしても致し方ありません。

ついでに・・・
> if (board[i][j] = 0)
代入文になっています。

どうせ書くのであれば、アルゴリズムを確認したいなら、
ちゃんと和文で構造を完結した方が良いです。
  if( board[i][j] が空の場合 )
とか。

それか、コンパイル可能なコードを書いて、自分でちゃんと
デバッグすれば良いだけのことかと思われます。

ついでに、
> 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
が遵守されていません。



この投稿にコメントする

削除パスワード

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




掲示板提供:Real Integrity