求黑白棋算法。 求C# 黑白棋翻转算法

\u6c42java\u9ed1\u767d\u68cb\u641c\u7d22\u7b97\u6cd5\u3002\u3002\u3002\u3002

public boolean fanqi(int x, int y) {
boolean a = false;
if (qi[x][y] == 0) {

if (flag) {// \u9ed1\u5403\u767d
if (y - 1 > 0 && qi[x][y - 1] == -1) {
for (int i = 2; y - i >= 0; i++) {
if (qi[x][y - i] == 1) {
for (int n = 1; n < i; n++) {
qi[x][y - n] = 1;

}
a = true;
if (qi[x][y - i] == 0)
i = 9;
}

}
}

if (y + 1 < 8 && qi[x][y + 1] == -1) {
for (int i = 2; y + i < 8; i++) {
if (qi[x][y + i] == 1) {
for (int n = 1; n < i; n++) {
qi[x][y + n] = 1;

}
a = true;
if (qi[x][y + i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && qi[x + 1][y] == -1) {
for (int i = 2; x + i < 8; i++) {
if (qi[x + i][y] == 1) {
for (int n = 1; n < i; n++) {
qi[x + n][y] = 1;

}
a = true;
if (qi[x + i][y] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && qi[x - 1][y] == -1) {
for (int i = 2; x - i >= 0; i++) {
if (qi[x - i][y] == 1) {
for (int n = 1; n < i; n++) {
qi[x - n][y] = 1;

}
a = true;
if (qi[x - i][y] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && y - 1 >= 0 && qi[x - 1][y - 1] == -1) {
for (int i = 2; x - i >= 0 && y - i >= 0; i++) {
if (qi[x - i][y - i] == 1) {
for (int n = 1; n < i; n++) {
qi[x - n][y - n] = 1;

}
a = true;
if (qi[x - i][y - i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && y - 1 >= 0 && qi[x + 1][y - 1] == -1) {
for (int i = 2; x + i < 8 && y - i >= 0; i++) {
if (qi[x + i][y - i] == 1) {
for (int n = 1; n < i; n++) {
qi[x + n][y - n] = 1;

}
a = true;
if (qi[x + i][y - i] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && y + 1 < 8 && qi[x - 1][y + 1] == -1) {
for (int i = 2; x - i >= 0 && y + i < 8; i++) {
if (qi[x - i][y + i] == 1) {
for (int n = 1; n < i; n++) {
qi[x - n][y + n] = 1;

}
a = true;
if (qi[x - i][y + i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && y + 1 < 8 && qi[x + 1][y + 1] == -1) {
for (int i = 2; x + i < 8 && y + i < 8; i++) {
if (qi[x + i][y + i] == 1) {
for (int n = 1; n < i; n++) {
qi[x + n][y + n] = 1;

}
a = true;
if (qi[x + i][y + i] == 0)
i = 9;
}
}
}

}

else {// \u767d\u5403\u9ed1
if (y - 1 > 0 && qi[x][y - 1] == 1) {
for (int i = 2; y - i >= 0; i++) {
if (qi[x][y - i] == -1) {
for (int n = 1; n < i; n++) {
qi[x][y - n] = -1;

}
a = true;
if (qi[x][y - i] == 0)
i = 9;
}

}
}

if (y + 1 < 8 && qi[x][y + 1] == 1) {
for (int i = 2; y + i < 8; i++) {
if (qi[x][y + i] == -1) {
for (int n = 1; n < i; n++) {
qi[x][y + n] = -1;

}
a = true;
if (qi[x][y + i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && qi[x + 1][y] == 1) {
for (int i = 2; x + i < 8; i++) {
if (qi[x + i][y] == -1) {
for (int n = 1; n < i; n++) {
qi[x + n][y] = -1;

}
a = true;
if (qi[x + i][y] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && qi[x - 1][y] == 1) {
for (int i = 2; x - i >= 0; i++) {
if (qi[x - i][y] == -1) {
for (int n = 1; n < i; n++) {
qi[x - n][y] = -1;

}
a = true;
if (qi[x - i][y] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && y - 1 >= 0 && qi[x - 1][y - 1] == 1) {
for (int i = 2; x - i >= 0 && y - i >= 0; i++) {
if (qi[x - i][y - i] == -1) {
for (int n = 1; n < i; n++) {
qi[x - n][y - n] = -1;

}
a = true;
if (qi[x - i][y - i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && y - 1 >= 0 && qi[x + 1][y - 1] == 1) {
for (int i = 2; x + i < 8 && y - i >= 0; i++) {
if (qi[x + i][y - i] == -1) {
for (int n = 1; n < i; n++) {
qi[x + n][y - n] = -1;

}
a = true;
if (qi[x + i][y - i] == 0)
i = 9;
}
}
}
if (x - 1 >= 0 && y + 1 < 8 && qi[x - 1][y + 1] == 1) {
for (int i = 2; x - i >= 0 && y + i < 8; i++) {
if (qi[x - i][y + i] == -1) {
for (int n = 1; n < i; n++) {
qi[x - n][y + n] = -1;

}
a = true;
if (qi[x - i][y + i] == 0)
i = 9;
}
}
}
if (x + 1 < 8 && y + 1 < 8 && qi[x + 1][y + 1] == 1) {
for (int i = 2; x + i < 8 && y + i < 8; i++) {
if (qi[x + i][y + i] == -1) {
for (int n = 1; n < i; n++) {
qi[x + n][y + n] = -1;

}
a = true;
if (qi[x + i][y + i] == 0)
i = 9;
}
}
}

}

}
if (a)
return true;
else
return false;

}

\u5982\u679c\u662f\u4fee\u6539\u73b0\u6709\u4ee3\u7801\uff0c\u53ef\u4ee5\u7559\u8054\u7cfb\u77a7\u77a7\u3002

优先级算法(1-8)x( a-h)

对这64个格分别定义优先级,优先级高的先落子,同优先级的(同优先级的格子非常少)考虑吃子数。
算法简单极易实现,做的AI保证无敌。

当然 这64个格子的具体优先级,需要精通黑白棋的人来分析了。

斑马的算法是公开的,去看斑马的源代码去 。顺便吐槽一下那个提出优先级算法的。黑白棋中的星位是拥有大攻击力和大损害的点位,只有在合适的时机去踩才是好点,按照优先级来,基本就可以跳过这个点位了,那么你的棋力也有限得紧了。其实现在就是拼计算机的质量,老老实实穷举是最无敌的,以前的破机器都能反搜16步,拼着巨型机的性能,反搜30步也不是不行,做好剪枝和平衡的话,我觉得电脑已经无敌了

  • 姹傞粦鐧芥绠楁硶銆
    绛旓細浼樺厛绾х畻娉(1-8)x( a-h)瀵硅繖64涓牸鍒嗗埆瀹氫箟浼樺厛绾锛屼紭鍏堢骇楂樼殑鍏堣惤瀛愶紝鍚屼紭鍏堢骇鐨勶紙鍚屼紭鍏堢骇鐨勬牸瀛愰潪甯稿皯锛夎冭檻鍚冨瓙鏁般傜畻娉曠畝鍗曟瀬鏄撳疄鐜帮紝鍋氱殑AI淇濊瘉鏃犳晫銆傚綋鐒 杩64涓牸瀛愮殑鍏蜂綋浼樺厛绾э紝闇瑕佺簿閫氶粦鐧芥鐨勪汉鏉ュ垎鏋愪簡銆
  • (灏忓鐢绠楁硶)榛戠櫧妫瀛愪竴鍫,榛戞槸鐧界殑2鍊.姣忔鍙4榛,3鐧.澶氬皯娆″悗,鐧戒綑...
    绛旓細4x+18=2*锛3x+1锛夎В寰梮=8 鍗8娆″悗锛岀櫧浣1锛岄粦浣18
  • 姹俲ava榛戠櫧妫鎼滅储绠楁硶銆傘傘
    绛旓細public boolean fanqi(int x, int y) { boolean a = false;if (qi[x][y] == 0) { if (flag) {// 榛戝悆鐧 if (y - 1 > 0 && qi[x][y - 1] == -1) { for (int i = 2; y - i >= 0; i++) { if (qi[x][y - i] == 1) { for (int n = 1; n < ...
  • 浜哄伐鏅鸿兘璁捐,榛戠櫧妫浼板煎嚱鏁版湁鍝簺,甯屾湜璇︾粏璁茶В
    绛旓細杩欑绠楁硶鐨勬剰鎬濇槸锛涓嶅悓鐨勬鏍兼湁涓嶅悓鐨勫硷紝瑙掔殑鍊煎ぇ鑰岃鏃佽竟鐨勬牸瀛愬艰灏銆傚拷瑙嗗绉扮殑璇濓紝妫嬬洏涓婃湁10涓笉鍚岀殑浣嶇疆锛屾瘡涓牸瀛愭牴鎹笁绉嶅彲鑳芥ц祴鍊硷細榛戞銆佺櫧妫嬪拰绌恒傛洿鏈夌粡楠岀殑閫艰繎鏄湪娓告垙鐨勪笉鍚岄樁娈靛鏍煎瓙璧嬩簣涓嶅悓鐨勫笺備緥濡傦紝瑙掑湪寮灞闃舵鍜屼腑灞寮濮嬮樁娈垫瘮缁堝眬闃舵鏇撮噸瑕併備竴鑸涓猴紝閲囩敤杩欑绠楁硶...
  • 鍥存鎬庝箞鐐圭洰
    绛旓細鍥存鐐圭洰绠楁硶鏈変袱绉嶏紝涓绉嶆槸鏁板瓙娉曪紝鍙︿竴绉嶆槸璁$洰娉銆1銆佹暟瀛愭硶 鏁板瓙娉曟槸鏍规嵁妫嬪眬缁堝眬鍚庡灞鍙屾柟鐨勬瀛愬湪妫嬬洏涓婃墍褰掑睘浣嶇偣鐨勫灏戞潵璁$畻鍒ゆ柇鑳滆礋缁撴灉鐨勩傛墍璋撳綊鏈暟锛屾槸鎸囨暟瀛愭硶鐨勫熀纭鑳滆礋鏍囧噯銆傚洜涓烘爣鍑嗗洿妫嬫鐩樻昏鏈361涓氦鍙夌偣锛屾墍浠ュ灞鍙屾柟姣忔柟搴斿緱鐐规暟搴斾负鎬荤偣鏁扮殑涓鍗婏紝鍗180.5鐐广傚浜庢鏁...
  • 榛戠櫧妫鎬庝箞鐜╂墠鑳界帺濂
    绛旓細灏辫鐪嬫儏鍐典簡锛屽彧瑕佹病璁╁鏂逛笅鍥涜鐨勬瀛愪綘閮藉彲浠ヤ笅銆傚鏋滈兘鑳借浠栧崰鎹洓瑙掔殑璇濓紝灏卞彲浠ユ壘绗簩鏍硷紙妯垨绔栫殑绠楋級鏄┖鐨勶紝涓嬩竴姝ュ彲浠ヨ瀵规墜鍗犲洓瑙掔殑妫锛屽啀涓嬬浜屾牸锛堟í鎴栫珫鐨勭畻锛夊氨鍙互杩炵画鍚冧竴琛屾銆傝繕鏈夌殑鏄紝杈逛笅杈圭Н绱繁鏂规瀛愶紙淇濊瘉鍦ㄤ笉琚鏂瑰崰鎹洓瑙掞級銆備笉鏂鍔犺嚜宸辩粡楠岋紝鏈夋墍杩涙銆
  • java 缂榛戠櫧妫濡備綍瀹炵幇鍒ゆ柇閭d簺浣嶇疆鑳藉涓嬫
    绛旓細鍘熸潵鏄姹傛湁瀛愬悆鎵嶈兘涓嬪瓙鐨绠楁硶鍟娿備綘鍙互鍐欎釜绠楁硶锛屼粠瑕佷笅瀛愮殑鍦版柟寰鍛ㄥ洿鍏釜鏍煎瓙鐨勬柟鍚戞悳绱紙寰幆8娆★級{ if 鏍煎瓙閲岄潰鏈夊鏂圭殑瀛 then { 缁х画寰杩欎釜鏂瑰悜鎼滅储锛岀洿鍒版病鏈夊鏂圭殑瀛愶紝濡傛灉灏藉ご鏄┖浣嶏紝娌℃湁宸辨柟鐨勫瓙锛屽垯澶辫触娆℃暟+1銆傚惁鍒欑炕杞腑闂村叏閮ㄧ殑瀵规柟鐨勫瓙銆倉 else 澶辫触娆℃暟+1銆倉 澶辫触娆℃暟==8...
  • 鎼滅储绠楁硶鐨勫簲鐢ㄦ渚
    绛旓細鍦ㄦ鐩樹笂鎷ユ湁1鏉″叕鍏辫竟鐨2涓柟鏍肩О涓虹浉閭绘柟鏍笺備竴涓柟鏍兼渶澶氬彲鏈4涓浉閭绘柟鏍笺傚湪鐜榛戠櫧妫娓告垙鏃讹紝姣忎竴姝ュ彲灏嗕换浣2涓浉閭绘柟鏍间腑妫嬪瓙浜掓崲浣嶇疆銆傚浜庣粰瀹氱殑鍒濆娓告垙鐘舵佸拰鐩爣娓告垙鐘舵侊紝缂栫▼璁$畻浠庡垵濮嬫父鎴忕姸鎬佸彉鍖栧埌鐩爣娓告垙鐘舵佺殑鏈鐭潃妫嬪簭鍒椼(2)鍒嗘瀽杩欓鎴戜滑鍙互鎯冲埌鐢ㄦ繁搴︿紭鍏堟悳绱㈡潵鍋氾紝浣嗘槸濡傛灉涓嬩竴...
  • 涓涓皬娓告垙,n*n鏂规牸,姣忎釜鏂规牸鎴栭粦鎴栫櫧,鐐瑰嚮涓涓柟鏍,瀹冭嚜宸变互鍙婂畠鐨勪笂涓...
    绛旓細榛戠櫧妫锛岀數鑴戠郴缁熺▼搴忚嚜甯︾殑娓告垙銆傚湪n鐨勬柟鏍间腑杩涜璺虫娓告垙銆傝瀹氭瘡璺充竴姝ュ彧鑳藉悜宸︼紝鎴栧悜鍙筹紝鎴栧悜涓婏紝涓嶈兘鍚戜笅锛屼笖涓娆¤繛缁璧扮殑璺緞涓笉鑳介噸澶嶇粡杩囧悓涓灏忔柟鏍硷紝璁捐〃绀轰粠宸︿笅瑙掆溾棆鈥濅綅缃紑濮嬶紝杩炵画璺冲埌鍙充笂瑙掆溾槅鈥濅綅缃粨鏉熺殑鎵鏈変笉鍚岃矾寰勭殑鏉℃暟銆傛父鎴忔剰涔 涔濆鏍兼父鎴忓浜轰滑鐨勬濈淮閿荤偧鏈夌潃鏋佸ぇ鐨勪綔鐢...
  • 榛戠櫧妫(涓绉嶆绫绘父鎴)璇︾粏璧勬枡澶у叏
    绛旓細涓昏绐佺牬鐐瑰湪浜庡畠浠妸绠楁硶鏀瑰杽涓哄鎵ц缁墽琛(multithreading)銆 妫嬪叿 妫嬪瓙 :榛戠櫧妫妫嬪瓙姣忛鐢遍粦鐧戒袱鑹茬粍鎴,涓闈㈢櫧,涓闈㈤粦,鍏64涓(鍖呮嫭妫嬬洏涓ぎ鐨4涓)銆傛瀛愬憟鍦嗛ゼ褰 妫嬬洏 :榛戠櫧妫嬫鐩樼敱64鏍肩殑姝f柟鏍肩粍鎴,娓告垙杩涜鏃舵瀛愯涓嬪湪鏍煎唴銆傛鐩樺彲鍒嗕负鈥滆鈥濄佲滆竟鈥濅互鍙 鈥滀腑鑵光濄傜幇浠婄殑妫嬬洏澶氫互8x8杈冧负...
  • 扩展阅读:黑白棋的下法 ... 黑白棋13步必胜技巧 ... 黑白棋手工图 ... 黑白棋怎么玩规则 ... 黑白棋怎么玩图解法 ... 黑白棋规则详解 ... 黑白棋简单玩法 ... 黑白棋单机版下载 ... 黑白棋9步赢过程图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网