翁恺老师Java进阶城堡游戏源码
刚开始学习Java,在比站发现了翁恺老师的课程,讲的很不错。Castle源码我找了很久都没有找到老师课上自己讲的那个程序,于是我决定做一回搬运工,自己敲了出来,现在也方便一下大家,大家一起学习,一起进步,加油!
Game.java
package castle; import java.util.*; public class Game { private Room currentRoom; public Game() { creatRooms(); } private void creatRooms() { Room outside, lobby,pub,study,bedroom; // 制造房间 outside = new Room("城堡外"); lobby = new Room("大堂"); pub = new Room("小酒吧"); study = new Room("书房"); bedroom = new Room("卧室"); // 初始化房间的出口 outside.setExits(null,lobby,study,pub); lobby.setExits(null,null,null,outside); pub.setExits(outside,bedroom,null,null); bedroom.setExits(null,null,null,study); currentRoom = outside; //从城堡门外开始 } private void printWelcome() { System.out.println(); System.out.println("欢迎来到城堡!"); System.out.println("这是一个超级无聊的游戏。"); System.out.println("如果需要帮助,请输入help"); System.out.println(); System.out.println("现在你在:" + currentRoom); System.out.println("欢迎来到城堡"); System.out.println("出口有:"); if(currentRoom.northExit !=null) System.out.print("north"); if(currentRoom.eastExit !=null) System.out.print("east"); if(currentRoom.southExit !=null) System.out.print("south"); if(currentRoom.westExit !=null) System.out.print("west"); System.out.println(); } // 以下为用户命令 private void printHelp() { System.out.println("迷路了吗?你可以做的命令有:go bye help"); System.out.println("如: go east"); } private void goRoom(String direction) { Room nextRoom = null; if(direction.equals("north")){ nextRoom = currentRoom.northExit; } if(direction.equals("east")){ nextRoom = currentRoom.eastExit; } if(direction.equals("south")){ nextRoom = currentRoom.southExit; } if(direction.equals("west")){ nextRoom = currentRoom.westExit; } if(nextRoom == null){ System.out.println("那里没有门!"); } else{ currentRoom = nextRoom; System.out.println("你在"+ currentRoom); System.out.println("出口有:"); if(currentRoom.northExit != null) System.out.println("norh"); if(currentRoom.eastExit != null) System.out.println("east"); if(currentRoom.southExit != null) System.out.println("south"); if(currentRoom.westExit != null) System.out.println("west"); System.out.println(); } } public static void main(String[] args) { Scanner in = new Scanner(System.in); Game game = new Game(); game.printWelcome(); while (true){ String line = in.nextLine(); String[] words = line.split(" "); if ( words[0].equals("help")){ game.printHelp(); }else if ( words[0].equals("go")){ game.goRoom(words[1]); }else if ( words[0].equals("bye")){ break; } } System.out.println("感谢您的光临。再见!"); in.close(); } }
Room.java
package castle; public class Room { public String description; public Room northExit; public Room southExit; public Room eastExit; public Room westExit; public Room(String description) { this.description = description; } public void setExits(Room north,Room east,Room south,Room west) { if(north != null) northExit = north; if(east != null) eastExit = east; if(south != null) southExit = east; if(west != null) westExit = west; } @Override public String toString() { return description; } public void southExit(Object object, Room lobby, Room study, Room pub) { // TODO Auto-generated method stub } }
可能还有几个小bug在里面,跟着老师的课程可以解的,如果我有时间的话我会在评论区指出~