首页 > 其他分享 >暑假第三周总结(7.15-7.20)

暑假第三周总结(7.15-7.20)

时间:2024-07-20 20:09:17浏览次数:18  
标签:7.15 String 第三周 7.20 System game new public Room

  • 这周做了什么
    继续学习JAVA,做出了城堡游戏
点击查看代码
//Room
package castleV3;

import java.util.HashMap;

public class Room {
	
    private  String description;
    private HashMap<String ,Room> exits =new HashMap<String ,Room>();

    public Room(String description)     {
        this.description = description;
    }
    
    public void  setExit(String dir ,Room room){
    	exits.put(dir, room);
    }

    @Override
    public String toString()
    {
        return description;
    }
    
    public  String getExitDesc() {

    	StringBuffer sb=new  StringBuffer();
    	for (String dir: exits.keySet()) {
    		sb.append(dir);
    		sb.append(" ");
    	}
    	return sb.toString();
    }

    public Room  getExit(String direction) {
    	return	exits.get(direction);
    }
}
//Handlerhelp
package castleV3;

public class HandlerHelp extends Handler {
	
	   public HandlerHelp(Game game ) {
			  super(game);
		   }
	   
	@Override
	public void docmd(String word) {
			System.out.println("迷路了吗? 你可以做的命令有 :go  bye help");
			System.out.println("如 \t go east");
	}
}

//Handlergo
package castleV3;

public class HandlerGo extends Handler  {
	   public HandlerGo(Game game ) {
			  super(game);
		   }

	@Override
	public void docmd(String word) {
		game.goRoom(word);
	}   
}

//Handlerbye
package castleV3;

public class HandlerBye extends Handler {

	   public HandlerBye(Game game ) {
		  super(game);
	   }
	@Override
	public boolean isBye() {
		return true;
	}
}

//Handler
package castleV3;

public class Handler {
	
	protected Game game;
	
	   public Handler(Game game ) {
		   this.game=game;
	   }
	   
		public void docmd(String word) {
			
		}
		
		public boolean isBye() {
			return false;
		}

}

//Game
package castleV3;
//V2 基础上 增加框架+数据来提高拓展性
import java.util.HashMap;
import java.util.Scanner;

public class Game {
    private Room currentRoom;
    private HashMap<String,Handler>handlers= new HashMap<String,Handler>();        
    public Game() 
    {
    	handlers.put("bye", new HandlerBye(this));
    	handlers.put("help", new HandlerHelp(this));
    	handlers.put("go", new HandlerGo(this));
    
        createRooms();
    }

    private void createRooms()
    {
        Room outside, lobby, pub, study, bedroom;
      
        //	制造房间
        outside = new Room("城堡外");
        lobby = new Room("大堂");
        pub = new Room("小酒吧");
        study = new Room("书房");
        bedroom = new Room("卧室");
        
        //	初始化房间的出口
        outside.setExit("east", lobby);
        outside.setExit("south",study);
        outside.setExit("west",pub);
        
        lobby.setExit("west",  outside);
        pub.setExit("east", outside);
        
        study.setExit("north",outside);
        study.setExit("easst",bedroom);
        bedroom.setExit("west",study);
        
        
//        增加 拓展
        lobby.setExit("up",  pub);
        pub.setExit("down", lobby);
        
        currentRoom = outside;  //	从城堡门外开始
    }

    private void printWelcome() {
        System.out.println();
        System.out.println("欢迎来到城堡!");
        System.out.println("这是一个超级无聊的游戏。");
        System.out.println("如果需要帮助,请输入 'help' 。");
        System.out.println();
        showPrompt(); 
    }

    	public void showPrompt() {
    		 System.out.println("现在你在" + currentRoom);
    	        System.out.print("出口有:");
    	 System.out.println(currentRoom.getExitDesc());
    	}
    	
    // 以下为用户命令
    public  void goRoom(String direction) 
    {
        Room nextRoom = currentRoom.getExit(direction);
       
        if (nextRoom == null) {
            System.out.println("那里没有门!");
        }
        else {
            currentRoom = nextRoom;
            showPrompt();
        }
    }
    
    public void play() {
    	Scanner in = new Scanner(System.in);
        while ( true ) {
    		String line = in.nextLine();
    		String[] words = line.split(" ");
    		Handler handler=handlers.get(words[0]);
    		String value="";
    		if(words.length>1)  		
    			value=words[1];
    		if (handler!=null) {
    			handler.docmd(value);
    			if(handler.isBye()) {
    				break;
    				}
    			}
        }
        in.close();
    }
    
