Tiaxgame.Tk
Trang chủ | Forum | Register Wap4.Co Free
Đăng Nhập » Đăng Ký
ForumWap4 Việt NamShare Code
Lượt xem: 127

▼ Code BOT chơi caro

* godlike  (Smod) [Off]
5 * 32
*   Cách đây 1 tháng
Hi mọi người
Lâu lắm rồi mình mới share một code gì đó, nhưng vì nó không hoàn thiện nên cũng không muốn share làm gì..và mình cũng không có ý định hoàn thiện nó
Lần này là code BOT caro (bản còn đánh hơi ngu)

Ý tưởng code là gì?
Cũng không phải là mình nghĩ ra gì, code caro bot thì có đầy rẫy trên mạng với các phiên bản js, c++,... và mình cũng mod lại từ các code đó nhưng là trên twig của wap4. Wap4 giới hạn code khá nhiều so với các mã nguồn khác nên sẽ khó mod hơn.
-Tạo bàn cờ, ,cái này chắc các bạn cũng biết cách làm rồi, tạo từ 1 đến 100 hoặc tùy.
-Ý tưởng là bước 1 sẽ viết code tính điểm: quy tắc sẽ như sau
1. tạo 2 bảng điểm tancong = [0, 9, 54, 162, 1458], phongthu = [0, 5, 36, 134, 953]
2. sau mỗi lần 'người' đi, quét tất cả các ô 1-100
3. nếu trong vòng 5 ô so với ô đang xét có ô giống 'máy' sẽ cộng 1 điểm, 2 điểm, 3 điểm... vd nếu 3 ô giống thì sẽ là 54 điểm (tấn công). đặc biệt nếu ô đã bị chặn kiểu []xxxo thì sẽ bỏ xét, nhớ là sẽ check hết ngang dọc chéo / \ theo mọi hướng, rồi cộng tổng tất cả các điểm lại
4. nếu trong vòng 5 ô so với ô đang xét có ô giống 'người' sẽ cộng 1 điểm, 2 điểm, 3 điểm... vd nếu 3 ô giống thì sẽ là 36 điểm (phòng thủ). tương tự như trên
5. sắp xếp, chọn ô có điểm phòng thủ hay tấn công cao nhất để đi tiếp.
- Bước 2 là bước khó nhất, sẽ cho đánh thử, đánh thử nhiều tầng, cho máy đi nước đó rồi giả cho người đi nước khác, mục đích là chọn nước đi cho 'máy' sao cho người đi có nước điểm thấp nhất..

Cám ơn mrducz95 đã hỗ trợ ý tưởng bàn cờ và func ngon lành
Vì code chưa hoàn chỉnh nên bạn thích thì hãy nâng cấp nó
DEMO không có
CODE:
index[code]<!doctype html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8"><meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="content-language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>caro</title>
<style>
a {
text-decoration: none;
}
body {color: #da8f00;
word-wrap: break-word;
padding: 20px;
width: 100%;
max-width: 600px;
margin: auto;
background: #232125;
}
.square {
width: 32px;
padding: 2px;
border: 1px solid #00887a;;
cursor: pointer;
overflow: hidden;
height: 32px;
}
#board-table {overflow: hidden;
width: 100%;
border: 1px solid #ff8400;
max-width: 500px;
max-height: 500px;
}
tbody {
display: table-row-group;
vertical-align: middle;
border-color: inherit;
}

