编程知识 cdmana.com

Java期末作業——王者榮耀的洛克王國版遊戲

在這裏插入圖片描述

導讀

最近肥學在刷Java畢竟學業將至不得不為後面的道路考慮啊,做後端的不了解Java基礎和學幾個主流框架怎麼也說不過去吧。然後我就試著寫了我這個Java新手都能完成的王者榮耀洛克王國版模擬遊戲暫時還沒加上前端,等後面刷完框架在加。好了我們屁話不多說來看看吧

項目介紹

該項目使用MVC+DAO模式,這也是目前比較流行的模式吧。
MVC的意思是

字母 錶示含義
M model,模型層,Javabean
V view 視圖層 ,servlet和jsp前端頁面
C controller 控制層

DAO 就是數據持久化層。
整個項目沒有什麼特點,它唯一的特點就是簡單代碼量較大附含視頻特別適合新手練而且內容也涵蓋了放射,正則錶達式等一些技術。
在這裏插入圖片描述
每一個包裏面又有很多的Java
在這裏插入圖片描述

功能介紹

特別强調介紹裏面出現的人名絕無惡意,只是我個人在創作期間在《覺醒年代》中被他們深深吸引導致。

王者榮耀洛克王國版模擬遊戲
1、系統需求:
用戶方:
1、登錄 輸入用戶名 密碼 進行登錄 
2、選擇英雄進行遊戲
包括: 英雄的類型、英雄的攻擊值、攻擊命中率
目前類型為:妲己和貂蟬
3、遊戲開始後,英雄發起攻擊,根據英雄的攻擊值和命中率,計算分數
4、遊戲結束後可將分數記錄下來
5、可以查看以前的遊戲分數 
管理員方:
1、登錄 默認 用戶名:admin 密碼:123 ,後期從XML文件中讀出
用戶名密碼輸入三次錯誤,則退出遊戲
2、新增玩家
3、修改玩家
4、删除玩家
5、查詢玩家
6、查詢遊戲
7、分數統計
8、參數設置 
2、系統界面:

1、首頁

~~~~~~~~~~~~~~~菜單界面~~~~~~~~~~~~~~~~~~

	   王者榮耀的洛克王國版

1.玩家登陸

2.管理員登錄

3.退出

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
請輸入您想選擇模式前的數值:

2、選擇“1、玩家登錄”
******************************************************

玩 家 登 錄

請輸入用戶名:
請輸入密碼:

******************************************************
如果用戶名和密碼輸入正確(需要管理員添加玩家)
則出現界面如下:

恭喜登陸成功!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	  王者榮耀洛克王國版

1·開始遊戲
2·查看成績
0·返回上級
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
請選擇:


2.1開始遊戲
	您以選擇成功!
	開始遊戲!
	歡迎來到王者榮耀洛克王國版虛擬畫面
	妲己:主法術攻擊技能有三
	技能一:月刃   攻擊值100
	技能二:魅惑   攻擊值150
	技能三:狐之殤  攻擊值300
	請輸入您要使用的技能:
	1
	技能:月刃
	描述:對敵方造成法術傷害
	
	太棒了教對面做人!


	
	妲己:主法術攻擊技能有三
	技能一:月刃   攻擊值100
	技能二:魅惑   攻擊值150
	技能三:狐之殤  攻擊值300
	請輸入您要使用的技能:
	2
	
	哎呀,打偏了我的我的!
	
	
	妲己:主法術攻擊技能有三
	技能一:月刃   攻擊值100
	技能二:魅惑   攻擊值150
	技能三:狐之殤  攻擊值300
	請輸入您要使用的技能:
	3
	技能:狐之殤
	描述:對地方造成法術傷害+加减速效果
	
	成功超神!
	
	攻擊結束魯迅您的得分:400
	是否繼續?(是或否)2.2查看成績
遊戲時間				        分數
2021-08-07 00:00:00.0		600
2021-08-08 07:56:37.0		450
2021-08-08 16:38:03.0		400
1、返 回 上 級
	2.3返回上級

 返回首頁

3、選擇“2、管理員登錄”
******************************************************

管 理 員 登 錄

請輸入用戶名:
請輸入密碼:

