質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

2回答

2126閲覧

この課題のソースコードを教えてください。

JAVA

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/01/07 01:51

  1. 次のクラスを作成しなさい(プロジェクト、パッケージは任意)

名前: Run3
□ public static void main(String[] args) にチェックを入れる事

  1. 次の仕様をみたすクラスを作成しなさい。

名前: FieldMap
□ public static void main(String[] args) にチェックを入れない
属性:
private String[][] field
→ String型で7*7の2次元配列

操作:

public void showMap()
→fieldに格納された文字列をコンソールに表示するメソッド
public void setField(int x, int y, String obj)
→fieldの任意の要素に決まった文字を代入する

  1. Run3のmainメソッド内で FieldMapをインスタンス化し、setFieldを使用してすべての要素に「*」を 代入した後、showmapを使用してコンソールに表示しなさい。

  2. setFieldの使用方法を工夫し、showmapを使用した後に表示されるマップが一番外側の要素だけ「■」、ほかすべての内側の要素が「*」となるようにしなさい。

  3. 次の仕様をみたすクラスを作成しなさい。

名前: FieldObject
□ public static void main(String[] args) にチェックを入れない
属性:
private String name
→ このオブジェクトの名前を示す文字列
private String shape
→ このオブジェクトの姿を示す文字列

※上記の属性にまんべんなく値が代入されるようコンストラクタを用意する事 操作:
public void setShape(String s)
→shapeにsで指定した文字列を代入する
public String getShape ()
→shapeに格納された文字列を取得する
public void setName(String n)
→nameにnで指定した文字列を代入する
public String getName ()
→nameに格納された文字列を取得する

  1. 次の仕様をみたすクラスを作成しなさい

名前: Player
□ public static void main(String[] args) にチェックを入れない
Playerは FieldObjectを継承
属性:
int hp
→ このプレーヤーのヒットポイントを示す整数
inr atk
→ このプレーヤーの攻撃力を示す整数

※上記の属性、および継承した属性にまんべんなく値が代入されるようコンストラクタを用意する事

(継承したものに関しては記載を省略している) 操作:
public void command()
→キーボードから入力を求め、
「A」ならattackメソッドを、
「E」ならescapeメソッドを、
「S」なら specialメソッドを、
それ以外の場合 nothing()メソッドを実行する
public void attack() public void escape()
public void special() public void nothing()
→それぞれのメソッド名に合った文字列が表示される

  1. 次の仕様をみたすクラスを作成しなさい

名前: Building
□ public static void main(String[] args) にチェックを入れない
Buildingは FieldObjectを継承
属性:
String intro
→ この建物の説明文

※上記の属性、および継承した属性にまんべんなく値が代入されるようコンストラクタを用意する事

(継承したものに関しては記載を省略している) 操作:
public void introduce()
→ introに格納された文字列をコンソールに表示する

  1. 次の仕様をみたすクラスを作成しなさい

名前: FieldMap2
□ public static void main(String[] args) にチェックを入れない
属性:
private FieldObject [][] field
→ FieldObject型で7*7の2次元配列

操作:

public void showMap()
→fieldの各要素に格納されたフィールドオブジェクトを元にコンソールにフィールドマップを表示するメソッド
public void setField(int x, int y, FieldObject obj)
→fieldの任意の要素に決まったフィールドオブジェクトを代入する

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
以下はRun3のメインメソッド内で実現しなさい。

  1. 次に示すインスタンスを作成しなさい。

