From 6c845da667b44f8f0fe11cf93542512901c4aaff Mon Sep 17 00:00:00 2001 From: agnynureza Date: Fri, 23 Feb 2018 10:21:39 +0700 Subject: [PATCH 1/3] feedback --- async/index.js | 41 ++++++++++++++++++++++++---- oop/index.js | 67 ++++++++++++++++++++++++++++++++++++++++++++++ query/database.db | Bin 20480 -> 20480 bytes query/query.js | 30 +++++++++++++++++++++ 4 files changed, 133 insertions(+), 5 deletions(-) create mode 100644 oop/index.js create mode 100644 query/query.js diff --git a/async/index.js b/async/index.js index 77df3b7..672ccb9 100644 --- a/async/index.js +++ b/async/index.js @@ -17,6 +17,36 @@ class RNG { return result; } + static gatchaRoll(times,callback){ + let max = [] + if(times > 0){ + for(let i = 0 ; i < times ; i++){ + let gacha = RNG.roll() + max.push(gacha) + } + max.sort(function(a,b){return b > a}) + callback(max[0]) + }else{ + callback(0) + } + } + + static gatchaRollPromise(times,callback){ + return new Promise((resolve,reject)=>{ + if(times > 0 ){ + let max = [] + for(let i = 0 ; i < times ; i++){ + let gacha = RNG.roll() + max.push(gacha) + } + max.sort(function(a,b){return b > a}) + resolve(max[0]) + }else{ + reject() + } + }) + } + } function viewGachaResult(best) { @@ -27,21 +57,22 @@ function viewGachaFailure() { console.log('YAKIN NGGAK MAU NGE-ROLL?'); } + // RELEASE 0 TEST CASES -RNG.gatchaRoll(5, function(result) { viewGachaResult(result) }); // output log sesuai hasil random terbaik -RNG.gatchaRoll(1, function(result) { viewGachaResult(result) }); // output log sesuai hasil random terbaik -RNG.gatchaRoll(0, function(result) { viewGachaResult(result) }); // output: 0 +// RNG.gatchaRoll(5, function(result) { viewGachaResult(result) }); // output log sesuai hasil random terbaik +// RNG.gatchaRoll(1, function(result) { viewGachaResult(result) }); // output log sesuai hasil random terbaik +// RNG.gatchaRoll(0, function(result) { viewGachaResult(result) }); // output: 0 // RELEASE 1 TEST CASES RNG.gatchaRollPromise(5) .then(function(result) { viewGachaResult(result) }) - .catch(function(err) { viewGachaFailure() }; + .catch(function(err) { viewGachaFailure() }); // akan menampilkan di log: YOUR BEST GATCHA ROLL RESULT IS RNG.gatchaRollPromise(0) .then(function(result) { viewGachaResult(result) }) - .catch(function(err) { viewGachaFailure() }; + .catch(function(err) { viewGachaFailure() }); // akan menampilkan di log: YAKIN NGGAK MAU NGE-ROLL? diff --git a/oop/index.js b/oop/index.js new file mode 100644 index 0000000..66548ae --- /dev/null +++ b/oop/index.js @@ -0,0 +1,67 @@ + +class Robot{ + constructor(name,purpose){ + this.name = name + this.purpose = purpose + } + +} + +class WallE extends Robot{ + constructor(name,purpose){ + super(name,purpose) + } + work(){ + console.log(`Wall-E cleans the planet`) + } +} + +class Baymax extends Robot{ + constructor(name,purpose){ + super(name,purpose) + } + heal(){ + console.log(`hi, i am baymax, how may i help you ?`) + } +} + +class AutoBot extends Robot{ + constructor(name,purpose){ + super(name,purpose) + } + defend(){ + console.log(`Autobot, let's roll`) + } +} + +class RobotFactory{ + static produceRobot(robot,amount){ + let factory = [] + for(let i = 0 ; i < amount ; i ++){ + if(robot === 'wall-e'){ + factory.push(new WallE) + }else if(robot === 'baymax'){ + factory.push(new Baymax) + }else{ + factory.push(new AutoBot) + } + } + return factory + } +} + +let wall_e = RobotFactory.produceRobot('wall-e', 6); +let baymax = RobotFactory.produceRobot('baymax', 5); +let autobot = RobotFactory.produceRobot('autobot', 3); + +for (var i = 0; i < wall_e.length; i++) { + wall_e[i].work() +} + +for (var i = 0; i < baymax.length; i++) { + baymax[i].heal(); +} + +for (var i = 0; i < autobot.length; i++) { + autobot[i].defend(); +} diff --git a/query/database.db b/query/database.db index 77b32335557d0d8348af0a5f80acb8ba9da025e9..6fd03364753bbdf8759e7e61de8727a75ceb065e 100644 GIT binary patch delta 919 zcmXYvPfU|%9LJyE^LziaBG1#lv~;W*XsJkPQ7E_-+ENfi>?lQ4WQQ4F+YX9)+i6BGCSJ^*RWHxs`+R=C-{ zSAlaC_&Nyg)op{|zJB}%9`~_j!k_U?zQNadgQu7b4?~tcT`W0vUS>hVsB#m|jI(IH;p)9! zl?458$Sf|HCG&sm9m7+_a@LY#zr`B7yowDM&sb%!MCa;;D?-5HqTa1cxoi%hhcNcnX7K|t!Em4@-+F}6az45mZwio)c^)z ze9m05%BOv`gpes{5qigmQ?6OpfU8b_s^8RC^%;Gi9@PHPe%3B)^V)#6O?|1}RliY> zsc}_T9xFGL73CwP4PWC!ypCU?g$Y#XQ~C?NNKeszYQQG^2#YWdEvx5k+BzjJC!=sw z{F;owq_~paje7SH@gUtzyAF%do^CiK&iAy#gt*qT0}hHmQ=$BHRkd;b%pif|?3o_CuhBT6vP7&Ii5-XVq z^h&8+&?A*1kd#6p)Z*_;rFM8vO!jrb9%&SXZt2sAuGTJTv=jAE;!-vYozf_ZYG;RZ zO2BSu6hqvxOFFecyZAdBT^GqublKB+!e8(w{2sr>zvV0ZET871JjtUxz>)pS{$jtg zHFlLbX`}%uOgPTRMGLe?wJdwqDcfXYWae_1>+e8^>Mz)O!OZX+Y_-z^Z-|^q&KgqwDe*u3Fe`@Xs{|CdIGLEm8J!c0Qi^rB8JVRS19B28Q;UkZco`TNbT}qYW;cl3*l5hbq@goe t!%%bcJ_|Q?pt%+d{2%%6^PlG5%0G|4o4 Date: Fri, 23 Feb 2018 10:36:25 +0700 Subject: [PATCH 2/3] benerin --- async/index.js | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/async/index.js b/async/index.js index 672ccb9..12f0319 100644 --- a/async/index.js +++ b/async/index.js @@ -23,11 +23,16 @@ class RNG { for(let i = 0 ; i < times ; i++){ let gacha = RNG.roll() max.push(gacha) + console.log(`go gacha: ${gacha}`) } max.sort(function(a,b){return b > a}) - callback(max[0]) + setTimeout(function(){ + callback(max[0]) + },1000) }else{ - callback(0) + setTimeout(function(){ + callback(0) + },1000) } } @@ -38,15 +43,20 @@ class RNG { for(let i = 0 ; i < times ; i++){ let gacha = RNG.roll() max.push(gacha) + console.log(`gacha promise: ${gacha}`) } max.sort(function(a,b){return b > a}) - resolve(max[0]) + setTimeout(function(){ + resolve(max[0]) + },1000) }else{ reject() } }) } + + } function viewGachaResult(best) { @@ -64,19 +74,20 @@ function viewGachaFailure() { // RNG.gatchaRoll(0, function(result) { viewGachaResult(result) }); // output: 0 // RELEASE 1 TEST CASES -RNG.gatchaRollPromise(5) - .then(function(result) { viewGachaResult(result) }) - .catch(function(err) { viewGachaFailure() }); +// RNG.gatchaRollPromise(5) +// .then(function(result) { viewGachaResult(result) }) +// .catch(function(err) { viewGachaFailure() }); // akan menampilkan di log: YOUR BEST GATCHA ROLL RESULT IS -RNG.gatchaRollPromise(0) - .then(function(result) { viewGachaResult(result) }) - .catch(function(err) { viewGachaFailure() }); +// RNG.gatchaRollPromise(0) +// .then(function(result) { viewGachaResult(result) }) +// .catch(function(err) { viewGachaFailure() }); // akan menampilkan di log: YAKIN NGGAK MAU NGE-ROLL? // RELEASE 2 PROMISE(S) - -// code here... \ No newline at end of file +RNG.gatchaRollPromise(5) + .then(function(result) { viewGachaResult(result) }) + .catch(function(err) { viewGachaFailure() }); \ No newline at end of file From a32a49a24d006a381e24a6f1bf4a0f4db024c91b Mon Sep 17 00:00:00 2001 From: agnynureza Date: Fri, 23 Feb 2018 11:02:47 +0700 Subject: [PATCH 3/3] bug2 --- async/index.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/async/index.js b/async/index.js index 12f0319..5c7d31c 100644 --- a/async/index.js +++ b/async/index.js @@ -88,6 +88,9 @@ function viewGachaFailure() { // RELEASE 2 PROMISE(S) -RNG.gatchaRollPromise(5) - .then(function(result) { viewGachaResult(result) }) + RNG.gatchaRollPromise(5).then(result => viewGachaResult(result)) + RNG.gatchaRollPromise(4).then(result => viewGachaResult(result)) + RNG.gatchaRollPromise(3).then(result => viewGachaResult(result)) + RNG.gatchaRollPromise(2).then(result => viewGachaResult(result)) + RNG.gatchaRollPromise(1).then(result => viewGachaResult(result)) .catch(function(err) { viewGachaFailure() }); \ No newline at end of file