******************************************************
如果用戶名和密碼輸入正確(默認都為admin)
則出現界面如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1·新增玩家
2·修改玩家
3·删除玩家
4·查詢玩家
5·查詢遊戲英雄
6·分數統計
7·參數設置
0·返回上級
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果密碼輸錯三次則退出遊戲。系統關閉
3.1 新增玩家
新增玩家:
請輸入玩家的登錄名:(必須要有字母,且在系統中唯一)
請輸入玩家的密碼:(必須要有字母和數字,且最少不能少於6比特)
請輸入玩家的昵稱:
請輸入玩家的性別:(只可輸入男或女)
請輸入玩家的年齡:(只可輸入正整數,且最大不可大於99)


新增玩家成功!
1、繼續新增玩家
0、返 回 上 級

3.2 修改玩家
請選擇要修改的玩家:
1、xx1	2、xx2	3、xx3	4、XX4
選“1”修改xx1
選擇要修改的屬性:
1、玩家的密碼:(必須要有字母和數字,且最少不能少於6比特)
2、玩家的昵稱:
3、玩家的性別:(只可輸入男或女)
4、玩家的年齡:(只可輸入正整數,且最大不可大於1000、返回上級

3.3 删除玩家
請選擇要删除的玩家:
1、xx1	2、xx2	3、xx3	4、XX4
選“1”删除xx1
全部删除後不可再删除

0、返回上級

3.4 查詢玩家
	1·查詢全部玩家
	2·根據登陸名查找
	0·回退
	loginname	 nickname	 sex	 age	
	周樹人	    魯迅	       男	18
	阿秀	       領導人	    男	20
	李大釗	    守常	       男	19123a	肥學	男	23


0、返 回 上 級
********************************************************************
3.5 查詢遊戲英雄
*******************************************************************************
英雄名:妲己
一技能:月刃  攻擊力:100  命中率:90
二技能:魅惑  攻擊力:150  命中率:80
三技能:狐之殤  攻擊力:300  命中率:60
英雄名:貂蟬
一技能:獨舞  攻擊力:90  命中率:90
二技能:讒誘  攻擊力:150  命中率:80
三技能:拜月  攻擊力:200  命中率:80
3.6分數統計
玩家	     總分	  戰力指數
	周樹人   1450      ¤¤¤¤¤

3.7參數設置
	1·管理員的登陸名
	2·管理員密碼
	3·管理員的最大登錄次數
	
	以下僅作英雄詳情展示
	英雄ID:1  英雄名:妲己
	技能一 傷害值:100: 命中率:90
	技能二 傷害值:150: 命中率:80
	技能三 傷害值:300: 命中率:60~~~
	英雄ID:2  英雄名:貂蟬
	技能一 傷害值:90: 命中率:90
	技能二 傷害值:150: 命中率:80
	技能三 傷害值:200: 命中率:80~~~
4、選擇“0、退出”
系統提示“遊戲結束。。。。。。”系統關閉

所建立的數據錶

在這裏插入圖片描述

部分代碼展示

public class AdminManager {
    
	/** * 登錄 * @throws SQLException */
	//
	DBUtil db=new DBUtil();
	SysManager sm=new SysManager();
	PlayerDao pd=new PlayerDao();
	GameDao gd=new GameDao();
	public boolean AdminOperate() throws SQLException {
    
		boolean b=false;
		for(int i=0;i<DataInit.login.getLogintime();i++) {
    
			Login login=Menu.getLoginUI();
			b=this.checkoutLogin(login);
			if(b) {
    
				System.out.println("恭喜登錄成功!!!\n\n");
				//循環這個管理員界面使不按0推出就不會返回上一層
				boolean feixue=true;
				while(feixue) {
    
				int c=Menu.getAdminUI();
				
				feixue=this.adminOperate2(c);
				
				}
			}
			else {
    
				System.out.println("請重新登陸!");
				if(DataInit.login.getLogintime()-i>0) {
    
					System.out.println("還可以輸入"+(DataInit.login.getLogintime()-i)+"次");
				}
			}
		}
		return b;
	}
//遊戲過程
	public void play() throws SQLException {
    
		System.out.println("歡迎來到王者榮耀洛克王國版虛擬畫面");
		int score=0;
		//選擇英雄
		hero h=heros;
		for(int i=0;i<3;i++){
    
		score=this.selectSkill(h)+score;
		System.out.println("\n");
		}
		System.out.println("攻擊結束"+player.get("nickname")+"您的得分:"+score);
		//保存遊戲記錄
		Game game=new Game();
		game.setPid(Integer.parseInt(player.get("id")));
		game.setScore(score);
		gd.insertGame(game);
	}
	
	//技能展示
	public int selectSkill(hero h) {
    
		//生成隨機數
		double ran=Math.random()*10;
		//展示每個英雄的技能
		h.display();
		System.out.println("請輸入您要使用的技能:");
		int s=InputHelper.getInt();

		switch(s) {
    
		case 1:
			
			int pro1 =h.probability1/10;
			if(ran<=pro1) {
    
				h.skill1();
				System.out.println("\n太棒了教對面做人!");
				return h.skill1;
			}else {
    
				System.out.println("\n哎呀,打偏了!");
			}
			break;
		case 2:
			
			int pro2 =h.probability2/10;
			if(ran<=pro2) {
    
				h.skill2();
				System.out.println("\n666");
				return h.skill2;
			}
			else {
    
				System.out.println("\n哎呀,打偏了我的我的!");
			}
			break;
		case 3:
			int pro3 =h.probability3/10;
			if(ran<=pro3) {
    
				h.skill3();
				System.out.println("\n成功超神!");
				return h.skill3;
			}else {
    
				System.out.println("\n大哥你技術不行呀!");
			}
			break;
		default:
			System.out.println("請輸入正確的技能!");
		
		}
		return 0;
	}
	
public class GameDao {
    
	DBUtil db=new DBUtil();
	//新增遊戲即重新開始
	public int insertGame(Game game) throws SQLException {
    
		//now()自帶函數獲取檔當前時間
		String sql="insert into wzry_game(pid,playtime,score) values(?,now(),?)";
		Object[] obj= {
    game.getPid(),game.getScore()};
		return db.upDate(sql, obj);
	}
	//玩家查詢自己的遊戲記錄
	public List<Map<String,String>> queryGameByPid(int id) throws SQLException{
    
		String sql="select b.*,a.loginname from wzry_player a,wzry_game b where a.id=b.pid and pid=?";
		Object[] obj= {
    id};
		List<Map<String,String>> list=db.query(sql, obj);
		return list;
	}
	//查詢
	public List<Map<String,String>> queryAllGame() throws SQLException{
    
		String sql="select b.*,a.loginname from wzry_player a,wzry_game b where a.id=b.pid";
		List<Map<String,String>>list=db.query(sql, null);
		
		return list;
		
	}
	//分數統計
	
	public List<Map<String,String>> queryGameScore() throws SQLException {
    
		String sql="select a.loginname as 玩家,sum(b.score) as 總分,case "
		            +" when sum(b.score)>=500 then '¤¤¤¤¤' "
				    +" when sum(b.score)>=400 and sum(b.score)<500 then '¤¤¤¤' else '¤¤¤' end 'lucky'"
		            +" from wzry_player as a inner join wzry_game as b on a.id=b.pid"
					+" group by a.loginname";
		
		return db.query(sql, null);
	}
	//查詢所有英雄
	public List<Map<String,String>> queryAllHeros() throws SQLException{
    
		String sql="select * from heros";
		List<Map<String,String>> heros=db.query(sql, null);
		return heros;
	}
	

}

特別注意

另外如果大家想獲取MySQL基礎知識和資源的話可以到這裏來看看:傳送門源碼後續會傳到csdn如果您目前急需要練手可以先私信,我先單獨發給您。

有什麼問題大家可以私信我,另外給大家推薦幾個不錯的專欄

小白練手專欄,適合剛入手的新人歡迎訂閱編程小白進階

python有趣練手項目裏面包括了像《機器人尬聊》《惡搞程序》這樣的有趣文章,可以讓你快樂學python練手項目專欄

另外想學JavaWeb進廠的同學可以看看這個專欄:傳送們

這是個沖刺大廠面試和競賽的算法練習我們一起加油上岸之路

點擊直接資料領取

這裏有python,Java學習資料還有有有趣好玩的編程項目,更有難尋的各種資源。反正看看也不虧。

版权声明
本文为[肥學]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/11/20211125174442533a.html

Scroll to Top