・nameが「壁」、shapeは「■」のFieldObject
・nameが「草原」、shapeは「*」のFieldObject
・nameが「勇者」、shapeは「☆」、hpとatkはお好みに設定したPlayer
・nameが「城」、shapeは「◇」、立派なお城である旨のintroをもったBuilding
・nameが「町」、shapeは「△」、さびれた町である旨の introをもった Building
11. FieldMap2をインスタンス化し、setFieldを使って、次のようなマップを作成し、showMapで表示しなさい
・壁に囲まれた領域の中に城1、町1、勇者1がある。あまったマスはすべて草原
・城、町、勇者の位置はランダム、ただし壁と重ならない。
12. 次のことを実現しなさい
・キーボードから入力を求め
「W」なら勇者をFieldMap2のひとつ上へ、 「A」なら勇者をFieldMap2のひとつ左へ移動させる
「S」なら勇者をFieldMap2のひとつ右へ、「D」なら勇者をFieldMap2のひとつ下へ移動させる
・それ以外の入力が求められたら、再度キーボードから入力を求めさせる
・「E」が入力された場合、プログラムを終了する
・移動先が壁の場合は進ませない
・また、町もしくは城であった場合も同様に進ませないが、その施設の説明文を表示する
※移動が成功した場合は、移動後の状態のFieldMap2のshowMapを毎回表示する
13. 次のことを実現しなさい
・勇者の移動先が草原の場合、一定の確率で「敵が現れた!」とコンソールに表示し、commandメソッドを実行しなさい。
※いずれの行動をとった後でも戦闘を強制的に終了させ、次の移動が行えるようにすること

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

len_souko

2016/01/10 18:42

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答2

0

課題全部に回答することは出来ません。(他のQ&Aサイトでも同じだと思います。)

まず自力でやってみて、どうしても分からない一部を質問してください。

投稿2015/01/07 03:05

ryunix

総合スコア1656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

仕様は設計は少し納得出来ない場所がありましたが、仕様通りにつくりました。
とりあえずやりましたが公開するのは11までです。
それ以降を自分で作れないようでしたら、一から自分で作った方がいいと思います。

public class FieldMap {

private String[][] field = new String[7][7]; public void showMap(){ for(String[] fRow: this.field){ for(String f: fRow){ System.out.print(f); } System.out.println(); } } public void setField(int x, int y, String obj){ this.field[x][y] = obj; }

}

public class FieldMap2 {

private FieldObject [][] field = new FieldObject[7][7]; public void showMap(){ for(FieldObject[] fRow: this.field){ for(FieldObject f: fRow){ System.out.print(f.getShape()); } System.out.println(); } } public void setField(int x, int y, FieldObject obj) { this.field[x][y] = obj; }

}

public class FieldObject {

private String name; private String shape; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getShape() { return shape; } public void setShape(String shape) { this.shape = shape; }

}

import java.util.Scanner;

public class Player extends FieldObject{
int hp;
int atk;
public Player(String name, String shape, int hp, int atk){
super.setName(name);
super.setShape(shape);
this.hp = hp;
this.atk = atk;
}
public void command(){
Scanner sc = new Scanner(System.in);
String com = sc.next();
if(com.equals("A")){
attack();
}else if(com.equals("S")){
special();
}else if(com.equals("E")){
escape();
}else{
nothing();
}
sc.close();
}
public void attack(){
System.out.println("attack");
}
public void special(){
System.out.println("special");
}
public void escape(){
System.out.println("escape");
}
public void nothing(){
System.out.println("nothing");
}
}

public class Building extends FieldObject{

String intro; public Building(String name, String shape, String intro) { super.setName(name); super.setShape(shape); this.intro = intro; } public void introduce(){ System.out.println(intro); }

}

import java.util.Random;

public class Run3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
FieldMap2 map = new FieldMap2();
//mapを初期化
init(map);
map.showMap();
//ここから
}

public static void init(FieldMap2 map) { // FieldObjectの初期化 FieldObject wall = new FieldObject(); wall.setName("壁"); wall.setShape("■"); FieldObject green = new FieldObject(); green.setName("草原"); green.setShape("*"); Player braveMan = new Player("勇者", "☆", 10, 10); Building castle = new Building("城", "◇", "立派なお城である"); Building city = new Building("町", "△", "さびれた町である"); // 草をセット for (int i = 0; i < 7; i++) { for (int j = 0; j < 7; j++) { map.setField(i, j, green); } } // 周りだけ■をセット for (int i = 0; i < 7; i++) { map.setField(i, 0, wall); map.setField(0, i, wall); map.setField(6, i, wall); map.setField(i, 6, wall); } // 城、町、勇者のセット Random random = new Random(); map.setField(random.nextInt(5) + 1, random.nextInt(5) + 1, city); map.setField(random.nextInt(5) + 1, random.nextInt(5) + 1, castle); map.setField(random.nextInt(5) + 1, random.nextInt(5) + 1, braveMan); }

}

投稿2015/01/07 04:38

syokeinin

総合スコア74

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問