table {
table-layout: fixed;
}
table tr td {
height: 100%;
}
table tr td div {
height: 100%;
}
table .caro {
width:32px;
height:32px;
line-height: 32px;
font-weight: bold;
font-size: 20px;
text-align: center;}
table .caroX {
color: #ff0068;}
table .caroO {
color: #0099ca;;}
</style>
</head>
<body>

{% from '_function.twig' import add,get,checkwin,checkscore,ARRAYscore %}

{% set ip=get_get('room')+0 %}
{% if ip==0 %}{% set ip = random(999999)%}{% endif %}

{{( get_get('reset')==1 ? update_data_by_id('caro_'~ip,get_data('caro_'~ip)|last.id,'{}') ~ update_data_by_id('caro_info_'~ip,get_data('caro_info_'~ip)|last.id,'{}') )}}
{{( get_get('row') in 10..30 ? add('caro_info_'~ip,'row',get_get('row')) ~ update_data_by_id('caro_'~ip,get_data('caro_'~ip)|last.id ) )}}
{% set go1=get_get('go1')+0 %}
{% set go2=get_get('go2')+0 %}

{% set info=get_data('caro_info_'~ip)|last.data|json_decode %}
{% set s=info.row|default(15) %}
{% set caro=get_data('caro_'~ip)|last.data|json_decode|default([]) %}
{% set nowturn=caro|last|first|default('O') %}

{% if go1 <= s and go1 > 0 and go2 <= s and go2 > 0 and not caro[go1~'#'~go2] %}
{% set f=add('caro_'~ip,go1~'#'~go2,(nowturn=='X'? 'O':'X')~go1~'#'~go2) %}
{% endif %}

{% set caro=get_data('caro_'~ip)|last.data|json_decode|default([]) %}
{% set endO='' %}{% for kk,vv in caro|slice(-1,1) %}{% set endO=kk|slice(1,10) %}{% endfor %}

{################ $$bot$$ #################}
{% set tancong = [0, 9, 54, 162, 1458] %}
{% set phongthu = [0, 5, 36, 134, 953] %}
{################ $$end bot$$ #################}



<miLoad>
{################ $$Check win$$ #################}
{% set win %}{{checkwin('caro_'~ip, s)}}{% endset %}
{################ $$end Check win$$ #################}
{{ ARRAYscore('caro_'~ip, s)}}
{% set bestmove %}{{checkscore('caro_'~ip, s)}}{% endset %}
{% set bestmove = bestmove~'' %}

{% set s=15 %}
{% set caro=get_data('caro_'~ip)|last.data|json_decode|default([]) %}
{% if go1 <= s and go1 > 0 and go2 <= s and go2 > 0 and caro|last|first == 'X'%}
{% set f=add('caro_'~ip , bestmove , 'O' ~ bestmove) %}
{% endif %}

<table id="board-table">
<tbody>
{% set caro=get_data('caro_'~ip)|last.data|json_decode|default([]) %}
{% for a in 1..s %}<tr>
{% for b in 1..s %}<td class='square' id='{{a}}#{{b}}'><a id="mi" href="?go1={{a}}&go2={{b}}&room={{ip}}"><div class='caro caro{{caro[a~'#'~b]|first}}' title="{{a}}#{{b}}">{{caro[a~'#'~b]|first}}</div></a></td>
{% endfor%}</tr>
{% endfor%}
</tbody>
</table >
{{win}}

{{ ARRAYscore('caro_'~ip, s)}}


<div class="more-1"><a href="?row=10&room={{ip}}">10x10</a> <a href="?row=12&room={{ip}}">12x12</a> <a href="?row=15&room={{ip}}">15x15</a> <a href="?row=20&room={{ip}}">20x20</a> <a href="?row=25&room={{ip}}">25x25</a> <a href="?reset=1&room={{ip}}">RESET</a></div>
</miLoad>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/js/autoLoad.js"></script>
</html>[/code]

_function.twig[code]{% macro add(key,k,v) %}
{% set id=get_data(key)|last.id %}
{% if id %}
{% set data=get_data(key)|last.data|json_decode|merge({(k):(v)})|json_encode %}
{{ update_data_by_id(key,id,data) }}
{% else %}
{% set data=({})|merge({(k):(v)}) %}
{{save_data(key,data|json_encode)}}
{% endif %}
{% endmacro %}

{% macro get(key,v) %}{% spaceless %}
{% if v %}
{{ get_data(key)|last.data|json_decode[v] }}
{% else %}
{{ get_data(key)|last.data|raw }}{% endif %}
{% endspaceless %}{% endmacro %}

{% macro checkwin(idbanco,s) %}{% spaceless %}
{% set datacaro=get_data(idbanco)|last.data|json_decode|default([]) %}
{% set break = false %}
{% set winner = '' %}
{% for i in 1..s if not break %}
{% for j in 1..s if not break %}
{#check dọc#}
{% if not break and datacaro[i ~ '#' ~ j] and datacaro[i ~ '#' ~ j]|first == datacaro[(i+1) ~ '#' ~ j]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+2) ~ '#' ~ j]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+3) ~ '#' ~ j]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+4) ~ '#' ~ j]|first %}
{% set break = true %}
{{datacaro[i ~ '#' ~ j]|first}} thắng
{% endif %}
{#check ngang#}
{% if not break and datacaro[i ~ '#' ~ j] and datacaro[i ~ '#' ~ j]|first == datacaro[i ~ '#' ~ (j+1)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[i ~ '#' ~ (j+2)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[i ~ '#' ~ (j+3)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[i ~ '#' ~ (j+4)]|first %}
{% set break = true %}
{{datacaro[i ~ '#' ~ j]|first}} thắng
{% endif %}
{#check chéo \ #}
{% if not break and datacaro[i ~ '#' ~ j] and datacaro[i ~ '#' ~ j]|first == datacaro[(i+1) ~ '#' ~ (j+1)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+2) ~ '#' ~ (j+2)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+3) ~ '#' ~ (j+3)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i+4) ~ '#' ~ (j+4)]|first %}
{% set break = true %}
{{datacaro[i ~ '#' ~ j]|first}} thắng
{% endif %}
{#check chéo \ #}
{% if not break and datacaro[i ~ '#' ~ j] and datacaro[i ~ '#' ~ j]|first == datacaro[(i-1) ~ '#' ~ (j+1)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i-2) ~ '#' ~ (j+2)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i-3) ~ '#' ~ (j+3)]|first and datacaro[i ~ '#' ~ j]|first == datacaro[(i-4) ~ '#' ~ (j+4)]|first%}
{% set break = true %}
{{datacaro[i ~ '#' ~ j]|first}} thắng
{% endif %}
{% endfor %}{% endfor %}
{% endspaceless %}
{% endmacro %}


{% macro checkscore(idbanco, s) %}{% spaceless %}
{% set phongthu = [6, 36, 126, 1458] %}
{% set tancong = [3, 27, 110, 990] %}
{% set score = [] %}
{% set datacaro = get_data(idbanco)|last.data|json_decode|default([]) %}
{% set turn = datacaro|last|first %}
{% if turn == 'X' %}{% set nextturn = 'O' %}{% elseif turn == 'O' %}{% set nextturn = 'X' %}{% endif %}
{% set break = false %}
{# danh gia theo cot doc #}
{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i+k) <= s and datacaro[(i+k) ~ '#' ~ (j)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i+k) <= s and datacaro[(i+k) ~ '#' ~ (j)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i+k) ~ '#' ~ (j)] and (i+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang ngang #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (j+k) <= s and datacaro[(i) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (j+k) <= s and datacaro[(i) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i) ~ '#' ~ (j+k)] and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang cheo \ #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i+k) <= s and (j+k) <= s and datacaro[(i+k) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i+k) <= s and (j+k) <= s and datacaro[(i+k) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i+k) ~ '#' ~ (j+k)] and (i+k) <= s and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang cheo / #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i-k) > 0 and (j+k) <= s and datacaro[(i-k) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i-k) > 0 and (j+k) <= s and datacaro[(i-k) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i-k) ~ '#' ~ (j+k)] and (i-k) > 0 and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i-k) ~ '#' ~ (j-k)) : (score[((i-k) ~ '#' ~ (j+k))]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{% set bestmove = '' %}
{% for k,v in score|sort|reverse|slice(0,1) %}
{% set bestmove = k %}
{% endfor %}
{{bestmove}}
{% endspaceless %}
{% endmacro %}


{% macro ARRAYscore(idbanco, s) %}{% spaceless %}
{% set phongthu = [6, 36, 126, 1458] %}
{% set tancong = [3, 27, 110, 990] %}
{% set score = [] %}
{% set datacaro = get_data(idbanco)|last.data|json_decode|default([]) %}
{% set turn = datacaro|last|first %}
{% if turn == 'X' %}{% set nextturn = 'O' %}{% elseif turn == 'O' %}{% set nextturn = 'X' %}{% endif %}
{% set break = false %}
{# danh gia theo cot doc #}
{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i+k) <= s and datacaro[(i+k) ~ '#' ~ (j)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i+k) <= s and datacaro[(i+k) ~ '#' ~ (j)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i+k) ~ '#' ~ (j)] and (i+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i+k) ~ '#' ~ j) : (score[((i+k) ~ '#' ~ j)]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang ngang #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (j+k) <= s and datacaro[(i) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (j+k) <= s and datacaro[(i) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i) ~ '#' ~ (j+k)] and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i) ~ '#' ~ (j+k)) : (score[((i) ~ '#' ~ (j+k))]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang cheo \ #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i+k) <= s and (j+k) <= s and datacaro[(i+k) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i+k) <= s and (j+k) <= s and datacaro[(i+k) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i+k) ~ '#' ~ (j+k)] and (i+k) <= s and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i+k) ~ '#' ~ (j+k)) : (score[((i+k) ~ '#' ~ (j+k))]+300 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}

{# danh gia theo hang cheo / #}

{% for j in 1..s if not break %}
{% for i in 1..s if not break %}
{% set s1 = 0 %}{% set s2 = 0 %}
{% for k in 1..4 if not break %}
{% if not break and (i-k) > 0 and (j+k) <= s and datacaro[(i-k) ~ '#' ~ (j+k)]|first == 'X' %}{% set s1 = s1+1 %}{% endif %}
{% if not break and (i-k) > 0 and (j+k) <= s and datacaro[(i-k) ~ '#' ~ (j+k)]|first == 'O' %}{% set s2 = s2+1 %}{% endif %}
{% endfor %}
{% if s1*s2 == 0 and s1!=s2 %}
{% for k in 1..4 if not break %}
{% if not datacaro[(i-k) ~ '#' ~ (j+k)] and (i-k) > 0 and (j+k) <= s %}
{% if s1 == 0 %}
{% if nextturn == 'X' %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + phongthu[(s2)]) }) %}
{% else %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + tancong[(s2)]) }) %}
{% endif %}
{% endif %}
{% if s2 == 0 %}
{% if nextturn == 'O' %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + phongthu[(s1)]) }) %}
{% else %}
{% set score=score|merge({ ((i-k) ~ '#' ~ (j+k)) : (score[((i-k) ~ '#' ~ (j+k))] + tancong[(s1)]) }) %}
{% endif %}
{% endif %}
{% if s1 == 4 or s2 == 4%}{% set score=score|merge({ ((i-k) ~ '#' ~ (j-k)) : (score[((i-k) ~ '#' ~ (j+k))]*2 ) }) %}{% endif %}{% endif %} {% endfor %} {% endif %}
{% endfor %}{% endfor %}
{{score|sort|reverse|json_encode}}
{% endspaceless %}
{% endmacro %}[/code]
Edited by: godlike
[Like=6] Min , Lvy2003 , tiaxgame , mrducz95 , Tuankill , khanh
* copecute  (Member) [Off]
10 * 16
*   Cách đây 1 tháng
thấy đăng đuợc 30s nên vào cmt
* nhokdung  (Member) [Off]
30 * 17
*   Cách đây 1 tháng
Gửi từ godlike:
Hi mọi người Lâu lắm rồi mình mới share một code gì đó, nhưng vì nó không hoàn thiện nên cũng không muốn share làm gì..và mình cũng không có ý định hoàn thiện nó Lần này là code BOT caro (bản còn đá ...
Chơi với người đi
[Like=1] godlike
* tiaxgame  (Admin) [Off]
386 * 950
*   Cách đây 1 tháng
Gửi từ godlike:
Hi mọi người Lâu lắm rồi mình mới share một code gì đó, nhưng vì nó không hoàn thiện nên cũng không muốn share làm gì..và mình cũng không có ý định hoàn thiện nó Lần này là code BOT caro (bản còn đá ...
đù. 3 days mới để ý hihi
[Like=1] godlike
* VinaDP  (Member) [ON]
182 * 266
*   Cách đây 1 tháng
Gửi từ godlike:
Hi mọi người Lâu lắm rồi mình mới share một code gì đó, nhưng vì nó không hoàn thiện nên cũng không muốn share làm gì..và mình cũng không có ý định hoàn thiện nó Lần này là code BOT caro (bản còn đá ...
Nhìn code thôi là biết nó ở cái trình độ nào decu
[Like=1] godlike
* mrducz95  (Smod) [Off]
97 * 369
*   Cách đây 1 tháng
Tuyệt vời
[Like=1] godlike
▼ Tổng số: 6
- Share:
BBCode:

Link: