回合制游戲文字版(升級)

//在上一篇博客的基礎上,加了細節的改動

//改動:添加了外貌,性別,招式的細節描繪;添加了個人信息展示界面

//一創建java文件1,命名為playGame

package test2;import java.util.Random;public class playGame {//格斗游戲,每個游戲角色的姓名,血量,都不相同,在選定人物的時候(new對象的時候),這些信息就應該被確定下來//eg:姓名:喬峰 血量:100        姓名:鳩磨章 血量:100private String name;//姓名private int blood;//血量private char gender;//性別private String face;//長相String[] boyfaces={"風流俊雅","器宇軒昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目猙獰"};String[] girlfaces={"美色絕倫","沉魚落雁","亭亭玉立","身材較好","相貌平平","相貌簡陋","慘不忍睹"};String[] attacks_desc={"%s使出了一招【背心釘】,轉到對方的身后,一掌向%s背心的靈臺穴拍去。","%s使出了一招【游空探爪】,飛起身形自半空中變掌為抓鎖向%s。","%s大喝一聲,身形下伏,一招【劈雷墜地』,捶向%s雙腿。","%s運氣于掌,一瞬問掌心變得血紅,一式【掌心雷】,推向%s。","%s陰手翻起陽手跟進,一招【沒遮攔】,結結實實的捶向%s。","%s上步搶身,招中套招,一招【劈掛連環】,連環攻向%s。"
};
//injured 受傷描述;String[] injureds_desc={"結果%s退了半步,毫發無損","結果給%s造成一處瘀傷","結果一擊命中,%s痛得彎下腰","結果%s痛苦地悶哼了一聲,顯然受了點內傷","結果%s搖搖晃晃,一跤摔倒在地","結果%s臉色一下變得慘白,連退了好幾步","結果『轟』的一聲,%s口中鮮血狂噴而出","結果%s一聲慘叫,像灘軟泥般塌了下去"};public playGame(){}public playGame(String name,int blood,char gender){this.name=name;this.blood=blood;this.gender=gender;//face是隨機長相,不是在創建對象的時候給的setFace(gender);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBlood() {return blood;}public void setBlood(int blood) {this.blood = blood;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void  setFace(char gender){   Random r=new Random();//長相是隨機的if(gender=='男'){   //從boyfaces里隨機長相int index=r.nextInt(boyfaces.length);this.face=boyfaces[index];}else if(gender=='女'){//從girlfaces里隨機長相int index=r.nextInt(girlfaces.length);this.face=girlfaces[index];}else{this.face="面目猙獰";}}//展示人物信息public void showRoleInfo(){System.out.println("姓名為:"+getName());System.out.println("血量為:"+getBlood());System.out.println("性別為:"+getGender());System.out.println("長相為:"+getFace());}//定義攻擊別人//誰攻擊誰 r1攻擊r2 r1調用者 攻擊參數r2public void attack(playGame role){//輸出一個攻擊的效果Random r=new Random();int index= r.nextInt(attacks_desc.length);String kungFu=attacks_desc[index];//1打別人的人,2挨揍的人System.out.printf(kungFu,this.getName(),role.getName());//計算造成的傷害1~20int hurt=r.nextInt(20)+1;//修改剩余血量  remainBoold(剩余血量)int remainBoold=role.getBlood()-hurt;//當血量為負數時,修整為0remainBoold=remainBoold<0?0:remainBoold;//修改role的血量role.setBlood(remainBoold);//受傷的描述//不做隨機,做判斷(因為傷害越來越重)//判斷條件:血量>90 0索引描述//80~90 1//70~80 2//60~70 3//40~60 4//20~40 5//10~20 6//小于10 7if(remainBoold>90){System.out.printf(injureds_desc[0],role.getName());}else if(remainBoold>80&& remainBoold<=90){System.out.printf(injureds_desc[1],role.getName());}else if(remainBoold>70&& remainBoold<=80){System.out.printf(injureds_desc[2],role.getName());}else if(remainBoold>70&& remainBoold<=80){System.out.printf(injureds_desc[3],role.getName());}else if(remainBoold>60&& remainBoold<=70){System.out.printf(injureds_desc[4],role.getName());}else if(remainBoold>40&& remainBoold<=60){System.out.printf(injureds_desc[5],role.getName());}else if(remainBoold>20&& remainBoold<=40){System.out.printf(injureds_desc[6],role.getName());}else if(remainBoold<10){System.out.printf(injureds_desc[7],role.getName());}System.out.println();}
}

