2013-11-15 15 views
0

我有我的迷宮,可以去北東南南,但我如何移動ne或sw。如果可能的話,你們可以給我示例使用我的代碼。感謝它的一個4x4陣列。在二維陣列中對角線移動

用戶界面

//Begin user dialog 
    System.out.println("Welcome"); 
    input =""; 
    while(!input.equals("quit")) 
    { 
     System.out.println(map.rooms[row][col].name); 
     System.out.print(">"); 
     input = scan.nextLine().toLowerCase(); 

     switch (input) { 
      case "n": 
       if(map.rooms[row][col].isValidExit("n")) 
        row--; 
       else 
        System.out.println("You cant go that way"); 
       break; 
      case "s": 
       if(map.rooms[row][col].isValidExit("s")) 
        row++; 
       else 
        System.out.println("You cant go that way"); 
       break; 
      case "w": 
       if(map.rooms[row][col].isValidExit("w")) 
        col--; 
       else 
        System.out.println("You cant go that way"); 
       break; 
      case "e": 
       if(map.rooms[row][col].isValidExit("e")) 
        col++; 
       else 
        System.out.println("You cant go that way"); 
       break; 

回答

1

你需要炭火解析您的輸入

while(!input.equals("quit")) 
{ 
    System.out.println(map.rooms[row][col].name); 
    System.out.print(">"); 
    input = scan.nextLine().toLowerCase(); 
    char[] inputArray = input.toCharArray(); 

    for(char c : inputArray){ 

    switch (input) { 
     case "n": 
      if(map.rooms[row][col].isValidExit("n")) 
       row--; 
      else 
       System.out.println("You cant go that way"); 
      break; 
     case "s": 
      if(map.rooms[row][col].isValidExit("s")) 
       row++; 
      else 
       System.out.println("You cant go that way"); 
      break; 
     case "w": 
      if(map.rooms[row][col].isValidExit("w")) 
       col--; 
      else 
       System.out.println("You cant go that way"); 
      break; 
     case "e": 
      if(map.rooms[row][col].isValidExit("e")) 
       col++; 
      else 
       System.out.println("You cant go that way"); 
      break; 
+0

抱歉對Java什麼是char-解析。要去查看它,但一個簡單的答案也有幫助。 – user2995304

+0

它不能更簡單,我只是在你的代碼中添加了兩行:P – pedrito

+0

但它是什麼意思,是我的問題?從查找它將String轉換爲char。我感謝你給我的代碼行,但我想明白和學習即時通訊做這個:)。就像我現在把代碼中的字符放在代碼中一樣? – user2995304

0

例如東北:

case "ne": 
     if(map.rooms[row][col].isValidExit("ne")) { 
      col++; 
      row--; 
     } 
     else { 
      System.out.println("You cant go that way"); 
     } 
     break; 
+0

if:case「ne」: if(map.rooms [row] [col] .isValidExit(「ne」))** {** col ++; row--; **} ** else System.out.println(「你不能這樣做」); 休息; – Melquiades

+0

對不起,我忘了。 – kai