Re: [請益] 寫出自己想要的程式

看板Soft_Job (軟體人)作者 (ideaupsoho)時間12年前 (2014/05/11 09:02), 編輯推噓16(16022)
留言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
原來20年以上程式設計經驗寫出來的code長這樣喔 佩服佩服
05/11 10:57, 2F

05/11 11:28, , 3F
很有碼工的fu...
05/11 11:28, 3F

05/11 11:41, , 4F
20年的code長這樣.. 無怪乎需時三年
05/11 11:41, 4F

05/11 11:44, , 5F
好弱
05/11 11:44, 5F

05/11 12:04, , 6F
恕我直言,我真的看不懂PO出這麼能說明什麼
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
這就是典型只有自己能維護的code
05/11 12:40, 9F

05/11 13:06, , 10F
可以貼在 github or bitbucket? 這樣比較好看一些
05/11 13:06, 10F

05/11 14:05, , 11F
.............
05/11 14:05, 11F

05/11 14:28, , 12F
想知道程式強度嗎 歡迎報名TCGA2014
05/11 14:28, 12F

05/11 14:35, , 13F
很標準的只有自己能維護的CODE...
05/11 14:35, 13F

05/11 14:50, , 14F
20年前的code長這樣有麼奇怪的?
05/11 14:50, 14F

05/11 15:32, , 15F
推abc變數
05/11 15:32, 15F

05/11 15:54, , 16F
google 的機器人,需要的智能.
05/11 15:54, 16F

05/11 16:53, , 17F
原po是怕程式碼被盜copy。所以變數都轉換成abc做保護XD
05/11 16:53, 17F

05/11 17:03, , 18F
天啊~這排版我有點ooxx...貼個CodePad吧...眼睛受不了
05/11 17:03, 18F

05/11 17:07, , 19F
你Po Pseudocode 大家來討論一下也好=.="
05/11 17:07, 19F

05/11 18:43, , 20F
你知道程式碼能像篇文章才高竿嗎,但你這code就像用注意
05/11 18:43, 20F

05/11 18:43, , 21F
符號寫作文,念在你有心幫忙,60分低空飛過
05/11 18:43, 21F

05/11 19:13, , 22F
可能是有意義的變數名稱轉abc 不然自己要code review很難
05/11 19:13, 22F

05/11 19:16, , 23F
要離職的時候這樣寫就對了
05/11 19:16, 23F

05/11 19:49, , 24F
......20年
05/11 19:49, 24F

05/11 20:26, , 25F
這篇是想表達目標很困難?程式很複雜?20年?? 好歹寫一下?
05/11 20:26, 25F

05/11 21:02, , 26F
怎麼看起來像大學生作業文
05/11 21:02, 26F

05/12 01:45, , 27F
abcijk012........
05/12 01:45, 27F

05/12 01:59, , 28F
[abcijkxyz][0-9]|[abcijkxyz]{2} 誤
05/12 01:59, 28F

05/12 02:02, , 29F
我漏看了變數fg..
05/12 02:02, 29F

05/12 02:04, , 30F
這應該不是20年前的code吧 原po意思聽起來像用20年經驗寫
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
TreatDragonHasDel內3個TreatDragon00(,k,-,)最後參數為fg
05/12 11:06, 33F

05/12 15:32, , 34F
不像吧=_= 感覺原本就是A1B2C3這種變數名.因為有些參數不太
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
挺酷炫的 XDD
05/13 13:56, 37F

05/13 14:10, , 38F
我還蠻好奇你現在自己是否還能看懂自己當時寫的
05/13 14:10, 38F
文章代碼(AID): #1JRimurq (Soft_Job)
文章代碼(AID): #1JRimurq (Soft_Job)