From fcf9568df5fda15489ca0b951236d25af2b5b199 Mon Sep 17 00:00:00 2001 From: muazdervent Date: Thu, 6 May 2021 13:29:41 +0300 Subject: [PATCH] Robot 4. seviye olarak kendisinin devam eden hamlelerini hesaplayabilyor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Robot hard seviyesinin bir üstü olarak expert seviyesinde kendisinin devam eden hamleleri için bir sonraki hamleyi hesaplamaya devam ediyor. --- pages/robotGameArea.js | 88 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/pages/robotGameArea.js b/pages/robotGameArea.js index 818ca72..c96ac90 100644 --- a/pages/robotGameArea.js +++ b/pages/robotGameArea.js @@ -2,7 +2,7 @@ // 1: Easy // 2: Medium // 3: Hard -const zorlukDerecesi = 3; +const zorlukDerecesi = 4; class Hole { constructor(value,id) { @@ -72,8 +72,12 @@ function tikla(id){ //player=1; //bu burada kalmali dagit(Number(id[4]),Number(id[9])); boncukCiz(); - - if(zorlukDerecesi == 3){ + if(zorlukDerecesi == 4){ + while(player == 1 && state){ + runRobotExpert(); + } + } + else if(zorlukDerecesi == 3){ while(player == 1 && state){ robotHard(); } @@ -399,6 +403,84 @@ function robotHard(){ } } +function runRobotExpert(){ + let move = robotExpert() + player = 1; + //console.log("en yuksek insdis########### ",array[max_indis], ", tiklaniyor."); + tikla("user1hole"+(move).toString()+"x"); +} +function robotExpert(){ + //console.log("HHHHARD calisti."); + let array = doluHoleler(); + let len = array.length; + let score_ar = []; // dolu hucrelerle ayni indisle + if( len > 0){ + var temp1 = []; + var temp2 = []; + for (let i = 0; i < 7; i++) { + temp1.push(new Hole(user1hole[i].getValue(),user1hole[i].getID())); + temp2.push(new Hole(user2hole[i].getValue(),user2hole[i].getID())); + }; + bosalt(); + //console.log("ilk bosalt sonrasi user1hoel uzunnlugu: ",user1hole.length); + //console.log("ilk bosalt sonrasi user2hole uzunnlugu: ",user2hole.length); + + /* + console.log("robotHard hesaplama basliyor.."); + console.log("temp1[0].value: ", temp1[0].value); + console.log("user1hole[0].value: ", user1hole[0].value); + console.log("atamar yapiliyor.."); + temp1[0].value = 100; + user1hole[0].value = 999; + console.log("temp1[0].value: ", temp1[0].getValue()); + console.log("user1hole[0].value: ", user1hole[0].getValue()); + player = 2; + */ + + for ( let k = 0; k < array.length; k++){ // dolu hocre sayisi kadar don + let denenecek_hole_indis = array[k]; // dolu hucresinin indisini al + //console.log("hole ,",denenecek_hole_indis, ", deneniyor."); + bosalt(); + for (let i = 0; i < 7; i++) { + user1hole.push(new Hole(temp1[i].getValue(),temp1[i].getID())); + user2hole.push(new Hole(temp2[i].getValue(),temp2[i].getID())); + }; + + + console.log("dagitim sonrasi user1hole uzunnlugu: ",user1hole.length); + console.log("dagitim öncesi hazine: ",user1hole[6].value); + //tikla("user1hole"+(denenecek_hole_indis+1).toString()+"x"); // dolu hucreyi dagittini dusun + dagit(1,denenecek_hole_indis+1); + //console.log("dagitim sonrasi hazine: ",user1hole[6].value); + // dolu hucre dagilitdiktan sonra hazinenin degerini al ve score ar.ine ata + while(player == 1){ + let move = robotExpert(); + dagit(1,move); + } + score_ar[k] = user1hole[6].getValue(); + + } + // her dolu kutu denendikten sonra hazineyi encok arttıran adimi sec + bosalt(); + for (let i = 0; i < 7; i++) { + user1hole.push(new Hole(temp1[i].getValue(),temp1[i].getID())); + user2hole.push(new Hole(temp2[i].getValue(),temp2[i].getID())); + }; + + let max = 0; + let max_indis = 0; + for ( let a = 0; a< score_ar.length; a++){ // en yuksek hazine degerini bul + if( score_ar[a] >= max){ + max = score_ar[a]; + max_indis = a; + } + } + //player = 1; + //console.log("en yuksek insdis########### ",array[max_indis], ", tiklaniyor."); + //tikla("user1hole"+(array[max_indis]+1).toString()+"x"); + return array[max_indis]+1; + } +} function bosalt(){ while(user1hole.length > 0){ user1hole.pop(); -- 2.18.1