C言語関係掲示板

過去ログ

No.966 地雷原

[戻る] [ホームページ]
No.12455

地雷原
投稿者---美樹(2004/02/04 00:43:29)


こんにちわ。はじめまして。私はC言語を始めて3か月になりますが、今回、地雷原突破ゲームを作成せよという課題が出ました。どのようプログラムを組んだら良いのかわかりません(ソース)。教えてください。お願いいたします。
たくさんのご意見ありがとうございます。

画面情報・・・10x10のフィールドを表示
       プレーヤー、ゴールを表示

地雷について・・・二次元配列(10x10)を利用し、1列につき1つ         地雷を配置
         プレー中地雷を表示させない。
         ゲーム終了時に地雷をすべて表示。
プレーヤーについて・・・上下左右に1コマずつ入力により移動できる
ゲーム終了条件・・・ゴールにたどり着く。
          プレーヤーが地雷位地までたどり着く。
となっております。
本当に助けてください。宜しくお願いいたします。


実行画面

@・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・・
・・・・・・・・・G
移動方向を入力(8:上 2:下 4:左 6:右)
移動方向=

@・・・・・・・・・
・・・・・*・・・・
・・・・・・・・*・
・・*・・・・・・・
・・・・・・*・・・
・・・・・・・・*・
・*・・・・・・・・
・・・*・・・・・・
・・・・・・*・・・
・・・・・・・・・G
地雷を踏んだ画面
移動方向を入力(8:上 2:下 4:左 6:右)
移動方向=
地雷を踏みました。ゲームオーバー

と表示されるようにします。

No.12457

Re:地雷原
投稿者---あかま(2004/02/04 02:24:21)


非常に低姿勢に丸投げしてるあたりちょっとおもしろいのでヒントを。
でも
>たくさんのご意見ありがとうございます。
まだなにも言ってないよ?

>画面情報・・・10x10のフィールドを表示
int field[10][10];
な感じで宣言。
そしてプレイヤーを1、ゴールを2、地雷を3、何もないところは0とか勝手に数字を決める。

>プレーヤー、ゴールを表示
プレイヤーの初期位置に1を代入
ゴールの位置に2を代入

>地雷について・・・二次元配列(10x10)を利用し、1列につき1つ地雷を配置
rand関数で
field[i][rand()%10] = 3;
とかやってiをぐるぐる回して一列に1つずつ地雷を配置。

>プレーヤーについて・・・上下左右に1コマずつ入力により移動できる
getcか何かで入力する。

>移動方向を入力(8:上 2:下 4:左 6:右)
8が入力されたら、プレイヤーが上に行くわけだからもしfield[2][3]にプレイヤーがいたなら、
field[2][3]=0;
field[1][3]=1;
みたいな感じでプレイヤーの移動。

フィールドの表示は2重ループでそれぞれの列と行を表示。field[i][j]に0か3が入っていれば「・」、1が入っていれば「@」、2なら「G」みたいな条件分け。

>ゲーム終了条件・・・ゴールにたどり着く。
で、移動先が2か3なら終了。地雷の表示。
今度はさっきのフィールド表示とちょっと変わって、3のときは「*」の出力。