黑白演算法
❶ 黑白棋演算法
這個沒接觸過,BREVERSI.EXE這個小游戲不錯的,程序小,棋力強,你借鑒下看看,日本人做的。
❷ 黑白棋演算法 哪錯了
大致看了一下,你確定這個題目只要循環100次就夠了?t數組會不會有溢出的可能?
我不知你設置t[100]的目的是什麼,但我覺得只要保存最小值就夠了,似乎沒必要設一個數組。
另外,f是多餘的,可以改成這樣:
{
flag = 1 ;
a[ i ] = 'W' ;
a[ i + 1 ] = 'B' ;
a[ i + 2 ] = 'W' ;
check( a ) ;
a[ i ] = 'B' ;
a[ i + 1 ] = 'W' ;
a[ i + 2 ] = 'B' ;
}
❸ 怎樣用matlab實現彩色圖像變黑白圖片演算法
I = imread('test.jpg');%讀入圖片
if ndims(I) == 3%如果圖片是3維(彩圖)
I = rgb2gray(I);%轉成灰圖
end%結束
imshow(I); %展示圖片
這個問題我以前回答過,你搜一下就看到了,不知道對不對!
我的QQ382101365
❹ 怎樣用matlab實現彩色圖像變黑白圖片演算法
簡單來說,目前市面上絕大多數的彩色轉黑白都是通過一個確定的函數Gray=f(R,G,B)將彩色空間映射到灰度空間。然而很容易想到的是,對於任何一個『事先確定好』的映射,我們總是能找到一些『壞』的數據,使得原先還算正常的彩圖變成『很糟糕』的灰度圖。
理由也很簡單:畢竟彩色空間到灰度空間降了兩個維度,對於『事先確定好』的映射函數f,我們總是能找到顏色略有不同但灰度接近的情況。
這個映射函數本身是根據輸入圖像動態計算出來的。換句話說,對於不同的圖,這個映射函數可以是不一樣的!即使是同一個顏色,在不同的圖像中也可能被映射成不同的灰度。
❺ 演算法入門經典的黑白圖問題
說實話沒弄明白什麼是八連塊。。。
不過貌似有越界問題——dfs(x-1,y-1);
這個地方邊界也不對
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++)
if((!vis[i][j])&&(mat[i][j]))
❻ 求黑白棋演算法。
優先順序演算法(1-8)x( a-h)
對這64個格分別定義優先順序,優先順序高的先落子,同優先順序的(同優先順序的格子非常少)考慮吃子數。
演算法簡單極易實現,做的AI保證無敵。
當然 這64個格子的具體優先順序,需要精通黑白棋的人來分析了。
❼ 解答關於「用C語言編寫黑白棋的演算法」的問題
#include"stdio.h"
#include"windows.h"
#defineempty0
#definewhite-1
#defineblack1
#definea8
intboard[a][a];
intplayer;
voidInitBoard()
{
inti,j;
for(j=0;j<a;j++)
for(i=0;i<a;i++)
board[i][j]=empty;
board[4][4]=white;
board[4][3]=black;
board[3][3]=white;
board[3][4]=black;
}
voidPrintBoard()
{
inti,j;
system("CLS");
printf("----------黑白棋人人對弈程序---------- ");
printf("012345678X ");
for(i=0;i<a;i++)
{
printf("%d",1+i);
for(j=0;j<a;j++)
{
if(board[j][i]==black)
{
printf("○");
}
elseif(board[j][i]==white)
{
printf("●");
}
else
{
if(i==0)
{
if(j==0)
printf("┌");
elseif(j==7)
printf("┐");
else
printf("┬");
}
elseif(i==7)
{
if(j==0)
printf("└");
elseif(j==7)
printf("┘");
else
printf("┴");
}
else
{
if(j==0)
printf("├");
elseif(j==7)
printf("┤");
else
printf("┼");
}
}
}
printf(" ");
}
puts("Y");
}
boolExecute(intx,inty,intside)
{
board[x][y]=side;
intdirection[8][2]={{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1}};
inttx,ty;
for(inti=0;i<8;i++)
{
tx=x-direction[i][0];
ty=y-direction[i][1];
boolmid=false;
while(ty<a&&ty>=0&&tx>=0&&tx<a&&board[tx][ty]==-side)
{
mid=true;
ty-=direction[i][1];
tx-=direction[i][0];
}
if(ty<a&&ty>=0&&tx>=0&&tx<a&&board[tx][ty]==side&&mid==true)
{
while(tx!=x||ty!=y){
board[tx][ty]=side;
tx+=direction[i][0];
ty+=direction[i][1];
}
}
}
returntrue;
}
boolJudge(intx,inty,intside)
{
if(x>=0&&x<a&&y>=0&&y<a&&board[x][y]==empty)
{
intdirection[8][2]={{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1}};
inttx,ty;
for(inti=0;i<8;i++)
{
tx=x-direction[i][0];
ty=y-direction[i][1];
boolmid=false;
while(ty<a&&ty>=0&&tx>=0&&tx<a&&board[tx][ty]==-side)
{
mid=true;
ty-=direction[i][1];
tx-=direction[i][0];
}
if(ty<a&&ty>=0&&tx>=0&&tx<a&&board[tx][ty]==side&&mid==true)
{
returntrue;
}
}
}
returnfalse;
}
boolexists(intside)
{
for(inth=0;h<a;h++)
{
for(intj=0;j<a;j++)
{
if(Judge(j,h,side)==true)
{
returntrue;
}
}
}
returnfalse;
}
intwin()
{
intc=0,w=0,b=0;
for(inti=0;i<a;i++)
{
for(intj=0;j<a;j++)
if(board[i][j]==white)
w++;
elseif(board[i][j]==black)
b++;
}
c=w+b;
if(exists(black)==false&&exists(white)==false||c>=a*a)
{
if(b>w)
return1;
elseif(w>b)
return-1;
else
return2;
}
return0;
}
voidInitGame()
{
InitBoard();
player=black;
}
intmain()
{
intx,y;
InitGame();
PrintBoard();
while(1)
{
if(!exists(player)&&exists(-player)){
printf(""%s"沒有有效棋子!",player==black?"黑方":"白方");
player=-player;
continue;
}
printf("請"%s"棋手輸入棋子落點坐標(X,Y):",player==black?"黑方":"白方");
scanf("%d,%d",&x,&y);
x--;y--;
getchar();
if(Judge(x,y,player)==false)
{
printf(" 非法招法! ");
continue;
}else{
Execute(x,y,player);
}
PrintBoard();
intwinresult=win();
if(winresult==2)
{
printf("平局");
printf("輸入任意鍵結束程序...");
getchar();
break;
}
elseif(winresult==white)
{
printf("白方獲勝");
printf("輸入任意鍵結束程序...");
getchar();
break;
}
elseif(winresult==black)
{
printf("黑方獲勝");
printf("輸入任意鍵結束程序...");
getchar();
break;
}
player=-player;
}
return0;
}
❽ 現在有黑白民用電怎麼演算法
演算法:本月用電數-上月用電數=本月用電數,演算法一樣只不過價格不一樣,晚上22:00~早上6:00價格為一半,白天價錢比如0.6元,夜間為0.3元
❾ 有沒有人懂黑白棋(翻轉棋)的核心演算法
通過發現行與行之間的有機的聯系,減少枚舉的量。
把原來的全部枚舉變成枚舉一行,從而加速。
只要確定了第一行的狀態,其餘行的狀態都是可以確定的。