Re: [請益] 寫出自己想要的程式
看板Soft_Job (軟體人)作者ideaup (ideaupsoho)時間12年前 (2014/05/11 09:02)推噓16(16推 0噓 22→)留言38則, 27人參與討論串4/5 (看更多)
為了 8番,
程式如何決定是否吃上家打出的牌, cando= 能得到的 番數,
//電腦的能力 其實很差的,主要靠設計者的功力.
c1=del&15; //del=上家打出的牌, z0[]=本身所具有的牌
if (c1 >= 2 && z0[del - 2] >= 1 && z0[del - 1] >= 1) { trydo |=
1; yes = 1; c9 = del - 2; }
if (c1 >= 1 && c1 != 8 && z0[del - 1] >= 1 && z0[del + 1] >= 1) {
trydo |= 2; yes = 2; c9 = del - 1; }
if (c1 <= 6 && z0[del + 1] >= 1 && z0[del + 2] >= 1) { trydo |=
4; yes = 3; c9 = del; }
if (yes == 0) return -1;
if (TreatDragonHasDel(k,trydo, c1,1) == 0)
if (TreatDragonHasDel(k,trydo, c1,2) == 0)
TreatDragonHasDel(k,trydo, c1,3);
int TreatDragonHasDel(int k,int trydo, int c1, int fg)
{
int DelK=k;
if ((trydo & 1) != 0)
if (TreatDragon00(k, c1 - 2, 1) != 0) return 1;
if ((trydo & 2) != 0)
if (TreatDragon00(k, c1 - 1, 2) != 0) return 1;
if ((trydo & 4) != 0)
if (TreatDragon00(k, c1 - 0, 3) != 0) return 1;
return 0;
}
int TreatDragon00(int kk,int j0, int fg)
{//2008.8
int MinCT0 = MinCT;
stack.Clear(); MinCT = fg;
int jj, k1,k, k2, CanDo = 0, need17 = 1, j1, j2,ret=0,specj=0;
k = del >> 4; k1 = (k + 1) % 3; k2 = (k + 2) % 3; //cc=del&15;
DelIsNeed = 0;
while (CanDo == 0)
{
if (Has3_A(k, j0, 1) >= 3) { CanDo = 24; need17 = 0; break;
}//=13;
if (j0 <= 2 &&(ret=Has333(k, j0 + 0, 1)) >= 1) { CanDo = 16;
need17 = 0; specj = j0 + 2; break; }
if (j0 >= 2 &&(ret=Has333(k, j0 - 2, 1)) >= 1) { CanDo = 16;
need17 = 0; specj = j0; break; }
if (j0 >= 4 &&(ret=Has333(k, j0 - 4, 1)) >= 1) { CanDo = 16;
need17 = 0; specj = j0 - 2; break; }
if ((j0 % 3) == 0)
{
if (Has3(k, 0, k, 3, k, 6, 1) >= 1) { CanDo = 18; need17
= 0; break; }
else
{
j1 = (j0 + 3) % 9; j2 = (j0 + 6) % 9; //2008.9
if (Has3(k, j0, k1, j1, k2, j2, 1) >= 1) { CanDo = 8;
break; }
else if (Has3(k, j0, k1, j2, k2, j1, 1) >= 1) { CanDo
= 8; break; }
}
}
if (Has3(k, j0, k1, j0, k2, j0, 1) >= 1) { CanDo = 10; need17
= 0; break; }
else
{
if (j0 <= 4)
if (Has3(k, j0, k1, j0 + 1, k2, j0 + 2, 1) >= 1) {
CanDo = 6; break; } //2008.9
else if (Has3(k, j0, k1, j0 + 2, k2, j0 + 1, 1) >= 1)
{ CanDo = 6; break; }
if (j0 >= 1 && j0 <= 5)
if (Has3(k, j0, k1, j0 - 1, k2, j0 + 1, 0) >= 1) {
CanDo = 6; break; }
else if (Has3(k, j0, k1, j0 + 1, k2, j0 - 1, 1) >= 1)
{ CanDo = 6; break; }
if (j0 >= 2 && j0 <= 6)
if (Has3(k, j0, k1, j0 - 1, k2, j0 - 2, 0) >= 1) {
CanDo = 6; break; }
else if (Has3(k, j0, k1, j0 - 2, k2, j0 - 1, 1) >= 1)
{ CanDo = 6; break; }
break;
}
int need = 0;
if (ret == 11)
{
if (del == specj || del == specj + 2) need = 1;
}
else if (ret == 12)
{
if (del == specj - 1 || del == specj || del == specj + 1)
need = 1;
}
else if (z0[del] == 0) need = 1;
MinCT = MinCT0; DoEatJob1 = 0;//stack.Clear();
if (CanDo != 0)
{
if (DelIsNeed > 0&& need>0)
if (EatJob1(kk, fg, 100) > 0) { DoEatJob1 = 100+CanDo;
return kk + 10; }//2008.6 fg,0->fg,100
DoEatJob1 = CanDo;
return kk + 1;
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.42.192
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1399770168.A.D74.html
推
05/11 10:39, , 1F
05/11 10:39, 1F
推
05/11 10:57, , 2F
05/11 10:57, 2F
→
05/11 11:28, , 3F
05/11 11:28, 3F
推
05/11 11:41, , 4F
05/11 11:41, 4F
→
05/11 11:44, , 5F
05/11 11:44, 5F
→
05/11 12:04, , 6F
05/11 12:04, 6F
→
05/11 12:08, , 7F
05/11 12:08, 7F
→
05/11 12:09, , 8F
05/11 12:09, 8F
推
05/11 12:40, , 9F
05/11 12:40, 9F
推
05/11 13:06, , 10F
05/11 13:06, 10F
→
05/11 14:05, , 11F
05/11 14:05, 11F
推
05/11 14:28, , 12F
05/11 14:28, 12F
推
05/11 14:35, , 13F
05/11 14:35, 13F
→
05/11 14:50, , 14F
05/11 14:50, 14F
推
05/11 15:32, , 15F
05/11 15:32, 15F
→
05/11 15:54, , 16F
05/11 15:54, 16F
推
05/11 16:53, , 17F
05/11 16:53, 17F
→
05/11 17:03, , 18F
05/11 17:03, 18F
→
05/11 17:07, , 19F
05/11 17:07, 19F
推
05/11 18:43, , 20F
05/11 18:43, 20F
→
05/11 18:43, , 21F
05/11 18:43, 21F
推
05/11 19:13, , 22F
05/11 19:13, 22F
推
05/11 19:16, , 23F
05/11 19:16, 23F
推
05/11 19:49, , 24F
05/11 19:49, 24F
→
05/11 20:26, , 25F
05/11 20:26, 25F
→
05/11 21:02, , 26F
05/11 21:02, 26F
推
05/12 01:45, , 27F
05/12 01:45, 27F
推
05/12 01:59, , 28F
05/12 01:59, 28F
→
05/12 02:02, , 29F
05/12 02:02, 29F
→
05/12 02:04, , 30F
05/12 02:04, 30F
→
05/12 02:04, , 31F
05/12 02:04, 31F
推
05/12 10:48, , 32F
05/12 10:48, 32F
→
05/12 11:06, , 33F
05/12 11:06, 33F
→
05/12 15:32, , 34F
05/12 15:32, 34F
→
05/12 15:32, , 35F
05/12 15:32, 35F
→
05/12 16:50, , 36F
05/12 16:50, 36F
→
05/13 13:56, , 37F
05/13 13:56, 37F
→
05/13 14:10, , 38F
05/13 14:10, 38F
討論串 (同標題文章)
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章