Sooooo ...我正在用JAVA建立一個基於文本的RPG遊戲,並且有些東西是錯誤的...... 它會編譯,它會運行,但是......好吧,這很難解釋。我會先把代碼放好。製作一個簡單的基於文本的RPG比預期的更難
import java.util.Scanner;
public class XOBYT
{
public static void main(String[] args)
{
String choice;
Scanner scan = new Scanner(System.in);
System.out.println("COPYRIGHT 2016 HARBNGER STUDIOS\nYou wake up in a broken-down alabaster\nhouse with no knowledge of who\nyou are or where you came from.\nWhich direction do you want to head? (options: NORTH, SOUTH, EAST, WEST)");
choice = scan.nextLine();{
if(choice.equals("NORTH")){System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED NORTH TO A RUN-DOWN VILLAGE. CARCASSES EVERYWHERE.\nNO SURVIVORS. I WONDER WHAT HAPPENED HERE.\nI LOOTED THE BODIES, TALOS BLESS MY SOUL. I FOUND A PISTOL AND SOME GAUZE. I CAN VIEW MY INVENTORY, HIT THE ROAD, OR LINGER AROUND.\n\n(options: INVENTORY,ROAD,LINGER)");}
choice = scan.nextLine();{
if(choice.equals("INVENTORY")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644\n\nI TRAVELED SOUTH AND STOPPED AT AN ABANDONED\nOUTPOST. IT HAS SOME SUPPLIES. I PICKED\nUP A PISTOL AND SOME NANITE SYRINGES. I CAN CHECK\nMY INVENTORY, MOVE FARTHER SOUTH, OR EXPLORE.\n\n(options: INVENTORY,FARTHER,EXPLORE)");}
choice = scan.nextLine();{
}
if(choice.equals("FARTHER")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED EAST AND STOPPED BY A DIRTY STREAM.\nIT'S FILLED WITH GARBAGE, BUT THERE ARE ALSO PLASTIC BOTTLES.\nSHOULD I FILL THEM WITH WATER OR MOVE ON?\n\n(options: FILL,MOVE)");}
choice = scan.nextLine();{
}
if(choice.equals("EXPLORE")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED WEST AND FOUND AN ABANDONED SHACK.\nSHOULD I SEARCH IT FOR LOOT OR MOVE ON?\n\n(options: SEARCH,MOVE)");}}
choice = scan.nextLine();{}
if(choice.equals("SOUTH")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644\n\nI TRAVELED SOUTH AND STOPPED AT AN ABANDONED\nOUTPOST. IT HAS SOME SUPPLIES. I PICKED\nUP A PISTOL AND SOME NANITE SYRINGES. I CAN CHECK\nMY INVENTORY, MOVE FARTHER SOUTH, OR EXPLORE.\n\n(options: INVENTORY,FARTHER,EXPLORE)");}
choice = scan.nextLine();{
}
if(choice.equals("EAST")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED EAST AND STOPPED BY A DIRTY STREAM.\nIT'S FILLED WITH GARBAGE, BUT THERE ARE ALSO PLASTIC BOTTLES.\nSHOULD I FILL THEM WITH WATER OR MOVE ON?\n\n(options: FILL,MOVE)");}
choice = scan.nextLine();{
}
if(choice.equals("WEST")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED WEST AND FOUND AN ABANDONED SHACK.\nSHOULD I SEARCH IT FOR LOOT OR MOVE ON?\n\n(options: SEARCH,MOVE)");}}
choice = scan.nextLine();{
}
}
}
我似乎無法弄清楚,但我認爲「if」語句彼此衝突。當我運行它時,鍵入「NORTH」,然後鍵入「FARTHER」或「EXPLORE」,命令提示符變爲空白。它不會做它應該做的......除非你輸入「INVENTORY」。它然後完美地工作。它會再次發生,如果我將「choice equal INVENTORY」的位置與其他「Choice equals」切換,除非它再次是頂部的「if」語句。我在Notepad ++上輸入並通過命令提示編譯。提前致謝。
編輯:根據一些評論,我忘了我忽略補充說,我是半生鏽的Java,並且我需要具體細節。如果可以的話,像嬰兒一樣走過它。如果它太麻煩了,跳過我的問題。
編輯:我刪除了大部分不需要的括號。如果我還有一些,請告訴我。這是我所擁有的,它幾乎完美地運行和編譯。
import java.util.Scanner;
public class XOBYT
{
public static void main(String[] args)
{
String choice;
Scanner scan = new Scanner(System.in);
System.out.println("COPYRIGHT 2016 HARBNGER STUDIOSYou wake up in a broken-down alabaster\nhouse with no knowladge of who\nyou are or where you came from.\nWhich direction do you want to head? (options: NORTH, SOUTH, EAST, WEST)");
choice = scan.nextLine();
if(choice.equals("NORTH")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED NORTH TO A RUN-DOWN VILLAGE. CARCASSES EVERYWHERE.\nNO SURVIVORS. I WONDER WHAT HAPPENED HERE.\nI LOOTED THE BODIES, TALOS BLESS MY SOUL. I FOUND A PISTOL AND SOME GAUZE. I CAN VIEW MY INVENTORY, HIT THE ROAD, OR LINGER AROUND.\n\n(options: INVENTORY,ROAD,LINGER)");
}
choice = scan.nextLine();
if(choice.equals("INVENTORY")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644\n\nI TRAVELED SOUTH AND STOPPED AT AN ABANDONED\nOUTPOST. IT HAS SOME SUPPLIES. I PICKED\nUP A PISTOL AND SOME NANITE SYRINGES. I CAN CHECK\nMY INVENTORY, MOVE FARTHER SOUTH, OR EXPLORE.\n\n(options: INVENTORY,FARTHER,EXPLORE)");
}
choice = scan.nextLine();
if(choice.equals("FARTHER")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED EAST AND STOPPED BY A DIRTY STREAM.\nIT'S FILLED WITH GARBAGE, BUT THERE ARE ALSO PLASTIC BOTTLES.\nSHOULD I FILL THEM WITH WATER OR MOVE ON?\n\n(options: FILL,MOVE)");
}
choice = scan.nextLine();
if(choice.equals("EXPLORE")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED WEST AND FOUND AN ABANDONED SHACK.\nSHOULD I SEARCH IT FOR LOOT OR MOVE ON?\n\n(options: SEARCH,MOVE)");
}
choice = scan.nextLine();
if(choice.equals("SOUTH")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644\n\nI TRAVELED SOUTH AND STOPPED AT AN ABANDONED\nOUTPOST. IT HAS SOME SUPPLIES. I PICKED\nUP A PISTOL AND SOME NANITE SYRINGES. I CAN CHECK\nMY INVENTORY, MOVE FARTHER SOUTH, OR EXPLORE.\n\n(options: INVENTORY,FARTHER,EXPLORE)");
}
choice = scan.nextLine();
if(choice.equals("EAST")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED EAST AND STOPPED BY A DIRTY STREAM.\nIT'S FILLED WITH GARBAGE, BUT THERE ARE ALSO PLASTIC BOTTLES.\nSHOULD I FILL THEM WITH WATER OR MOVE ON?\n\n(options: FILL,MOVE)");
}
choice = scan.nextLine();
if(choice.equals("WEST")){
System.out.println("\n\n\n\n--TERMINAL_LOG--\n\nI FOUND THIS HANDHELD TERMINAL LOG FIGURED I'D\nPUT IT TO SOME USE. TODAY IS, ACCORDING TO THIS, THE 15TH OF JAN, 2644.\n\nI TRAVELED WEST AND FOUND AN ABANDONED SHACK.\nSHOULD I SEARCH IT FOR LOOT OR MOVE ON?\n\n(options: SEARCH,MOVE)");}
}
choice = scan.nextLine();
}
}
經過測試。完美的工作。
不要灑'{}'隨機在你的代碼。學會正確地格式化/縮進,並在發佈前完成。 – Mat
這可以編譯? – bmarkham
是的,但不是我想要的。這就是爲什麼我把它發佈在這裏。 –