//二創建java文件2,命名為Gametest

package test2;public class GameTest {public static void main(String[] args) {//創建第一個角色playGame r1 = new playGame("喬峰", 100,'男');playGame r2 = new playGame("鳩磨章", 100,'男');r1.showRoleInfo();//展示人物1面板r2.showRoleInfo();//展示人物2面板//開始決斗,回合制while (true){//r1開始攻擊r2r1.attack(r2);//判斷r2的剩余血量if (r2.getBlood() == 0) {System.out.println(r1.getName() + "K.O了" + r2.getName());break;}r2.attack(r1);if(r1.getBlood()==0){System.out.println(r2.getName() + "K.O了" + r1.getName());break;}}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896262.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

halcon三維點云數據處理(二十五)moments_object_model_3d

目錄 一、moments_object_model_3d例程二、moments_object_model_3d函數三、效果圖一、moments_object_model_3d例程 這個例子說明了如何使用moments_object_model_3d運算符來將3D數據與x、y、z坐標軸對齊。在實際應用中,通過3D傳感器獲取的物體模型可能具有一個與物體主軸不…

一周學會Flask3 Python Web開發-flask3上下文全局變量session,g和current_app

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili flask3提供了session,g和current_app上下文全局變量來方便我們操作訪問數據。 以下是一個表格&#xff0c;用于比較Flask中的…

antv G6繪制流程圖

效果圖&#xff08;優點&#xff1a;可以自定義每一條折線的顏色&#xff0c;可以自定義節點的顏色&#xff0c;以及折線的計算樣式等&#xff09;&#xff1a; 代碼&#xff1a; <!-- 流程圖組件 --> <template><div id"container"></div>…

DeepSeek-R1本地部署保姆級教程

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;輕量級模型 ▌DeepSeek-R1-1.5B 內存容量&#xff1a;≥8GB 顯卡需求&#xff1a;支持CPU推理&#xff08;無需獨立GPU&#xff09; 適用場景&#xff1a;本地環境驗證測試/Ollama集成調試 &#xff08;二&a…

2025-spring boot 之多數據源管理

1、是使用Spring提供的AbstractRoutingDataSource抽象類 注入多個數據源。 創建 DataSourceConfig 配置類 通過spring jdbc 提供的帶路由的抽象數據源 AbstractRoutingDataSource import org.springframework.beans.factory.annotation.Autowired; import org.springframew…

keycloak - 開發環境的配置持久化

keycloak - 開發環境的配置持久化 前情提要&#xff1a; Keycloak - docker 運行 & 前端集成 本來是想順便試一下 Okta 集成的&#xff0c;但是發現 Okta 沒有本地的 docker 鏡像&#xff0c;他們畢竟是做 Identity as a service……算了…… 更新后的 docker compose 如…

項目實戰--網頁五子棋(匹配模塊)(4)

上期我們完成了游戲大廳的前端部分內容&#xff0c;今天我們實現后端部分內容 1. 維護在線用戶 在用戶登錄成功后&#xff0c;我們可以維護好用戶的websocket會話&#xff0c;把用戶表示為在線狀態&#xff0c;方便獲取到用戶的websocket會話 package org.ting.j20250110_g…

第4章 4.4 EF Core數據庫遷移 Add-Migration UpDate-Database

4.4.1 數據庫遷移原理 總結一下就是&#xff1a; 1. 數據庫遷移命令的執行&#xff0c;其實就是生成在數據庫執行的腳本代碼&#xff08;兩個文件&#xff1a;數字_遷移名.cs 數字_遷移名.Designer.cs&#xff09;&#xff0c;用于對數據庫進行定義和修飾。 2. 數據庫遷移…

Spring Boot + JSqlParser:全面解析數據隔離最佳實踐

Spring Boot JSqlParser&#xff1a;全面解析數據隔離最佳實踐 在構建多租戶系統或需要進行數據權限控制的應用時&#xff0c;數據隔離是一個至關重要的課題。不同租戶之間的數據隔離不僅能夠確保數據的安全性&#xff0c;還能提高系統的靈活性和可維護性。隨著業務的擴展和需…

51單片機編程學習筆記——點亮LED

大綱 器件51單片機開發板總結 安裝驅動點亮LED燒錄 隨著最近機器人爆火&#xff0c;之前寫的ROS2系列博客《Robot Operating System》也獲得了更多的關注。我決定在機器人領域里再走一步&#xff0c;于是想到可以學習單片機。研究了下學習路徑&#xff0c;最后還是選擇先從51單…

Java String 類

Java String 類常用方法詳解 在 Java 編程里&#xff0c;字符串操作十分常見&#xff0c;而 String 類作為 Java 標準庫的核心類&#xff0c;用于表示不可變的字符序列。任何對字符串的修改操作都會返回一個新的字符串對象&#xff0c;不會改變原始字符串。本文將詳細介紹 Str…

9.【線性代數】—— 線性相關性, 向量空間的基,維數

九 線性相關性&#xff0c; 向量空間的基&#xff0c;維數 Ax0 什么情況下無解(x不為零向量)1. 向量組的線性無關性2.向量組生成一個空間(S)3. 向量空間的一組基&#xff1a;都滿足向量個數相同4. 空間維數 基向量的個數 Ax0 什么情況下無解(x不為零向量) Ax0無解&#xff0c…

藍橋杯單片機組第十二屆省賽第二批次

前言 第十二屆省賽涉及知識點&#xff1a;NE555頻率數據讀取&#xff0c;NE555頻率轉換周期&#xff0c;PCF8591同時測量光敏電阻和電位器的電壓、按鍵長短按判斷。 本試題涉及模塊較少&#xff0c;題目不難&#xff0c;基本上準備充分的都能完整的實現每一個功能&#xff0c;并…

opencv:距離變換 cv2.distanceTransform

函數 cv2.distanceTransform() 用于計算圖像中每一個非零點像素與其最近的零點像素之間的距離&#xff08;Distance Transform&#xff0c; DT算法&#xff09;,輸出的是保存每一個非零點與最近零點的距離信息&#xff1b;圖像上越亮的點&#xff0c;代表了離零點的距離越遠。 …

基于Spring Boot的黨員學習交流平臺設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

自動駕駛兩個傳感器之間的坐標系轉換

有兩種方式可以實現兩個坐標系的轉換。 車身坐標系下一個點p_car&#xff0c;需要轉換到相機坐標系下&#xff0c;旋轉矩陣R_car2Cam&#xff0c;平移矩陣T_car2Cam。點p_car在相機坐標系下記p_cam. 方法1&#xff1a;先旋轉再平移 p_cam T_car2Cam * p_car T_car2Cam 需要注…

k8s ssl 漏洞修復

針對Kubernetes集群中SSL/TLS協議信息泄露漏洞&#xff08;CVE-2016-2183&#xff09;的修復&#xff0c;需重點修改涉及弱加密算法的組件配置。以下是具體修復步驟及驗證方法&#xff1a; 一、漏洞修復步驟 1. 修復etcd服務 修改配置文件 &#xff1a; 編輯 /etc/kubernetes/…

數字IC后端培訓教程| 芯片后端實戰項目中base layer drc violation解析

今天分享一個咱們社區IC后端訓練營學員遇到的一個經典DRC案例。這個DRC Violation的名字為PP.S.9(這里的PP就是Plus P)。這一層是屬于管子的base layer。更多關于base layer的介紹&#xff0c;可以查看下面這份教程。 https://alidocs.dingtalk.com/api/doc/transit?spaceId5…

從零到一學習c++(基礎篇--筑基期十一-類)

從零到一學習C&#xff08;基礎篇&#xff09; 作者&#xff1a;羨魚肘子 溫馨提示1&#xff1a;本篇是記錄我的學習經歷&#xff0c;會有不少片面的認知&#xff0c;萬分期待您的指正。 溫馨提示2&#xff1a;本篇會盡量用更加通俗的語言介紹c的基礎&#xff0c;用通俗的語言去…

DeepSeek技術全景解析:架構創新與行業差異化競爭力

一、DeepSeek技術體系的核心突破 架構設計&#xff1a;效率與性能的雙重革新 Multi-head Latent Attention (MLA)&#xff1a;通過將注意力頭維度與隱藏層解耦&#xff0c;實現顯存占用降低30%的同時支持4096超長上下文窗口。深度優化的MoE架構&#xff1a;結合256個路由專家…