From ac6bf26527c3f38a47687c02b8211e8426426c44 Mon Sep 17 00:00:00 2001
From: ccc007 <1492949083@qq.com>
Date: Mon, 15 May 2023 22:38:38 +0800
Subject: [PATCH] 1.0
---
.idea/.gitignore | 8 +
.idea/misc.xml | 6 +
.idea/modules.xml | 8 +
.idea/vcs.xml | 6 +
Genshin.iml | 11 +
out/production/Genshin/Bot.class | Bin 0 -> 407 bytes
.../Genshin/Character$Element.class | Bin 0 -> 1338 bytes
out/production/Genshin/Character.class | Bin 0 -> 5180 bytes
out/production/Genshin/Game.class | Bin 0 -> 7452 bytes
out/production/Genshin/M_leiyingshushi.class | Bin 0 -> 1119 bytes
out/production/Genshin/M_qqr.class | Bin 0 -> 1849 bytes
out/production/Genshin/P_Diluc.class | Bin 0 -> 1296 bytes
out/production/Genshin/P_babatuosi.class | Bin 0 -> 1292 bytes
out/production/Genshin/P_hutao.class | Bin 0 -> 1914 bytes
out/production/Genshin/P_kong.class | Bin 0 -> 1086 bytes
out/production/Genshin/P_ying.class | Bin 0 -> 1086 bytes
out/production/Genshin/Start.class | Bin 0 -> 1669 bytes
src/Bot.java | 5 +
src/Character.java | 221 +++++++++++
src/Game.java | 346 ++++++++++++++++++
src/M_leiyingshushi.java | 30 ++
src/M_qqr.java | 33 ++
src/P_Diluc.java | 70 ++++
src/P_babatuosi.java | 58 +++
src/P_hutao.java | 68 ++++
src/P_kong.java | 31 ++
src/P_ying.java | 28 ++
src/Start.java | 47 +++
28 files changed, 976 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
create mode 100644 Genshin.iml
create mode 100644 out/production/Genshin/Bot.class
create mode 100644 out/production/Genshin/Character$Element.class
create mode 100644 out/production/Genshin/Character.class
create mode 100644 out/production/Genshin/Game.class
create mode 100644 out/production/Genshin/M_leiyingshushi.class
create mode 100644 out/production/Genshin/M_qqr.class
create mode 100644 out/production/Genshin/P_Diluc.class
create mode 100644 out/production/Genshin/P_babatuosi.class
create mode 100644 out/production/Genshin/P_hutao.class
create mode 100644 out/production/Genshin/P_kong.class
create mode 100644 out/production/Genshin/P_ying.class
create mode 100644 out/production/Genshin/Start.class
create mode 100644 src/Bot.java
create mode 100644 src/Character.java
create mode 100644 src/Game.java
create mode 100644 src/M_leiyingshushi.java
create mode 100644 src/M_qqr.java
create mode 100644 src/P_Diluc.java
create mode 100644 src/P_babatuosi.java
create mode 100644 src/P_hutao.java
create mode 100644 src/P_kong.java
create mode 100644 src/P_ying.java
create mode 100644 src/Start.java
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..a818314
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..cd9e9ef
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Genshin.iml b/Genshin.iml
new file mode 100644
index 0000000..c90834f
--- /dev/null
+++ b/Genshin.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/out/production/Genshin/Bot.class b/out/production/Genshin/Bot.class
new file mode 100644
index 0000000000000000000000000000000000000000..63b1fc72952e258270b66acb29fc5e9ce756eb14
GIT binary patch
literal 407
zcmZusO;5r=5Pd@n3$+RqzfdnG9>5s+0aaoonvgVJAb4J218d4Q*%p6{|3WV&9{d6P
zDB~1~7oEeKnKy4|=dHdzJ^@_gq>KVV3{{%lCYckytWZG_B>~~1j0&ONn@cMvnX+eh
zv05mT5$KW7i2e*h4_ojBwteiNN~ruQ2&F4+bk-$Yw4x{ZEIY9@v(6y1+RVZ}$3N@Z
zBY`@>;ma6X?GeH4B~wMHM%t){y3}f+(5DcqFaP`wi)4bDa{35pM_y-XK}p
ziMrSMgEDiM`6UFuZ;Z0NSf;6Bx!Cx`DQave54Oyf0>%b+T?np#+Ic{MM~Qd
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/Character$Element.class b/out/production/Genshin/Character$Element.class
new file mode 100644
index 0000000000000000000000000000000000000000..872b10aa2e35afea8ccab36523268c8544dad937
GIT binary patch
literal 1338
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
M(1Uw<^h#INUz&XyUjP6A
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/Game.class b/out/production/Genshin/Game.class
new file mode 100644
index 0000000000000000000000000000000000000000..633ef40dcf1c92b765886e82c057638c0a2422f4
GIT binary patch
literal 7452
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
F{{$oyzM}vD
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/M_leiyingshushi.class b/out/production/Genshin/M_leiyingshushi.class
new file mode 100644
index 0000000000000000000000000000000000000000..09a4ab0e313df3fae476f8393f68a8875513433d
GIT binary patch
literal 1119
zcmbW0&2AD=6vzJ;C||whTWqzaYN`S%X#J{ETUw|}g598Ob-)ouh9Q|5O!NiV85iB@
z&TfoGqlu8%#0T&J+`FLaOBl}uQV?h5UEG^{&iVh&nRD)Z{r&k1fa}xPrT+1q(dVQ#nw-XGha_WE8AyqI=@bIicU5X{yjU8AjujqBkEN6<6U|REc#F-JUXgDoLL8a!C&eqFCgn9v*0ZW)7&2j8!#7CNn5B;q%K`dW
zq-kHFTa8{XqcfQZv5-A96>B66g;6Mil={VBC0v*RYSo}Z=8~r{&
z6jQW2iSEJz+%!xNjl+vovho2LYsk=zi75`VE|WrJ^(DGE)lPJ9+Fz+ZdrOu9b>Iz*
vQGELpnxX|IB`8Z)l&B?zW@ASASD#shD+()xw}x@np|oMZD|`8GlGrRyN*4e@P<;U
zR3!?E6e*FSG*O!>FYQA^3)Ce20sS4U;l1xwzp*!tBcn*IZH;HX@0)Y>J7;G9`X~D*
zfMeh)Dj2G^H*d*bHmkzR;LBb8DYvqw!bho{dz(9V*PJ^yRj8EO-B{cG_WLUMQLRAJ
zP=i{AhVY!8*5iVwJBLi3fvP8&_dNe2qXlO(e;TJ0i{HS3W;yA-}cl4sZ
zp!b=&HQN^xX~UWg{l7?rK6^Yw&$u7W*stIP4J~+)p>p)XrAuiBb(V`!{qjhP!PDIn
zsiLX_8eYOdDoGaNEF$-|Yv{;tqzxk}8F^VlCk|6xMn)LC-I1R0D!hVj1w9&qc$J~P
zq^-q_;7Ovf=Si)7h4u`)?;Le2sAsMxLjm&Wh=yMDG3-z32_CksxGp9PF-NnE&@GXn
zy+l;5jvoVfUBRG+H}ED|k!OAupFv4UHq(+IZZO<^Q;!3%k*$8ilOWXeYhoe~M(iN6Q)ADIhlcwcJeBdsW>Vwj$=cnF=<
z>pLq~wzJ=Ks2E{rE+%rn{OD|MQko8EN8X`v(m8C;aE7|5VevEb$!VS*)2B^}1fq6a
zH^=p~A=hruE9MN+Oo`?V4>4#dJ(DpOcuaQ3P!p5=jp`}4-XF8)({Vm*NJM{rQ?Hbg
zygY5&A|ujzYLtsPdnQxo!zX@>V?x2F(zMSQI-mM&SPOQ7yQjI}<1k$rJH5zot5kfq
zumC!uTQerlbVhAEF`s(=C3t4z*kX$BQ9fDX^4aN&JT5||XUByI>!ukq1P`g0WEd*y
z@7%t(y_wB@x3v598i7ObNkW#j&^5x)w#AsuC-1M4kTIYWPft!${#y7
z?mE{WJ4=sLd|3|V+<%Z;x&2?E$h3%M@pRZE>$r5&ed{P7Uk;aPzL%5=;tU6$UrOh*
zpgUdlW;*PkQxEwvpwUb7Mnq`*kXGmEeJFEn!2k<*0+j)!!LwU`S@k?b)duQ*x<|;H}CzH#qe(0hJQUD_f02MD>(#ph!qJ*(IEE344o#N-3XWX7TP5y7zo}
zI>jtw3!siPYDZHETW^u=Y>`cn2vWWNC*4(=Kj46*KDOM1lZk8VI8B`fhN!;>sFu?Y
zXzG#OdGc~f89{II8p3R)Zx^}Li?$NpewX(g)p=3TrO?jvG_SzNh|zy7&Bo{{KF^O|
V;46v+C?*xVaIytcn8plR{sm}k_*DP^
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/P_Diluc.class b/out/production/Genshin/P_Diluc.class
new file mode 100644
index 0000000000000000000000000000000000000000..1258da3c6e4d45b2f6dc66feaa902cd02b32d4ba
GIT binary patch
literal 1296
zcmbVL&rcIU6#jGGC{U1UAsUp#lP=2!R<>KyZasLyAaF2n
z;~)nQ#>7O?M52YL(Yts50~<*EAB=Cd3smjNNp@yu-uK@3z4vCm{rdO?KtCp3C}D8#
ze|?o(d!Ac<;)0!l@4a2jt!@0+UCgb1a=}3-xfd_@msWD07jrAyF1W5+l!T%i3~Zbs5dX&z_MiejC;S`%RFaZI1cReb
z)m3AFVI~;ACq0nbHA$aqpE6RaJ{SJKlNgO6B3h>1s78$wwH$Rg&fvU$C#q^0nRL(6
z7jq1LZ`i%@bGgw&xCV|!oMfm>E5>9pm5{U{!;s{K;iR5PGuVUCmT5`6^iS$Du5f#JLECC5i%ze+Kufn*rl0k#!sGQVie@ua_$fc2owRho
zN6~}mDq!xmn8!^#3lb$=2}{BtT&4uUcu6q!dF4Fef^0J6^UUiE7euW(%qMmjY|P51
uHlN7dd?IGpL9bjG&qMVC^}<8?k7`tF#Vo;9vXW*uJuGt#N@N?sQ?;
zpbHd5jTX>E_x=QTCV&wCfGgv^xiD-dfy!_0SA6x2!C2x2?s!^~V-iQEGx9
zpbX^h*f@hT_|JpSiVE0Ga0qb1#bC*Mkfc6ERkQ(yNK5dx
zv>>&|Bz3wyq$Lz}+V_8!0R4)H@P;j@LbVAs0%}pmPra0(v>zN$|gwa@;uqK8`C-9a6`k{Q?F!w2Gib
zv}YuSsXG4nl+0iYDylr0nv2MZYf>ae7Dq51m11Ejq40aosMlr`Drs4;peH^`eqKr@
zl?6E?k)A`m{FkKp9LgGsrxH5GEjpM(=P)=-c7w}~M-@G~cd%^0Ch9(*Qgop{jRxA>X&j@i
zIgOUL1S`QXt#vTc>O>7}Xn+eIRHBsvccB_1^de+Kz>iV7G2ZQ5_+CQt@a5tLS|5mM
zwA-SyOKW7wGG|{K3s}nYEY$5HEZv;tbTJlBQ5Ncbj%7Hf#VHzj${RS#srn96SxFdZ
zq79VbL2AytsIffVtsI?Oe2>ay)QdN0*H2}sGr4A|bv#>Lrj8Ei>D&Pm4ZNMI*My#e
dAnsg{@r*xfA|(@aEWvpMXy<+8^L$~b_753}7Fi@r!1*&jtL2PX)w}Emg69!sKi??d$FdTeD%RMjfp@L|AH~DJu|?N^5i6QzVq#G?Y-CDYoG6z
ze}7s9(2ckY76pzc*Y2+0z2<^VfoE;?gN;wW+F1Pjua$-MJKwGUc*_Nc0`Vk`wwdIdC?%yGj7&l5#>V&GI4CM+c`=|Ac9x;tf<6y!_8YxqOGNhm?^wdFT
z3HG4U36F{@con#}5G2+WOU29{1(Qvo8U3=}n$T0x)^RfvOGP{XpC!oOE+m>K-0-2s
ziCPtVQK!Ip_R{pcsi(<%j{jf@kN2tAj{^!^QNtY7uME#Bur@UZ#q${z&x)HpDR!|m
zsAv?6<=r_);CEZ?C+5nG1Zh&y3{8P|&M?Q)nWUcRGfh1bKb20+Gn1`ppm{=YhgBRA
zTorNS@mQi5=IC{G&wl+|Nw)yoRJx@=se9@S?Hz|y&GWhu|BJ~tP;
zY~est;aqWz@Y9hk3uWpdYOmVei5`$txc&aFw3eVQsAPknlTO
zv{!Ru3e0S#7upTXU;icciKg|ou#6&)JG^);lEoW~oZ+Gx+XVatv`t8qko@@W>YZzF
zUh?NSroah`-A+Cyc?)--kD`zA4m?NUFQNz2=q)N{rl=SjEJr#hRg^I-#KpMECngux
IOz+j@+XYt#sDaa^cRQb-{8(A@BY>a}QsMwY
z0+DPhk$ofH+6elAfL$HQy-{9
zhH4gv7Hms5i|PNX%+YcXkzDjne0}uo`rG*90D92t!y$>oI6@k3+%8wmqCmW++4EJa
zq8gL7trp5tRkL0b@Fb=QoN?W4E(RZ!IL62r0T#--(cbUPDC=JWWA|Tj;|YnA+}K5p
zw+vgasJ7O|&Bi1ol1P!+X4}a$r9^U$8O}(Y#UN=bI%=b~X=XVmah_R%wcm0Weo^8Q
z!(#;hTPfqNNL*!HsQ!mKhK@*FV`vva9ke$kE|NRh>K#oWoYPHhzFx^|)=f2UP$inH
z7F1(VwRFz+iXOY9lch?o<#}2luu!dA1#MPmOt4iRW+3qeUXlb5v+8MxIe(Zfp990gAH_3=xd;#!tn+M
z-V?$_e+STo4%)rM?n6Hm8l9ia4`7_Cvc-%EWGE9nv%OP?3Bjj^QX4q+G}XZAaG|{V
zhAJ)A*4s!MOK6{kX6C>$#4Hz_Sh^iqXo3zbmzibQiKWkh#f8bH;wfY)vX6W{rZc_2
E0M5Da1^@s6
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/P_ying.class b/out/production/Genshin/P_ying.class
new file mode 100644
index 0000000000000000000000000000000000000000..aaad635f9c431098e21ea40b10e5c23de281da26
GIT binary patch
literal 1086
zcmbVLO-~b16g{t$&UART^n(hhK@DoD+WIY6J_-d4NkdFfwq~d!j7+CyIyHW5gpF|l
ziSZW@jBboZ7bP)9_Wl7kZd^d=G;49e}4J`Uy
zD{oZz1?1M}<@)mL`pc#I`l^b6K#(4`YinE2U#L(ifv-#Nw>O{etgHp0p-q95IDn8q
zB)_0LdeJqU-U-Vn8MZ4RCIw=Je_muYv?HP*DiK4Rs_bV71O`ppbcY4zl7)Nv13hEu
z_Izf>bxeCc`+t!sS{@?$W&!QH#$A!P%D7PV4|NP3khsRs1VKHt?@F8{ck<;shCsMr+QxLXG-o(B^*M_o(L%YX
zTeG@j@_jGpcNa{uR4p_-&kATW<*HLOCQZh)HNt5g1+rwywhbq5>6MB>AZ2gR$oo!`
z&dU$_G-PQXq}u|GsGu{Qii&7Uv^A-q&g
Cdhh7~
literal 0
HcmV?d00001
diff --git a/out/production/Genshin/Start.class b/out/production/Genshin/Start.class
new file mode 100644
index 0000000000000000000000000000000000000000..0a24e5d047e2b23bb428dee203ff499af0c2d7aa
GIT binary patch
literal 1669
zcmZ`(ZF3V<6n<`+bkpr3Z3=~&QW}t&w2)BhYXhQCz-U@3snJs3wqYrY$tI>72EHhc
zf>oepe4BzJDl;W?)M;UyB$ERALB8-0{LUunUvS2kb2llZh%?!HbI(2JJkNRVx%bZB
z`C9;X;E)IlY6Ms%*ig&Ra8y1f`=YWo=G#AdREg*ewcAxq)t_UiaeKl7>jQ%YB(
zzEDKgG$mOF5%mHj2`li(vMiw!Yy2^#(e=Tk$QYB~
z6=yEFM6}>h0Zs|6SjW(`M5!tZgOK1kqnvYvk*NtWR<$v|Cv3-hhPH06aqg?T`F!E(
z55|qD_V#UFW9sa^wH+>omc^5w7S7Dxz4?9V%7?|t+2X~I%ig`5$3_W{aS}EYjtkKt
z;c>W$fTkSR0~*yyvIp$wByA{3C0qVQb(61p1K?AXuXCFJhq$c2w)i#IRwlQHp)8z+tQ8JEjsKw!J$
zhZKgDK~+-*Qn67bIV6up$>IpcBXTq>Csn?#7_Isdl@t?#CRIO$kJ0IomO(B6tu5n8
z9(wm1S`+0ze0v6CUoW+)bEg5*Zt-BoD(`#+9I-btp*$b#mqc8o>AAEP`@`xAyKf+Oo
z=%a|v9QLNsU}6qb*4K#6M*M;-f>ah4;TYD@XhS{8(L^`V2|Ia+aFeBvp41>#k|Ygy
z9gTPg4jd-01igjhXr|Z}yiXCQ={ft1@_ddqOk+JRqa8EYfUDSqd2|q77a_Wlg9pE%
z6Tic2ihh8whRFX_go({zLVJyHtdwubHhs_L##s#GAW52|!y3UGrntB9Cf*|c^~mFG
h;>RG {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].normalAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].normalAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getNormalAttackName();
+ }
+ case 2 -> {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].skillAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].skillAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getSkillAttackName();
+ }
+ case 3 -> {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].ultimateAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].ultimateAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getUltimateAttackName();
+ }
+ default -> {
+ System.out.println("输入错误,请重新输入");
+ continue;
+ }
+ }
+
+
+ // 减去敌人生命值
+ int dHp = enemies[enemyIndex].getHp() - pgj; // d - p
+ enemies[enemyIndex].setHp(dHp);
+ if (pgj == 0) {
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "使用了" + "\033[1;31m" + P_attackName + "\033[0m" + "没有造成伤害,或许是加被动了");
+ } else{
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "使用了" + "\033[1;31m" + P_attackName + "\033[0m" + "对" + "\033[33m" + game.EnemyName + "\033[0m" + "造成了" + "\033[1;31m" + pgj + "\033[0m" + "点伤害"+ " " + "\033[33m" + game.EnemyName + "\033[0m" + "还剩" + "\033[1;31m" + dHp + "\033[0m" + "点血量");
+ }
+
+ // 判断敌人是否死亡
+ if (enemies[enemyIndex].getHp() <= 0) {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "死亡");
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "获得胜利");
+ break;
+ }
+
+
+ // 敌人使用被动
+ enemies[enemyIndex].passiveSkill();
+ //随机选择敌方技能
+ int s = (int) (Math.random() * 3);
+ int dgj = 0;
+ String D_attackName = null;
+ switch (s) {
+ case 0 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].normalAttack()) {
+ dgj = 0;
+ } else{
+ dgj += enemies[enemyIndex].normalAttack() - players[playerIndex].getDef();//意思是敌人的攻击力减去玩家的防御力
+ }
+ D_attackName = enemies[enemyIndex].getNormalAttackName();
+ }
+ case 1 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].skillAttack()) {
+ dgj = 0;
+ } else{
+ dgj += enemies[enemyIndex].skillAttack() - players[playerIndex].getDef();
+ }
+ D_attackName = enemies[enemyIndex].getSkillAttackName();
+ }
+ case 2 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].ultimateAttack()) {
+ dgj = 0;
+ } else{
+ dgj += enemies[enemyIndex].ultimateAttack() - players[playerIndex].getDef();
+ }
+ D_attackName = enemies[enemyIndex].getUltimateAttackName();
+ }
+ }
+ // 减去玩家生命值
+ int pHp = players[playerIndex].getHp() - dgj; // p - d
+ players[playerIndex].setHp(pHp);
+ if (dgj == 0) {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "使用了" + "\033[1;31m" + D_attackName + "\033[0m" + "没有造成伤害,或许是加被动了");
+ } else {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "使用了" + "\033[1;31m" + D_attackName + "\033[0m" + "对" + "\033[32m" + game.PlayerName + "\033[0m" + "造成了" + "\033[1;31m" + dgj + "\033[0m" + "点伤害" + " " + "\033[32m" + game.PlayerName + "\033[0m" + "还剩" + "\033[1;31m" + pHp + "\033[0m" + "点血量");
+ }
+
+ // 判断玩家是否死亡
+ if (players[playerIndex].getHp() <= 0) {
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "死亡");
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "获得胜利");
+ break;
+ }
+ }
+ }
+
+ //pvp模式
+ public void PVPGameStart() {
+ Scanner sc = new Scanner(System.in);
+ for (int i = 0; i < players.length; i++) {
+ System.out.println(i + ". " + players[i].getName());
+ }
+ System.out.print("请选择你的角色:");
+ int playerIndex = sc.nextInt();
+
+
+ for (int i = 0; i < enemies.length; i++) {
+ System.out.println(i + ". " + enemies[i].getName());
+ }
+
+
+ System.out.print("请选择对手:");
+ int enemyIndex = sc.nextInt();
+
+ PlayerName = players[playerIndex].getName();
+ EnemyName = enemies[enemyIndex].getName();
+
+ Game game = new Game(PlayerName, EnemyName);
+
+ System.out.println("你选择了" + game.PlayerName + "作为你的角色");
+ System.out.println("你的对手是" + game.EnemyName);
+
+
+
+
+ // 游戏循环
+ while (true) {
+
+ System.out.println("--------------------------------------------------");
+ // 显示p1与p2当前生命值
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "血量:" + players[playerIndex].getHp() + " " + "\033[33m" + game.EnemyName + "\033[0m" + "血量:" + enemies[enemyIndex].getHp());
+ System.out.println();
+ System.out.println();
+ // 选择技能 以白色 绿色 黄色排序
+ System.out.print("\033[32m" + game.PlayerName + "\033[0m" + "请选择技能:");
+ System.out.print("\033[0m" + "1."+ players[playerIndex].getNormalAttackName() + "\033[0m" + " " + "\033[1;32m" + "2."+ players[playerIndex].getSkillAttackName() + "\033[0m" + " " + "\033[1;33m" + "3."+ players[playerIndex].getUltimateAttackName() + "\033[0m" + " ");
+ // 读取p1输入
+ int p1 = sc.nextInt();
+
+ // 根据选择调用技能方法计算伤害
+ int pgj = 0;
+ String P_attackName;
+ //p1使用被动
+ pgj = pgj + players[playerIndex].passiveSkill();
+ switch (p1) {
+ case 1 -> {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].normalAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].normalAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getNormalAttackName();
+ }
+ case 2 -> {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].skillAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].skillAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getSkillAttackName();
+ }
+ case 3 -> {
+ if (enemies[enemyIndex].getDef() > players[playerIndex].ultimateAttack()) {
+ pgj = 0;
+ } else {
+ pgj += players[playerIndex].ultimateAttack() - enemies[enemyIndex].getDef();
+ }
+ P_attackName = players[playerIndex].getUltimateAttackName();
+ }
+ default -> {
+ System.out.println("输入错误,请重新输入");
+ continue;
+ }
+ }
+
+
+ // 减去敌人生命值
+ int dHp = enemies[enemyIndex].getHp() - pgj; // d - p
+ enemies[enemyIndex].setHp(dHp);
+ if (pgj == 0) {
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "使用了" + "\033[1;31m" + P_attackName + "\033[0m" + "没有造成伤害,或许是加被动了");
+ } else {
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "使用了" + "\033[1;31m" + P_attackName + "\033[0m" + "对" + "\033[33m" + game.EnemyName + "\033[0m" + "造成了" + "\033[1;31m" + pgj + "\033[0m" + "点伤害" + " " + "\033[33m" + game.EnemyName + "\033[0m" + "还剩" + "\033[1;31m" + dHp + "\033[0m" + "点血量");
+ }
+
+ // 判断敌人是否死亡
+ if (enemies[enemyIndex].getHp() <= 0) {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "死亡");
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "获得胜利");
+ break;
+ }
+
+ System.out.println("--------------------------------------------------");
+ // 显示p1与p2当前生命值
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "血量:" + players[playerIndex].getHp() + " " + "\033[33m" + game.EnemyName + "\033[0m" + "血量:" + enemies[enemyIndex].getHp());
+ System.out.println();
+ System.out.println();
+ // 选择技能 以白色 绿色 黄色排序
+ System.out.print("\033[33m" + game.EnemyName + "\033[0m" + "请选择技能:");
+ System.out.print("\033[0m" + "1."+ enemies[enemyIndex].getNormalAttackName() + "\033[0m" + " " + "\033[1;32m" + "2."+ enemies[enemyIndex].getSkillAttackName() + "\033[0m" + " " + "\033[1;33m" + "3."+ enemies[enemyIndex].getUltimateAttackName() + "\033[0m" + " ");
+
+
+
+ // p2使用被动
+ enemies[enemyIndex].passiveSkill();
+ //读取p2输入
+ int p2 = sc.nextInt();
+ int dgj;
+ String D_attackName;
+ switch (p2) {
+ case 1 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].normalAttack()) {
+ dgj = 0;
+ } else {
+ dgj = enemies[enemyIndex].normalAttack() - players[playerIndex].getDef();
+ }
+ D_attackName = enemies[enemyIndex].getNormalAttackName();
+ }
+ case 2 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].skillAttack()) {
+ dgj = 0;
+ } else {
+ dgj = enemies[enemyIndex].skillAttack() - players[playerIndex].getDef();
+ }
+ D_attackName = enemies[enemyIndex].getSkillAttackName();
+ }
+ case 3 -> {
+ if (players[playerIndex].getDef() > enemies[enemyIndex].ultimateAttack()) {
+ dgj = 0;
+ } else {
+ dgj = enemies[enemyIndex].ultimateAttack() - players[playerIndex].getDef();
+ }
+ D_attackName = enemies[enemyIndex].getUltimateAttackName();
+ }
+ default -> {
+ System.out.println("输入错误,请重新输入");
+ continue;
+ }
+ }
+ // 减去玩家生命值
+ int pHp = players[playerIndex].getHp() - dgj; // p - d
+ players[playerIndex].setHp(pHp);
+ if (dgj == 0) {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "使用了" + "\033[1;31m" + D_attackName + "\033[0m" + "没有造成伤害,或许是加被动了");
+ } else {
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "使用了" + "\033[1;31m" + D_attackName + "\033[0m" + "对" + "\033[32m" + game.PlayerName + "\033[0m" + "造成了" + "\033[1;31m" + dgj + "\033[0m" + "点伤害" + " " + "\033[32m" + game.PlayerName + "\033[0m" + "还剩" + "\033[1;31m" + pHp + "\033[0m" + "点血量");
+ }
+
+ // 判断玩家是否死亡
+ if (players[playerIndex].getHp() <= 0) {
+ System.out.println("\033[32m" + game.PlayerName + "\033[0m" + "死亡");
+ System.out.println("\033[33m" + game.EnemyName + "\033[0m" + "获得胜利");
+ break;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/M_leiyingshushi.java b/src/M_leiyingshushi.java
new file mode 100644
index 0000000..40ddfb4
--- /dev/null
+++ b/src/M_leiyingshushi.java
@@ -0,0 +1,30 @@
+public class M_leiyingshushi extends Character {
+
+
+ public M_leiyingshushi() {
+ // 构造方法:为新增属性赋初值
+ super("雷萤术士","雷萤攻击","天雷","雷电攻击", 1120, 135, 50, 0,Element.L);
+ setNormalAttackBonus(0.35);
+ setSkillAttackBonus(2.8);
+ setUltimateAttackBonus(3.66);
+ }
+
+
+
+ @Override
+ public int normalAttack() {
+ return (int) (super.normalAttack()*(this.getNormalAttackBonus()+1));
+ }
+
+
+ @Override
+ public int skillAttack() {
+ return (int) (super.skillAttack()*(this.getSkillAttackBonus()+1));
+ }
+
+
+ @Override
+ public int ultimateAttack() {
+ return (int) (super.ultimateAttack()*(this.getUltimateAttackBonus()+1));
+ }
+}
\ No newline at end of file
diff --git a/src/M_qqr.java b/src/M_qqr.java
new file mode 100644
index 0000000..74e500c
--- /dev/null
+++ b/src/M_qqr.java
@@ -0,0 +1,33 @@
+public class M_qqr extends Character{
+ public M_qqr(){
+ super("丘丘人", "挥拳", "砸石块", "跳舞",1000, 120, 5, 0, Element.W);
+ }
+ int maxHp = this.getMaxHp();
+
+ @Override
+ public int skillAttack() {
+ // 重写技能攻击方法
+ this.setHp(this.getHp() - maxHp/8);
+ System.out.println("丘丘人因为技能攻击而受伤! 减去了" + "\033[31m" + maxHp/8 + "\033[0m" + "点生命值");
+ return super.skillAttack()*2 + maxHp/8;
+ }
+
+ @Override
+ public int ultimateAttack() {
+ // 重写大招攻击方法
+ this.setHp(this.getHp() - maxHp/4);
+ System.out.println("丘丘人因为大招攻击而受伤! 减去了" + "\033[31m" + maxHp/4 + "\033[0m" + "点生命值");
+ return super.ultimateAttack()*3 + maxHp/4;
+ }
+
+ @Override
+ public int passiveSkill(){
+ if (this.getHp() < maxHp/2){
+ setAtk((int) (getAtk()*1.2));
+ System.out.println("丘丘人发狂了!");
+ }else {
+ System.out.println("丘丘人正常发挥!");
+ }
+ return 0;
+ }
+}
diff --git a/src/P_Diluc.java b/src/P_Diluc.java
new file mode 100644
index 0000000..c2341dd
--- /dev/null
+++ b/src/P_Diluc.java
@@ -0,0 +1,70 @@
+public class P_Diluc extends Character {
+ /**
+ * 构造方法:为新增属性赋初值
+ * 初始化迪卢克的各项属性,调用父类Character的构造方法
+ * 依次为:
+ * name 角色名称
+ * normalAttackName 普通攻击名称
+ * skillAttackName 技能攻击名称
+ * ultimateAttackName 大招攻击名称
+ * hp 生命值
+ * atk 物理攻击力
+ * def 物理防御力
+ * em 元素精通
+ */
+
+ int d = 0;
+ public P_Diluc() {
+ // 构造方法:为新增属性赋初值
+
+ super("迪卢克","简单一击","大胆开冲","冲的火热", 1600, 149, 61, 0, Element.H);
+
+ setNormalAttackBonus(0.33);
+ setSkillAttackBonus(2.2);
+ setUltimateAttackBonus(3.4);
+ setElementalDmgBonus(0);
+ }
+
+
+
+ /**
+ * 重写普通攻击方法
+ * 普通攻击伤害
+ * this.getHp()是获取当前生命值
+ * this.getHp()/4是当前生命值的1/4
+ * super.normalAttack()是普通攻击的伤害
+ * this.getHp()/4+super.normalAttack()是普通攻击的伤害+当前生命值的1/4
+ * this.setHp是设置当前生命值
+ * this.setHp(this.getHp()-this.getHp()/4-super.normalAttack())是当前生命值-当前生命值的1/4-普通攻击的伤害
+ * this.getatk()是获取物理攻击力
+ * this.getdef()是获取物理防御力
+ * this.setatk是设置物理攻击力
+ * this.setdef是设置物理防御力
+ * 以此类推
+ */
+ @Override
+ public int normalAttack() {
+ if (d>0){
+ d-=1;
+ return (int) (super.normalAttack()*(getNormalAttackBonus()+1)*(getElementalDmgBonus()+1+1));
+ }
+ return (int) (super.normalAttack()*(getNormalAttackBonus()+1));
+ }
+
+ /**
+ * 重写技能攻击方法
+ */
+ @Override
+ public int skillAttack() {
+ return (int) (super.skillAttack()+(getSkillAttackBonus()+1)*(getElementalDmgBonus()+1));
+ }
+
+ /**
+ * 重写大招攻击方法
+ */
+ @Override
+ public int ultimateAttack() {
+ d +=1;
+ return (int) (super.skillAttack()+(getUltimateAttackBonus()+1));
+ }
+}
\ No newline at end of file
diff --git a/src/P_babatuosi.java b/src/P_babatuosi.java
new file mode 100644
index 0000000..5c9a25f
--- /dev/null
+++ b/src/P_babatuosi.java
@@ -0,0 +1,58 @@
+public class P_babatuosi extends Character {
+ /**
+ * 构造方法:为新增属性赋初值
+ * 初始化迪卢克的各项属性,调用父类Character的构造方法
+ * 依次为:
+ * name 角色名称
+ * normalAttackName 普通攻击名称
+ * skillAttackName 技能攻击名称
+ * ultimateAttackName 大招攻击名称
+ * hp 生命值
+ * atk 物理攻击力
+ * def 物理防御力
+ * em 元素精通
+ */
+ int i = 0;
+
+ public P_babatuosi() {
+ // 构造方法:为新增属性赋初值00
+ super("温迪","神代射术","高天之歌","风神之诗", 1300, 144, 52, 0,Element.F);
+ setNormalAttackBonus(0.408);
+ setSkillAttackBonus(2.76);
+ setUltimateAttackBonus(1.52);
+ }
+
+
+
+
+ @Override
+ public int normalAttack() {
+ return (int) (super.normalAttack()*(this.getNormalAttackBonus()+1));
+ }
+
+
+ @Override
+ public int skillAttack() {
+ return (int) (super.skillAttack()*(this.getSkillAttackBonus()+1));
+ }
+
+
+ @Override
+ public int ultimateAttack() {
+ i = 3;
+ return (int) (super.ultimateAttack()*(this.getUltimateAttackBonus()+1));
+ }
+
+ @Override
+ public int passiveSkill() {
+ if (i>0){
+ i -= 1;
+ return (int) (super.normalAttack()*(this.getUltimateAttackBonus()+1));
+ }else {
+ return 0;
+ }
+ }
+
+
+
+}
diff --git a/src/P_hutao.java b/src/P_hutao.java
new file mode 100644
index 0000000..c020d8b
--- /dev/null
+++ b/src/P_hutao.java
@@ -0,0 +1,68 @@
+public class P_hutao extends Character {
+
+
+ public P_hutao() {
+ // 构造方法:为新增属性赋初值
+ super("胡桃","往生秘传枪法","蝶引来生","安神秘法", 1211, 132, 68, 0,Element.F);
+ setNormalAttackBonus(0.469);
+ setSkillAttackBonus(0);
+ setUltimateAttackBonus(3.03);
+ }
+
+
+ int s = 0;
+ int maxHp = this.getMaxHp();
+
+ @Override
+ public int normalAttack() {
+ int nre = (int) (super.normalAttack()*(this.getNormalAttackBonus()+1)*(getElementalDmgBonus()+1));
+ if (s==2) {
+ setAtk((int) (getAtk()+this.getMaxHp()*0.036));
+ s-=1;
+ return nre;
+ }else if (s==1){
+ s-=1;
+ nre = (int) (super.normalAttack()*(this.getNormalAttackBonus()+1)*(getElementalDmgBonus()+1));
+ setAtk((int) (getAtk()-this.getMaxHp()*0.036));
+ return nre;
+ }
+ return nre;
+ }
+
+ @Override
+ public int skillAttack() {
+ s=2;
+ setHp((int) (getHp() - (getHp()*0.3)));
+ return 0;
+ }
+
+ @Override
+ public int ultimateAttack() {
+ if (this.getHp() < maxHp/2){
+ setHp((int) (getHp()+(maxHp*0.08)));
+ }else {
+ setHp((int) (getHp()+(maxHp*0.06)));
+ }
+ if (getHp()>maxHp){
+ setHp(maxHp);
+ }
+ return (int) (super.ultimateAttack()*(this.getUltimateAttackBonus()+1)*(getElementalDmgBonus()+1));
+ }
+
+ int ys = 0;
+ @Override
+ public int passiveSkill(){
+ if (this.getHp() < maxHp/2 && ys == 0){
+ ys+=1;
+ setElementalDmgBonus(getElementalDmgBonus()+0.12);
+ }else if (this.getHp() < maxHp/2 && ys != 0){
+ setElementalDmgBonus(getElementalDmgBonus()-0.12);
+ ys=0;
+ ys+=1;
+ setElementalDmgBonus(getElementalDmgBonus()+0.12);
+ }
+ return 0;
+ }
+}
+
+
diff --git a/src/P_kong.java b/src/P_kong.java
new file mode 100644
index 0000000..3dce80a
--- /dev/null
+++ b/src/P_kong.java
@@ -0,0 +1,31 @@
+public class P_kong extends Character {
+
+
+ public P_kong() {
+ // 构造方法:为新增属性赋初值
+ super("空","异邦铁风","风涡剑","风息激荡", 1400, 141, 57, 0,Element.F);
+ setNormalAttackBonus(0.445);
+ setSkillAttackBonus(2.3);
+ setUltimateAttackBonus(3.08);
+ }
+
+
+
+
+ @Override
+ public int normalAttack() {
+ return (int) (super.normalAttack()*(this.getNormalAttackBonus()+1));
+ }
+
+
+ @Override
+ public int skillAttack() {
+ return (int) (super.skillAttack()*(this.getSkillAttackBonus()+1));
+ }
+
+
+ @Override
+ public int ultimateAttack() {
+ return (int) (super.ultimateAttack()*(this.getUltimateAttackBonus()+1));
+ }
+}
\ No newline at end of file
diff --git a/src/P_ying.java b/src/P_ying.java
new file mode 100644
index 0000000..916acc6
--- /dev/null
+++ b/src/P_ying.java
@@ -0,0 +1,28 @@
+public class P_ying extends Character {
+
+
+ public P_ying() {
+ // 构造方法:为新增属性赋初值
+ super("荧","异邦铁风","风涡剑","风息激荡", 1400, 141, 57, 0,Element.F);
+ setNormalAttackBonus(0.445);
+ setSkillAttackBonus(2.3);
+ setUltimateAttackBonus(3.08);
+ }
+
+
+ @Override
+ public int normalAttack() {
+ return (int) (super.normalAttack()*(this.getNormalAttackBonus()+1));
+ }
+
+
+ @Override
+ public int skillAttack() {
+ return (int) (super.skillAttack()*(this.getSkillAttackBonus()+1));
+ }
+
+ @Override
+ public int ultimateAttack() {
+ return (int) (super.ultimateAttack()*(this.getUltimateAttackBonus()+1));
+ }
+}
\ No newline at end of file
diff --git a/src/Start.java b/src/Start.java
new file mode 100644
index 0000000..b99670e
--- /dev/null
+++ b/src/Start.java
@@ -0,0 +1,47 @@
+import java.util.Scanner;
+
+public class Start {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+ System.out.println("欢迎来到回合制原神!");
+ System.out.println("1.单人模式 2.双人模式");
+ System.out.print("选择你要玩的模式:");
+ try {
+ int choice = sc.nextInt();
+ switch (choice) {
+ case 1:
+ System.out.println("你选择了单人模式");
+ while (true) {
+ Game game = new Game();
+ game.GameStart();
+ System.out.print("是否继续游戏?(y/n)");
+ String sr = sc.next();
+ if (sr.equals("n")) {
+ break;
+ }
+ }
+ break;
+ case 2:
+ System.out.println("你选择了双人模式");
+ while (true) {
+ Game game = new Game();
+ game.PVPGameStart();
+ System.out.print("是否继续游戏?(y/n)");
+ String sr = sc.next();
+ if (sr.equals("n")) {
+ break;
+ }
+ }
+ break;
+ default:
+ System.out.println("\33[33m"+"输入错误,请重新输入!"+"\33[0m");
+ main(args); // 递归调用main方法
+ }
+ } catch (Exception e) {
+ System.out.println("\33[31m"+"输入错误,惩罚你重新开始!!!"+"\33[0m");
+ main(args); // 递归调用main方法
+ }
+
+
+ }
+}