主人公が入力方向に応じて一歩づつ長方形の部屋を進んで行くソース(の欠片)
というわけですが入力やらウィンドウ表示やらはまだ出来ないので
入力する各方向を数字1〜4で対応させて入力変数に入れて動作するような感じでとりあえず。。。
Hero.java
public class Hero{ int H_x = 5; int H_y = 5; int H_h = 1; int H_w = 1; byte Wall_x,Wall_y; public void heroNow(){ System.out.println("現在地は["+ H_x + ":" + H_y + "]です。"); } public void Move(byte moveIn_m){ if(moveIn_m != 0){ if((moveIn_m == 1) & (Wall_y != 1)){H_y++;} else if((moveIn_m == 2) & (Wall_x != 1)){H_x++;} else if((moveIn_m == 3) & (Wall_y != -1)){H_y--;} else if((moveIn_m == 4) & (Wall_x != -1)){H_x--;} else{System.out.println("そちらの方向には移動できません。");} } } public void checkWall(){ Wall wall = new Wall(); if(H_x - 1 == 0){Wall_x = -1;} else if(H_x + H_w + 1 == wall.Wall_w + 1){Wall_x = 1;} else if(H_y - 1 == 0){Wall_y = -1;} else if(H_y + H_h + 1 == wall.Wall_h + 1){Wall_y = 1;} } }
Wall.java
public class Wall{ int Wall_w = 10; int Wall_h = 10; }
MAIN.java
public class MAIN{ public static void main(String[] args){ Hero hero = new Hero(); hero.heroNow(); for(byte i=1; i<=5; i++){ hero.checkWall(); byte moveIn = 3; hero.Move(moveIn); hero.heroNow(); hero.checkWall(); moveIn = 2; hero.Move(moveIn); hero.heroNow(); } } }
まぁとりあえず
"MAIN.java"は入力の見立てとして動かしてるので妙な感じになってますが気にせずにw
"Wall.java"は今のところは有用でないんですがとりあえず分けるだけ分けておいたという。
なんでまぁ今回のポイントは"Hero.java"ということでどうか一つ…;
↓↓↓ 因みに出力 ↓↓↓
現在地は[5:5]です。 現在地は[5:4]です。 現在地は[6:4]です。 現在地は[6:3]です。 現在地は[7:3]です。 現在地は[7:2]です。 現在地は[8:2]です。 現在地は[8:1]です。 現在地は[9:1]です。 そちらの方向には移動できません。 現在地は[9:1]です。 そちらの方向には移動できません。 現在地は[9:1]です。