新聞中心
java語言 有一個剛出膛的炮彈,初速度是1000m/s出膛后,每秒降低10%的速度,問打擊一個5000米的目標(biāo)要多久
//這個是以整秒為單位,如果要精確到毫秒級別,可以自行優(yōu)化
我們提供的服務(wù)有:網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、射陽ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的射陽網(wǎng)站制作公司
public?static?void?main(String[]?args)?{
try?{
double?speek?=?1000;//初始速度
int?sec?=?0;//大概時間數(shù),秒
double?distance?=?5000.0;//實際距離
while?(true){
distance?=?distance?-?speek;
speek?=?speek?-?(speek?*?10?/?100);
sec?++;
System.out.println("第"+sec+"秒后,剩余距離="+distance);
if(distance?=?0){
break;
}
}
System.out.println("最終大約需要"+sec+"秒");
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
java 炮彈 間隔發(fā)射
可以使用Timer和TimerTask類在java中實現(xiàn)定時任務(wù),詳細(xì)說明如下:
1、基礎(chǔ)知識
java.util.Timer
一種線程設(shè)施,用于安排以后在后臺線程中執(zhí)行的任務(wù)??砂才湃蝿?wù)執(zhí)行一次,或者定期重復(fù)執(zhí)行。此類是線程安全的:多個線程可以共享單個 Timer 對象而無需進(jìn)行外部同步。
java.util.TimerTask
由 Timer 安排為一次執(zhí)行或重復(fù)執(zhí)行的任務(wù)。
2、示例代碼
該示例實現(xiàn)這樣一個功能,在系統(tǒng)運(yùn)行期間,每30分鐘,系統(tǒng)自動檢查連接池中的可用連接數(shù),并輸出到日志中。
首先創(chuàng)建一個需要定時執(zhí)行的任務(wù)類,這個任務(wù)類需要繼承TimerTask,然后重寫run()方法,run()方法體中的代碼就是定時需要執(zhí)行的操作,在本demo中,就是獲取連接池中當(dāng)前可用連接數(shù),并輸出到日志中,具體實現(xiàn)代碼如下:
public class TaskAvailableConnectNumber extends TimerTask {
private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class);
private ConnectionPool pool=ConnectionPool.getInstance();
@Override
publicvoid run() {
log.debug("當(dāng)前連接池中可用連接數(shù)"+pool.getAvailableConnectNumber());
}
}
下面定義一個監(jiān)聽器,負(fù)責(zé)在應(yīng)用服務(wù)器啟動時打開定時器,監(jiān)聽器需要實現(xiàn)ServletContextListener接口,并重寫其中的contextInitialized()和contextDestroyed()方法,代碼如下:
public class OnLineListener implements ServletContextListener{
private Logger log = Logger.getLogger(OnLineListener.class);
Timer timer = null;
//在應(yīng)用服務(wù)器啟動時,會執(zhí)行該方法
publicvoid contextInitialized(ServletContextEvent arg0) {
//創(chuàng)建一個定時器,用于安排需要定時執(zhí)行的任務(wù)。
timer = new Timer();
//為定時器安排需要定時執(zhí)行的任務(wù),該任務(wù)就是前面創(chuàng)建的任務(wù)類TaskAvailableConnectNumber,并指定該任務(wù)每30分鐘執(zhí)行一次。
timer.schedule(new TaskAvailableConnectNumber(), 0, 30*60*1000);
log.debug("啟動定時器");
}
//應(yīng)用服務(wù)器關(guān)閉時,會執(zhí)行該方法,完成關(guān)閉定時器的操作。
public void contextDestroyed(ServletContextEvent arg0) {
if(timer!=null){
timer.cancel();//關(guān)閉定時器
log.debug("-----定時器銷毀--------");
}
}
}
監(jiān)聽器要想正常運(yùn)行,需要在web.xml文件中進(jìn)行配置,配置信息如下:
!-- 監(jiān)聽器配置開始 --
listener
listener-class
cn.sdfi.listen.OnLineListener
/listener-class
/listener
!-- 監(jiān)聽器配置結(jié)束 --
以上步驟完成后,一個簡單的定時器就算開發(fā)完成了。
用JAVA編寫一個小程序,不限類型好玩點(diǎn)的。
控制臺小游戲 class YZDEL
{
public static void main(String[] args)
{
java.util.Random Shiji = new java.util.Random();
java.util.Scanner Shuru = new java.util.Scanner(System.in);
java.util.Scanner Nandu = new java.util.Scanner(System.in);
int YingxHP = 20;
int YingxMP = 0;
int MogHP = 20;
int MogMP = 0;
int MogDo = 0;
int fangyu = 0;
System.out.println("┏━━━━╮┏━━┣┣┓ ╮ ┓┏━┳━┳┓┓━┓ ");
System.out.println("┏┣━━━┓┏━━┣┣┓ ┃┏ ┃ ┃┓┃ ╯ ");
System.out.println("┣┣━━━┫╭━━┻╯╮ ┃╰┓┃ ┃╯┏━┣━━┓");
System.out.println("┣┣━━━┫┏━━━━┓╭━━┣━┛┗━┻━┻┛┃┃");
System.out.println("┏┣━━━┓┣━━━━┫ ┃┃┃┗╮╮┃┃┣━╯");
System.out.println(" ┛┗╯┗━━━━╯┗╯╰╰━━┛┛┗━╯╰━┛");
System.out.println();
System.out.println(" 作者:天狐空幻");
System.out.println();
System.out.println("說明:勇者的操作方式為以下所示:");
System.out.println(" 使用攻擊需消耗1MP 傷害1HP");
System.out.println(" 使用蓄力可增加1MP 傷害0HP");
System.out.println(" 使用躲閃需消耗0MP 傷害0HP 躲避攻擊");
System.out.println(" 使用重?fù)粜柘?MP 傷害2HP 防御無效");
System.out.println(" 惡龍攻擊力高, 注意防御是取勝的關(guān)鍵");
System.out.println(" 惡龍MP達(dá)到4時可能會放出火焰無法躲避");
System.out.println(" 準(zhǔn)備說明完畢,那么讓我們來挑戰(zhàn)惡龍吧!");
System.out.println("==================================");
//難度選擇
System.out.println("請選擇難度");
System.out.println("1.娛樂 2.挑戰(zhàn) 3.噩夢");
int ND = Nandu.nextInt();
System.out.println("==================================");
while(true)
{
//HP,MP的顯示
System.out.print("勇者: ");
System.out.print(" HP ");
for(int x=YingxHP;x0;x--) System.out.print("*");
System.out.print(" "+YingxHP);
System.out.println();
System.out.print(" ");
System.out.print(" MP ");
for(int x=YingxMP;x0;x--) System.out.print("*");
System.out.print(" "+YingxMP);
System.out.println();
System.out.print("惡龍: ");
System.out.print(" HP ");
for(int y=MogHP;y0;y--) System.out.print("*");
System.out.print(" "+MogHP);
System.out.println();
System.out.print(" ");
System.out.print(" MP ");
for(int y=MogMP;y0;y--) System.out.print("*");
System.out.print(" "+MogMP);
System.out.println();
System.out.println("==================================");
//勝利判定
if(YingxHP1) {System.out.println();System.out.println("勇者HP為0! 不..不可能..我怎么會..勇者倒下了。再接再厲吧!~");System.out.println();break;}
if(MogHP1) {System.out.println();System.out.println("惡龍HP為0! 惡龍絕望的哀鳴中倒了下去。勇者勝利了。恭喜你挑戰(zhàn)成功??!");System.out.println();break;}
//角色輸入判定
System.out.println("你要做什么:");
System.out.println("1.攻擊 2.蓄力");
System.out.println("3.躲閃 4.重?fù)?);
System.out.println("____________________");
int Do = Shuru.nextInt();
//敵人輸入判定
//娛樂難度
if(ND==1){
for(int i=1;i3;i++) MogDo = Shiji.nextInt(4);}
//挑戰(zhàn)難度
if(ND==2){
if(YingxMP==0MogMP==0) {MogDo = 0;}
else if(MogMP==0){for(int i=1;i3;i++) MogDo = Shiji.nextInt(2);}
else if(YingxMP2MogMP2) MogDo = 2;
else if(MogMP4) {for(int i=1;i4;i++) MogDo = Shiji.nextInt(3);}
else MogDo = 3;}
//噩夢難度
if(ND==3){
if(Do==1) MogDo=1;
if(Do==2MogMP0) MogDo=2;
if(Do==2MogMP==0) MogDo=0;
if(Do==3MogMP4) MogDo=0;
if(Do==3MogMP=4) MogDo=3;}//變態(tài)判定。。
//戰(zhàn)斗分析
//防御
if(Do==3) {fangyu=1;System.out.println("你靈巧的躲避攻擊!");}
if(MogDo==1) {fangyu=1;System.out.println("惡龍進(jìn)行防御!");}
//角色判定
if(Do==1YingxMP==0) {System.out.println("MP不足!");}
if(Do==1YingxMP0) {
if(fangyu==0) {MogHP=MogHP-1;YingxMP=YingxMP-1;System.out.println("你發(fā)動攻擊!");}
if(fangyu==1) {YingxMP=YingxMP-1;System.out.println("你的攻擊被格擋!");}}
if(Do==2) {YingxMP=YingxMP+1;System.out.println("你進(jìn)行蓄力!");}
if(Do==4YingxMP3) {System.out.println("MP不足!");}
if(Do==4YingxMP2) {MogHP=MogHP-2;YingxMP=YingxMP-3;System.out.println("你發(fā)動重?fù)簦?);}
if(Do 4) System.out.println("你不知所措...");
//敵人判定
if(MogDo==2MogMP==0) {System.out.println("惡龍在發(fā)呆!");}
if(MogDo==2MogMP0) {
if(fangyu==0) {YingxHP=YingxHP-2;MogMP=MogMP-1;System.out.println("惡龍發(fā)動攻擊!");}
if(fangyu==1) {MogMP=MogMP-1;System.out.println("惡龍的攻擊被躲開了!");}}
if(MogDo==0) {MogMP=MogMP+1;System.out.println("惡龍進(jìn)行蓄力!");}
if(MogDo==3MogMP4) {System.out.println("惡龍在發(fā)呆!");}
if(MogDo==3MogMP3) {YingxHP=YingxHP-4;MogMP=MogMP-4;System.out.println("惡龍發(fā)動火焰吐吸!躲避不能!");}
//結(jié)束
fangyu = 0;
MogDo = 0;
System.out.println("____________________");
System.out.println();
System.out.println("=================================="); }
}
}
分享題目:包含java炮彈躲避代碼的詞條
網(wǎng)頁地址:http://fisionsoft.com.cn/article/hjdohe.html