私は水平コースに沿って亀と兎を競うオブジェクト指向プログラミングを使ってプロジェクトをやっています。私はアプレットとスイングを使用して他のバージョンを見てきましたが、私はまだそれらに導入されていないので、私はよりシンプルなグラフィックスで滞在することを好むでしょう。Hare Tortoise Race視覚的表示
各動物には、その時間のx%の動きがあります(後で詳しく説明します)。 BigHip() - 右に9つの正方形を移動する、SmallHop() - 右に1つ、RightSizeをBigSlip() - 左に12個、SmallSlip()に四角いままにする、FallAsleep() - 全く活動していない。今では、 "最も左の"位置は1ですので、もし6番の広場であれば大きなスリップは1に戻ってしまいます。(-6ではない)
亀にとっては、 :FastPlod() - 3つの正方形、SlowPlod() - 1つの正方形、Slip() - 6つの四角形、スリップに同じルールを適用したもの。
これまでのプログラムは、Hareクラス、Tortoiseクラス、およびRaceクラスを含んでいます。ここで
はノウサギクラスです:
public class Hare {
private int position;
public void setPosition(int s){
position = s;
}
public int getPosition(){
return position;
}
public void BigHop(){
position += 9;
}
public void SmallHop(){
position += 1;
}
public void BigSlip(){
if (position > 12){
position -= 12;
}
else{
position = 1;
}
}
public void SmallSlip(){
if (position > 2){
position -= 2;
}
else{
position = 1;
}
}
public void FallAsleep(){
position = position;
}
}
亀クラス:
public class Tortoise {
private int position;
public void setPosition(int s){
position = s;
}
public int getPosition(){
return position;
}
public void FastPlod(){
position += 3;
}
public void SlowPlod(){
position += 1;
}
public void Slip(){
if (position > 6){
position -= 6;
}
else{
position = 1;
}
}
}
レースクラスは、実際にレースを実行します。
public class Race {
public static void main(String[] args){
Hare myHare = new Hare();
Tortoise myTortoise = new Tortoise();
myHare.setPosition(1);
myTortoise.setPosition(1);
System.out.println("AND THEY'RE OFF!!");
while (myHare.getPosition() > 0){
int n = (int)(Math.random()*10);
switch (n){
case 1:
myHare.BigHop();
myTortoise.FastPlod();
case 2:
myHare.BigHop();
myTortoise.FastPlod();
case 3:
myHare.SmallHop();
myTortoise.FastPlod();
case 4:
myHare.SmallHop();
myTortoise.FastPlod();
case 5:
myHare.SmallHop();
myTortoise.FastPlod();
case 6:
myHare.BigSlip();
myTortoise.SlowPlod();
case 7:
myHare.SmallSlip();
myTortoise.SlowPlod();
case 8:
myHare.SmallSlip();
myTortoise.SlowPlod();
case 9:
myHare.FallAsleep();
myTortoise.Slip();
case 10:
myHare.FallAsleep();
myTortoise.Slip();
}
if (myHare.getPosition() == myTortoise.getPosition()){
System.out.println("OUCH!!");
}
if (myHare.getPosition() == 50 | myTortoise.getPosition() == 50){
if (myHare.getPosition() == 50){
System.out.println("HARE WINS!!");
break;
}
else{
if (myHare.getPosition() == myTortoise.getPosition()){
System.out.println("IT'S A TIE!!");
break;
}
else{
System.out.println("TORTOISE WINS!!");
break;
}
}
}
}
ロジック自体が動作します。レースが構築される方法は、トラックに50のスペースがあることです(トラック自体はグラフィカルに構築されていませんが、これは私が抱える問題です)。各動物の動きは、switch
構成を使用してランダムに実行されます。たとえば、時間の30%、タートルはSlowPlod()になります。
スリップが非常に多いために実行するにはしばらく時間がかかりますが、最終的に私は勝者(通常はカメ)を得ます。したがって、ロジック自体は機能します。
しかし、今これは私が表示されるだけ出力されます:これは、数百人のすべてがなく、もちろんです
AND THEY'RE OFF!! TORTOISE WINS!!
「OUCH !!」 2つの動物が同じ位置を共有するときに起こる。だから私は50のスペースのトラックに2つの動物の位置を表示できるようにしたい。私はそれぞれのスペースとして '_'を使用することを考えましたが、私はカメやウサギの動きをどのようにコードするかはわかりません。
例えば、可能な出力は次のようになります:
_ _ _ _ _ _ _ _ T _ _ _ _ _ _ _ _ _ _ _ H _ _ _
OUCH!!
私はちょうどそのようなトラックとコードTの動きを構築するかどうかはわかりませんし、 the
私は何か助けていただきありがとうございます。
大文字と小文字の区別が間違っている場合は申し訳ありません。 Javaにはまだまだ新しいものです。 – LightFlicker