public class PTra13_04 のところが分かりません。
誰か助けてください!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
package practice13.common;
/**
* 登場するキャラクターの情報とデフォルトの行動を設定したクラスです
* @author rhizome
*
*/
public class Character {
/** 名前 */
private String name = "キャラクター";
/** 体力 */
private int hp;
/** 力 */
private int power;
/** 防御力 */
private int endurance;
/**
* 体力、攻撃力、防御力の初期値を設定しつつ、Characterインスタンスを生成します
* @param hp
* @param attack
* @param defence
*/
public Character(int hp, int power, int endurance) {
this.hp = hp;
this.power = power;
this.endurance = endurance;
}
/**
* 名前を設定します
* @param name 設定したい名前
*/
public void setName(String name) {
this.name = name;
}
/**
* 名前を取得します
* @return 名前
*/
public String getName() {
return this.name;
}
/**
* 攻撃を行います
* @return 相手に与えるダメージを返します
*/
public int attack() {
return this.power;
}
/**
* ダメージ判定を行います
* @param attack 攻撃値
* @return 体力が0になったらtrue、まだ体力が残っていたらfalse
*/
public boolean damage(int attack) {
// ダメージ計算
int calc = attack - this.endurance;
if (calc <= 0) {
// 必ず1ダメージは入るようにする
calc = 1;
}
// ダメージ分体力を減らす
this.hp -= calc;
// 体力がなくなったかどうかの判定
if (this.hp <= 0) {
this.hp = 0;
return true;
}
return false;
}
/**
* キャラクター情報を表示します
* @return
*/
public String showParameter() {
StringBuilder str = new StringBuilder();
str.append("名 前:" + this.name);
str.append("\n");
str.append("体 力:" + this.hp);
str.append("\n");
str.append(" 力 :" + this.power);
str.append("\n");
str.append("耐 久:" + this.endurance);
return str.toString();
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
package practice13.common;
public class Hero extends Character{
public Hero() {
super(25, 10, 7);
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
package practice13.common;
public class Slime extends Character {
public Slime() {
super(10,5,2);
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
★ここのところが分からないです。
package practice13.ptra13;
import practice13.common.Hero;
import practice13.common.Slime;
public class PTra13_04 {
/*
* ★ PTra13_02, PTra13_03で作成した、Hero/Slimeクラスを使用します
*/
public static void main(String[] args) {
// ★ HeroインスタンスとSlimeインスタンスを作成し、それぞれの名前に"勇者", "スライム"を設定してください
Hero hero=new Hero();
hero.setName("勇者");
Slime slime=new Slime();
slime.setName("スライム");
/*
* ★ HeroとSlimeを、どちらかが体力0になるまで戦わせます
*
* ●Heroの攻撃 -> ダメージ判定 -> Slimeの攻撃 -> ダメージ判定
* 上記を繰り返し行います
*/
// ★ 勝利した方の出力を行ってください。「○○は■■との戦闘に勝利した」
}
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
eclipseで実際に実行して動作することを確認しています。
面倒なのでpackageは全てcommonにしています。
「PTra13_04、Hero、Slime、Character」は別ファイルです。
package common;
/**
* 登場するキャラクターの情報とデフォルトの行動を設定したクラスです
* @author rhizome
*
*/
public class Character {
/** 名前 */
private String name = "キャラクター";
/** 体力 */
private int hp;
/** 力 */
private int power;
/** 防御力 */
private int endurance;
/**
* 体力、攻撃力、防御力の初期値を設定しつつ、Characterインスタンスを生成します
* @param hp
* @param attack
* @param defence
*/
public Character(int hp, int power, int endurance) {
this.hp = hp;
this.power = power;
this.endurance = endurance;
}
/**
* 名前を設定します
* @param name設定したい名前
*/
public void setName(String name) {
this.name = name;
}
/**
* 名前を取得します
* @return 名前
*/
public String getName() {
return this.name;
}
/**
* 攻撃を行います
* @return 相手に与えるダメージを返します
*/
public int attack() {
return this.power;
}
/**
* ダメージ判定を行います
* @param attack 攻撃値
* @return体力が0になったらtrue、まだ体力が残っていたらfalse
*/
public boolean damage(int attack) {
// ダメージ計算
int calc = attack - this.endurance;
if (calc <= 0) {
// 必ず1ダメージは入るようにする
calc = 1;
}
// ダメージ分体力を減らす
this.hp -= calc;
// 体力がなくなったかどうかの判定
if (this.hp <= 0) {
this.hp = 0;
return true;
}
return false;
}
/**
* キャラクター情報を表示します
* @return
*/
public String showParameter() {
StringBuilder str = new StringBuilder();
str.append("名 前:" + this.name);
str.append("\n");
str.append("体 力:" + this.hp);
str.append("\n");
str.append(" 力 :" + this.power);
str.append("\n");
str.append("耐 久:" + this.endurance);
return str.toString();
}
}
package common;
public class Hero extends Character{
public Hero() {
super(25, 10, 7);
}
}
package common;
public class Slime extends Character {
public Slime() {
super(10,5,2);
}
}
package common;
public class PTra13_04 {
/*
* ★ PTra13_02, PTra13_03で作成した、Hero/Slimeクラスを使用します
*/
public static void main(String[] args) {
// ★ HeroインスタンスとSlimeインスタンスを作成し、それぞれの名前に"勇者", "スライム"を設定してください
Hero hero=new Hero();
hero.setName("勇者");
Slime slime=new Slime();
slime.setName("スライム");
/*
* ★ HeroとSlimeを、どちらかが体力0になるまで戦わせます
*
* ●Heroの攻撃 -> ダメージ判定 -> Slimeの攻撃 -> ダメージ判定
* 上記を繰り返し行います
*/
//★ 勝利した方の出力を行ってください。「○○は■■との戦闘に勝利した」
do{
// デバッグ用表示
// System.out.println(hero.showParameter());
// System.out.println(slime.showParameter());
// System.out.println();
if( slime.damage(hero.attack( )) ){ // HeroがSlimeに攻撃
System.out.println(hero.getName()+"は"+slime.getName()+"との戦闘に勝利した");
break;
}else{
if( hero.damage(slime.attack( )) ){ // SlimeがHeroに攻撃
System.out.println(slime.getName()+"は"+hero.getName()+"との戦闘に勝利した");
break;
}
}
}while ( true );
// デバッグ用表示
// System.out.println(hero.showParameter());
// System.out.println(slime.showParameter());
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校受験 数学 2 2 2 2 ーー + ーー + ーー+ーー 3×5 5×7 7×9 9×11 ーーは1本の 2 2022/04/08 20:40
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 洋楽 たーたーたーー、たたたーーたたーーたたー。 みたいな音楽から始まってクラブ(マルタのしか分からないの 3 2022/05/23 06:02
- クラシック クラシックの曲の名前を教えてください 3 2022/07/01 21:19
- その他(インターネット接続・インフラ) スマホ アンドロイド 位置情報の取得に失敗しました 設定を確認して下さい。 どうやるのーーーーーー( 1 2022/08/17 18:23
- オーケストラ・合唱 曲名がわかりません。 鼻歌検索しても出てこないし、街で聞いたのか映画で聞いたのかもなにもわからないで 1 2022/05/29 23:28
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- セックスレス 台湾の女性とsexをしたのですが 最初から最後まで あーー はぁーー あああー という 言葉?みたい 2 2022/06/20 11:05
- 子供 息子が、教師から専業投資になったんですが、キャリアになる仕事に就かず、人が来ない夜勤のコンビニバイト 1 2023/05/12 21:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
インタフェイス実装と抽象クラ...
-
randomで
-
JSP/Servletのパラメータの受け...
-
Socketの接続のタイムアウトを...
-
Timerについて教えて下さい
-
Javaの問題集の解答が意味不明です
-
【正規表現】< と > に囲まれた...
-
クラスを使った電卓のプログラム
-
javaのプログラミングで作るRPG...
-
Javaでlog4jを使ってログ出力を...
-
Javaがうまく動作しない理由
-
コンストラクタの動作について
-
C言語のポインターに関する警告
-
オブジェクトの中のプロパティ...
-
ダブルクォーテーションのrepla...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
プログラミングの問題です。大...
-
NoSuchMethodErrorが解決できま...
-
System.exit()の値を取得したい
-
Socketの接続のタイムアウトを...
-
Javaでlog4jを使ってログ出力を...
-
コンストラクタの引数の中のnew?
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
javaで特定の文字列から特定の...
-
コマンドライン引数の*(アフ...
-
JSP/Servletのパラメータの受け...
-
randomで
-
privateなフィールドは継承され...
-
GetterとSetterをやったのに。
-
C# DatagridviewにExcelシート...
-
【初心者です】javaで平均値を...
-
日本語が文字コードによっては...
-
うるう年判定
おすすめ情報