	public static void main(String[] args) {
		
		Game game = new Game();
		game.printWelcome();
		game.play();
        System.out.println("感谢您的光临。再见!");
	}
}

运行结果:

/
/
/

  • 下周打算做什么
    1.深入学习JAVA
    2.看完《大道至简》

/
/
/

  • 有哪些问题
    感觉自己的沟通能力需要提高,目前进行暑假授课,希望表达能力能得到提升。

标签:7.15,String,第三周,7.20,System,game,new,public,Room
From: https://www.cnblogs.com/its-my-go/p/18313684

相关文章

  • 软件工程进度报告——第三周
    本周总结:本周下载安装了IDEA编译器并学习Java代码的基本格式1.为什么要用编译器?记事本不够智能,即没有编译器的提示功能也没有编译器的测试功能,这时就需要使用高级的开发工具——编译器。2.为什么要用IDEA?IDEA是现在业内公认的JAVA程序开发的最好工具下载地址:www.jetbrains.co......
  • 第三周总结
    学习进度:(1)阅读完《大道至简》第三章以及第四章一部分,第三章讲了团队缺乏的不只是管理,讲了如何做一位管理者,制度的一些问题,还有分工的重要性,管理并不等同于做伯乐。在第四章的阅读部分,告诉我们不要要求你的客户按照你的方式来明白你的东西,要以客户的角度来让客户明白你的东西,要注......
  • 第三周学习日历
    这一周在练车,感觉练学车好难...在空余时间我也学习了Java的一些知识,在学习中自己敲了一些代码记录下来...这周最大的进步是自己根据要求写了一个学生管理系统,虽然之前用C++写过类似的,但是用一门新的语言,有不同的成就感>_<7月15日参加了睿康的编程赛写出来3题半1000多名......
  • 【闲话】07.20.24
    0719闲话头图:今日推歌:《剰えfeat.鸣花ヒメ》rinri僕らを人と呼ぶのなら如若要将我们冠以人类之名剰え日々を課すなら在此之上还要背负起生活的话不揃いが故の僕らを那希望你能够愛して欲しいのさ爱着不完美的我们是rinri一贯的空灵感,无机质的声线勾勒出来的却......
  • 自学Java第三周
    本周学习一、循环1.while循环先判断条件,符合再执行。while(){}2.dowhile循环先执行一次,再判断条件。do{}while();3.forfor(初始条件;判断条件;循环迭代语句){}4.嵌套循环各种类型的循环都可以做内外侧循环。for(){for(){......;}}for(){while(){......;}}...5.控制循环结构break:完全结束一个循环,跳出循环体。continue:结束本次循环,开始下次循......
  • 7.20鲜花——献给挂帅出征NOI的5位巨佬的作别之书
    今天,NOIday2在cqyc落下帷幕截至撰稿,获奖情况笔者并不清楚但是,我希望你们不要去高三了,真的qwq但是,除了艾希之外,NOI2024可能是你们最后一战了(如果排除CTS和IOI)由于艾希不是正式选手,而且是高一的,在此不提我在六月中旬停课进入410,其实除了省选成绩与竞赛宣讲我好像对你们不甚了......
  • 24.7.20
    嗯,今天又提升了一些对于二次元的喜爱所以想写点东西大概就是在刷抖音的时候刷到了很多二次元,真的很喜欢他们那种对二次元的热情,中二的样子真的很可爱,我也真的很像成为其中的一员,但是现在毕竟才初三嘛,家庭也属于那种比较封建一点的那种,管的比较严(安监控),不支持通讯录,并且虽然他们......
  • 第三周
    idea连接hive一、准备工作1、添加依赖添加hive-jdbc和hadoop-common的依赖。注意:此处添加的依赖要和自己服务器上的版本对应上。<!--添加所用hive版本的jdbc依赖--><dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><vers......
  • 第三周总结
    学习时间:每天3h代码量:每日300行今日进行放假的测试石家庄铁道大学2024年夏季  2022级课堂测试试卷—Hadoop数据库应用课程名称:大型数据库应用技术 任课教师:王建民  考试时间:实现为止分钟  一、    测试题目1、完成科技查新基本信息填报功能,基本信息如下所示......
  • 第三周
    本周学习了判断与循环以及数组;了解了java与c++语言的相通之处;并进行了相关例题训练:完成pta部分习题下周进行方法以及面向对象的学习;......