Kaydet (Commit) a0bb7116 authored tarafından Muaz's avatar Muaz

Expert mod eklendi

4: Expert :: Robot Hard modda hesapladigi her kendi hamlesi icin ayni sekilde karsi tarafin oynayabilecegi hamleleri de hesaplamasi ve karsi tarafa en az tasi kazandirarak ve kendisi olabilecek en fazla tasi hazinesine katacak sekilde 'en iyi' hamlesini bulmasi.
üst fcf9568d
// Zorluk Dereceleri:
// 1: Easy
// 2: Medium
// 3: Hard
// 1: Easy :: Random hamleler
// 2: Medium :: Robotun kendi hamleleri icerisinden tek derinlikte
// kazanc hesaplayarak 'en iyi' hamlesini bulması
// 3: Hard :: Robotun hamle sirasi kendinde oldugu muddetce tum olasiliklerini
// hesaplayarak 'en iyi' hamlesini bulmasi
// 4: Expert :: Robot Hard modda hesapladigi her kendi hamlesi icin ayni sekilde
// karsi tarafin oynayabilecegi hamleleri de hesaplamasi ve karsi tarafa en az
// tasi kazandirarak ve kendisi olabilecek en fazla tasi hazinesine katacak sekilde
// 'en iyi' hamlesini bulmasi
const zorlukDerecesi = 4;
class Hole {
......@@ -422,20 +432,6 @@ function robotExpert(){
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
......@@ -457,7 +453,8 @@ function robotExpert(){
let move = robotExpert();
dagit(1,move);
}
score_ar[k] = user1hole[6].getValue();
let karsi_skor_max = robotExpertForHumanSide(2);
score_ar[k] = user1hole[6].getValue() - karsi_skor_max;
}
// her dolu kutu denendikten sonra hazineyi encok arttıran adimi sec
......@@ -481,6 +478,68 @@ function robotExpert(){
return array[max_indis]+1;
}
}
function robotExpertForHumanSide(istek){
//console.log("HHHHARD calisti.");
let array = doluHolelerForHumanSide();
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();
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()));
};
//tikla("user1hole"+(denenecek_hole_indis+1).toString()+"x"); // dolu hucreyi dagittini dusun
dagit(2,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 == 2){
let move = robotExpertForHumanSide(1);
dagit(2,move);
}
score_ar[k] = user2hole[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");
if(istek == 1){
return array[max_indis]+1;
}else{
return max;
}
}
}
function bosalt(){
while(user1hole.length > 0){
user1hole.pop();
......@@ -500,6 +559,17 @@ function doluHoleler(){
}
return array;
}
function doluHolelerForHumanSide(){
// robotun oynacagi hole'u secmek icin, dolu olanlari bulan fonk.
let x = 0;
let array = [];
for (let k = 0; k<6; k++){
if(user2hole[k].getValue() != 0){
array.push(k);
}
}
return array;
}
var clicks = 0;
function counterUp() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment