編碼也快樂:兩水壺的故事之JS程式
看了其他幾位的程式碼, 深感慚愧, 解題部分完全是靠大腦做的, 僅當娛樂吧
我的JavaScript程式碼:
// 水壺類
function Bottle(objParam){
this.name = objParam.name || '我是無名的水壺..';
// 初始化水壺容量, 單位為公升(L)
if(objParam.volume){
this.volume = objParam.volume;
} else {
alert('世界上不存在沒有容量的瓶子!');
return null;
}
// 初始化水壺為空
this.currentWater = 0;
}
// 將該水壺填滿水
Bottle.prototype.fillWater = function(){
this.currentWater = this.volume;
};
// 將該水壺清空
Bottle.prototype.empty = function(){
this.currentWater = 0;
};
// 把該水壺的水倒入其他水壺, 倒滿則止
Bottle.prototype.poureToOtherBottle = function(otherBottle){
var leftVolume = otherBottle.volume - otherBottle.currentWater; // 對方水壺剩餘容積
if(leftVolume >= this.currentWater){
// 如果對方水壺的剩餘容積比該水壺現有的水還大, 則該水壺被倒空
otherBottle.currentWater += this.currentWater;
this.currentWater = 0;
} else {
// 否則填滿對方水壺, 該水壺還有剩餘的水
this.currentWater -= leftVolume;
otherBottle.currentWater = otherBottle.volume;
}
};
// 解題部分
(function(){
var bottle_5 = new Bottle({
name : '5壺',
volume : 5
}),
bottle_6 = new Bottle({
name : '6壺',
volume : 6
});
bottle_5.fillWater();
bottle_5.poureToOtherBottle(bottle_6); // 將5壺倒入6壺, 此時6壺剩5升, 5壺為空
bottle_5.fillWater(); // 再將5壺填滿
bottle_5.poureToOtherBottle(bottle_6); // 將5壺倒入6壺, 此時6壺剩6升, 5壺剩4升
bottle_6.empty(); // 將6壺清空
bottle_5.poureToOtherBottle(bottle_6); // 將5壺倒入6壺, 此時6壺剩4升, 5壺為空
bottle_5.fillWater(); // 再將5壺填滿
bottle_5.poureToOtherBottle(bottle_6); // 將5壺倒入6壺, 此時6壺剩6升, 5壺剩3升
alert("5升水壺還剩 " + bottle_5.currentWater + " 升水!");
})();
相關文章
- 買這家公司的遊戲,還不如買兩瓶快樂水?遊戲
- 水一貼,新年快樂!
- 程式設計師快樂器之JAVA程式碼生成工具程式設計師Java
- html實體編碼遇上js程式碼HTMLJS
- 不再做夢,快樂程式碼到此為止!
- 體面編碼之程式碼提交
- 程式設計師的快樂生活程式設計師
- 任天堂傳奇社長巖田聰:讓自己快樂,也努力讓別人快樂
- IceRPC之依賴注入>快樂的RPCRPC依賴注入
- IceRPC之排程管道->快樂的RPCRPC
- 程式猿1024節快樂
- JS 預編譯程式碼例項分析JS編譯
- 「1024」專屬序猿的快樂,驚奇迷惑程式碼大賞
- NEON彙編比純C程式碼快17倍!C程式
- 程式碼故事:漢德的救贖
- JS字串編碼JS字串編碼
- 你也許不知道的Vuejs – 使用ES6快樂的玩耍VueJS
- 程式設計師節快樂程式設計師
- js基礎之程式碼篇1.0JS
- Zed:極快的開源協作程式碼編輯器IDEZedIDE
- 如何簡單高效的在程式碼中實現兩級快取的管理快取
- 新技能:透過程式碼快取加速 Node.js 的啟動快取Node.js
- 新技能:通過程式碼快取加速 Node.js 的啟動快取Node.js
- 祝office職場大學,兩週年生日快樂!
- 22種程式語言新年快樂
- 使用Google Guava快樂程式設計GoGuava程式設計
- 體面編碼之程式碼註釋評論
- 兩次拷貝操作的故事
- 深入iOS系統底層之程式中的彙編程式碼iOS
- JS:解析forEach()、map()原始碼及淺談兩者之間的區別JS原始碼
- 讓程式設計快樂起來的過程程式設計
- PHP 與 JS 的編碼問題PHPJS
- vue..js 編寫的簡單音樂播放器VueJS播放器
- 兩個JS之間的函式互相呼叫JS函式
- 程式設計師快樂撩妹秀技術兩不誤(行政財務拆分篇)程式設計師
- IceRPC之深入理解排程管道->快樂的RPCRPC
- 從一個故事開始聊聊字元編碼字元
- 勞動節快樂!手寫個核心價值觀編碼工具 - Python實現Python
- 我們的快樂