題目:在鈉鎂星球蘊藏著豐富的鈉鎂礦產,貪婪的帝犰人覬覦著鈉鎂星球上的寶藏,派遣了一支特戰部隊
前往攻擊善良的鈉鎂星人!善良的鈉鎂星人不得不站起來為保衛自己的美麗家園而戰。
雙方戰士的分類和能力描述如下:
每位戰士擁有生命力,體力,攻擊技能與防守技能。
戰士分為攻擊型,防禦型和偵查型三種
前往攻擊善良的鈉鎂星人!善良的鈉鎂星人不得不站起來為保衛自己的美麗家園而戰。
雙方戰士的分類和能力描述如下:
每位戰士擁有生命力,體力,攻擊技能與防守技能。
戰士分為攻擊型,防禦型和偵查型三種
這程式有個很嚴重的瑕疵~
視窗跳出的時候會顯示在下層(也就是會被BlueJ擋住XD)
還有最後問你要不要繼續玩的時候無法查看戰鬥的過程= =|||
而因為突發的事件~害我自主放假所以也沒有問老師就是了
同組的人也很沒默契的忽略掉了虧我還努力把兩個作業都解決了說
最嚴重的是要考上機考居然沒有人問能不能看語法表啊!!!
這不是最基本的問題嗎~囧
以下需要用到~
MainWindow物件
MessageBox物件&OutputBox物件
InputBox物件
ResponseBox物件&ListBox物件
是說javabook套件說明文件既然都是網頁幹麼不乾脆傳上網路啊
雖然全都是英文還沒有範例超不親切的
javabook套件說明文件網址
視窗跳出的時候會顯示在下層(也就是會被BlueJ擋住XD)
還有最後問你要不要繼續玩的時候無法查看戰鬥的過程= =|||
而因為突發的事件~害我自主放假所以也沒有問老師就是了
同組的人也很沒默契的忽略掉了虧我還努力把兩個作業都解決了說
最嚴重的是要考上機考居然沒有人問能不能看語法表啊!!!
這不是最基本的問題嗎~囧
以下需要用到~
MainWindow物件
MessageBox物件&OutputBox物件
InputBox物件
ResponseBox物件&ListBox物件
是說javabook套件說明文件既然都是網頁幹麼不乾脆傳上網路啊
雖然全都是英文還沒有範例超不親切的
javabook套件說明文件網址
前言(JAVABOOK內類別)
MainWindow 物件產生應用程式的最上層視窗 (top-level winodw)
最基本~會被當成引數創建之後的輸出入物件~必打
MainWindow mw = new MainWindow("我的新視窗") ;
mw.setVisible( true );
//下面的不打也沒差
mw.setSize (200, 400) ;
mw.setLocation (100, 100);
//==================
MessageBox物件產生一個訊息視窗,顯示一般訊息或警告。
必定單行~
MessageBox mb = new MessageBox(mw) ; //就是剛剛的MainWindow物件
mb.show("歡迎光臨!"); //就跳一個視窗顯示歡迎光臨啊XD
InputBox物件產生一個資料輸入盒,並提供多種資料的輸入
輸入~幾乎必打
InputBox ib = new InputBox ( mw );//同上
int i = ib.getInteger( "請輸入一個整數" ); //後面是顯示提示~輸入時必須指定型別!
/*
型別類型有~
讀取整數資料: getInteger("提示訊息")
讀取長實數資料: getDouble("提示訊息")
讀取字串資料: getString("提示訊息")
讀取實數資料: getFloat("提示訊息")
拿錯誤的類型接我沒試過~不過getString會連空白一起全吃掉
*/
OutputBox物件產生資料輸出盒可以顯是跨多行的文字訊息
OutputBox ob = new OutputBox(mw) ;
ob.show();//這個要先顯示~
ob.printLine( "你的生日是:" );//可以換行~
ob.printLine( year + " 年 " + month + " 月 " + day + " 日 "); //數字可以自己轉成字串跟字串串接
/*
輸出資料: print ( "資料內容" ) //不分行
輸出資料: printLine ( "資料內容" ) //分行
存檔: saveToFile ("檔名") //資料覆蓋原檔案
存檔: appendToFile ("檔名") //資料附加在原檔案之後
同一個OutputBox資料會保留要清除可用clear()
*/
ResponseBox物件產生一個資料輸入盒讓人選選項用的XD
有兩種創建方式~
new ResponseBox (上層的框架)
new ResponseBox (上層的框架,按鈕個數)
一種不給選項參數
ResponseBox rb = new ResponseBox(mw) ;
int selection ;
selection = rb.prompt("要繼續玩嗎?");
if (selection == ResponseBox.YES) ........以下略
//選項為YES || NO~不曉得實際代表啥值不過看來是回傳int 的樣子
另一種指定有幾個選項~用setLabel設定每個選項的文字
ResponseBox rb = new ResponseBox(mw, 3) ;
rb.setLabel(ResponseBox.BUTTON1, "契約");
rb.setLabel(ResponseBox.BUTTON2, "契約");
rb.setLabel(ResponseBox.BUTTON3, "簽契約");
//還是用if 判斷選哪個~
selection = rb.prompt("想成為魔法少女請按下契約");
if (selection == ResponseBox.BUTTON1)......以下略
ListBox 物件產生一個項目清單,接受使用者的選擇。
ListBox lb = new ListBox(mw, "請選擇一個服務") ;
lb.addItem("契約0");
lb.addItem("契約1");
lb.addItem("契約2");
int selection ;
selection = lb.getSelectedIndex();
/*跟ResponseBox差不多~
getSelectedIndex()只會回傳這三種
選項~從 0 開始算起,例如按了契約1就會回傳1
ListBox.NO_SELECTION (使用者沒有進行選擇)
ListBox.CANCEL(使用者點選了取消按鈕)
*/
最基本~會被當成引數創建之後的輸出入物件~必打
MainWindow mw = new MainWindow("我的新視窗") ;
mw.setVisible( true );
//下面的不打也沒差
mw.setSize (200, 400) ;
mw.setLocation (100, 100);
//==================
MessageBox物件產生一個訊息視窗,顯示一般訊息或警告。
必定單行~
MessageBox mb = new MessageBox(mw) ; //就是剛剛的MainWindow物件
mb.show("歡迎光臨!"); //就跳一個視窗顯示歡迎光臨啊XD
InputBox物件產生一個資料輸入盒,並提供多種資料的輸入
輸入~幾乎必打
InputBox ib = new InputBox ( mw );//同上
int i = ib.getInteger( "請輸入一個整數" ); //後面是顯示提示~輸入時必須指定型別!
/*
型別類型有~
讀取整數資料: getInteger("提示訊息")
讀取長實數資料: getDouble("提示訊息")
讀取字串資料: getString("提示訊息")
讀取實數資料: getFloat("提示訊息")
拿錯誤的類型接我沒試過~不過getString會連空白一起全吃掉
*/
OutputBox物件產生資料輸出盒可以顯是跨多行的文字訊息
OutputBox ob = new OutputBox(mw) ;
ob.show();//這個要先顯示~
ob.printLine( "你的生日是:" );//可以換行~
ob.printLine( year + " 年 " + month + " 月 " + day + " 日 "); //數字可以自己轉成字串跟字串串接
/*
輸出資料: print ( "資料內容" ) //不分行
輸出資料: printLine ( "資料內容" ) //分行
存檔: saveToFile ("檔名") //資料覆蓋原檔案
存檔: appendToFile ("檔名") //資料附加在原檔案之後
同一個OutputBox資料會保留要清除可用clear()
*/
ResponseBox物件產生一個資料輸入盒讓人選選項用的XD
有兩種創建方式~
new ResponseBox (上層的框架)
new ResponseBox (上層的框架,按鈕個數)
一種不給選項參數
ResponseBox rb = new ResponseBox(mw) ;
int selection ;
selection = rb.prompt("要繼續玩嗎?");
if (selection == ResponseBox.YES) ........以下略
//選項為YES || NO~不曉得實際代表啥值不過看來是回傳int 的樣子
另一種指定有幾個選項~用setLabel設定每個選項的文字
ResponseBox rb = new ResponseBox(mw, 3) ;
rb.setLabel(ResponseBox.BUTTON1, "契約");
rb.setLabel(ResponseBox.BUTTON2, "契約");
rb.setLabel(ResponseBox.BUTTON3, "簽契約");
//還是用if 判斷選哪個~
selection = rb.prompt("想成為魔法少女請按下契約");
if (selection == ResponseBox.BUTTON1)......以下略
ListBox 物件產生一個項目清單,接受使用者的選擇。
ListBox lb = new ListBox(mw, "請選擇一個服務") ;
lb.addItem("契約0");
lb.addItem("契約1");
lb.addItem("契約2");
int selection ;
selection = lb.getSelectedIndex();
/*跟ResponseBox差不多~
getSelectedIndex()只會回傳這三種
選項~從 0 開始算起,例如按了契約1就會回傳1
ListBox.NO_SELECTION (使用者沒有進行選擇)
ListBox.CANCEL(使用者點選了取消按鈕)
*/
上圖就是執行結果勒~寫成輸入名子選擇種族再選擇兵種~之後會跟亂數的敵對種族戰鬥~
戰鬥方式就像是很無聊的網頁遊戲那樣XD
其實這篇重點再前言XDDDDD
教授喜歡IO用javabook所以就配合啦~剩下的部份就先當成限制很多的C來寫就輕輕鬆鬆勒~
只是特別注意!再JAVA陣列算是一個物件必須這樣宣告:int arr[] = new int[10];
其他零零腫腫的差異請查閱良葛葛
戰鬥方式就像是很無聊的網頁遊戲那樣XD
其實這篇重點再前言XDDDDD
教授喜歡IO用javabook所以就配合啦~剩下的部份就先當成限制很多的C來寫就輕輕鬆鬆勒~
只是特別注意!再JAVA陣列算是一個物件必須這樣宣告:int arr[] = new int[10];
其他零零腫腫的差異請查閱良葛葛
基本概念為~種族跟兵種各視為一個虛擬類別~
種族定義了
public int hp,mp;//血量跟體力
public String name,sol_ty;//人名跟兵種名稱
public Soid_type work; //兵種類型~並沒有跟兵種名稱綁定
所以其實兵種設定兩個種族是共用的(像是AOE2那樣)只是顯示的名稱不同(掛羊頭賣狗肉)
而兵種只定義了
int atk,def,a_skill,d_skill;//攻擊力,防禦力,攻擊技能數,防禦技能數
其他的由實際的兵種種類來寫招數名稱......等
~~會這樣寫是因為覺得要加種族或者兵種都很輕鬆XD而某個兵種要新增技能也輕鬆~~
實際程式碼部份~因為這程式有用到亂數所以~[Java] 產生亂數的方法(1)
例如:產生一個1~42的亂數
import java.lang.Math;
(int)(Math.random()*42+1)
種族定義了
public int hp,mp;//血量跟體力
public String name,sol_ty;//人名跟兵種名稱
public Soid_type work; //兵種類型~並沒有跟兵種名稱綁定
所以其實兵種設定兩個種族是共用的(像是AOE2那樣)只是顯示的名稱不同(掛羊頭賣狗肉)
而兵種只定義了
int atk,def,a_skill,d_skill;//攻擊力,防禦力,攻擊技能數,防禦技能數
其他的由實際的兵種種類來寫招數名稱......等
~~會這樣寫是因為覺得要加種族或者兵種都很輕鬆XD而某個兵種要新增技能也輕鬆~~
實際程式碼部份~因為這程式有用到亂數所以~[Java] 產生亂數的方法(1)
例如:產生一個1~42的亂數
import java.lang.Math;
(int)(Math.random()*42+1)
main類別(點選開啟程式碼)
很長很長~程式的進入點~輸入跟戰鬥的處理通通都寫在start()裡面
要開始當然也是從這~
要開始當然也是從這~
種族
不管你是啥族~死的時候下場都一樣XDDDD
藍星人
宇宙人
兵種
防禦型
攻擊型
敏捷型
耶~其實我覺得java一直都是在教物件導向的概念~
但是實際寫了個東東出來還是發現我根本像再寫c啊XD
雖然是難得的超長篇~不過好像只是因為我道行不足才寫的亂七八糟的XD
對了~虛擬的關鍵字abstract
判斷矩形相對的程式碼短超多的
﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍
題外話
看著旁邊的艾力歐就覺得~蹺課真是太值得了!!
期中考完蛋啦XDDD(剔除資結,組語,JAVA)
我需要簡單易懂的60分必拿筆記啦~
是說C++嵌組語居然馬上遇到瓶頸QQ
果然道行不足唉~對照表也還沒生出來