OSDN Git Service

ver 1.1.0
[jugglemaster/source.git] / workspace / .metadata / .plugins / org.eclipse.core.resources / .history / 7a / b00cc038e37a001010fefbd8cbeef2be
1 package com.jm.gen;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 public class MainGen {\r
7         // \83G\83\89\81[\83R\81[\83h\r
8         public static final int GEN_ERR_UNKNOWN = -1;\r
9         public static final int GEN_ERR_MALLOC = -2;\r
10         public static final int GEN_ERR_BUFFSIZE = -3;\r
11         public static final int GEN_ERR_CANCELED = -4;\r
12 \r
13         public static final int GEN_LENGTH_MIN = 1;\r
14         public static final int GEN_LENGTH_MAX = 255;\r
15         // \83T\83C\83g\83X\83\8f\83b\83v\82Ì\8eí\97Þ\r
16         public static final int SPT_NORMAL = 0x00;\r
17         public static final int SPT_SYNCHRO = 0x01;\r
18         public static final int SPT_ALL = (SPT_NORMAL | SPT_SYNCHRO);\r
19         \r
20         public static void main(String[] args){\r
21                 MainGen m = new MainGen();\r
22                 GenProc gs = new GenProc();\r
23                 gs.setMode(SPT_NORMAL);\r
24                 \r
25                 List<String> list = m.generateSiteswap(gs, 3, "1-3");\r
26                 System.out.println(list);\r
27         }\r
28         \r
29         public List<String> generateSiteswap(GenProc gs, int balls, String period){\r
30                 List<String> list = new ArrayList<String>();\r
31                 char[] p = StdLib.stoc(period);\r
32                 \r
33                 int count = GetSiteswap(gs, list, balls, p);\r
34                 return list;\r
35         }\r
36         \r
37         private int GetSiteswap(GenProc pgs, List<String> list, int balls, char[] sLength){\r
38                 int[] pdwLen;\r
39                 \r
40             //char[] sLength = new char[StdLib.BUFFLEN];\r
41             char[] sSeed = new char[StdLib.BUFFLEN];\r
42             //char[] sClass = new char[StdLib.BUFFLEN];\r
43             char[] sBuff = new char[StdLib.BUFFLEN];\r
44             \r
45             int i;\r
46             int j;\r
47             int iMax;\r
48             int iSize;\r
49             int iCount;\r
50             int iLen;\r
51             int iSeed;\r
52             int iStart;\r
53             int iEnd;\r
54                 \r
55                 \r
56             // TODO\r
57             int n = 0;\r
58             //sLength[n++] = '3';\r
59             //sLength[n++] = '\0';\r
60             //int balls = 3;\r
61             int m = 0;\r
62 //          sSeed[m++] = '1';\r
63 //          sSeed[m++] = '-';\r
64 //          sSeed[m++] = '3';\r
65             sSeed[m++] = '\0';\r
66             \r
67             iSeed = MainJudge.GetSiteswapCycle(sSeed);\r
68             \r
69             // TODO\r
70             // \8dÅ\91å\8fo\97Í\90\94\82ª 0 \82È\82ç int \82Ì\8dÅ\91å\92l\82É\r
71             // 10000;\r
72             iMax = 10000;\r
73 \r
74             // \8eü\8aú\82ð\95\\82·\90®\90\94\94z\97ñ\82Ì\8dì\90¬\r
75             iLen = StringEx.TextToIntArray(sLength, null, 0, true);\r
76             if(iLen < 0)\r
77                 return GEN_ERR_UNKNOWN;\r
78             pdwLen = new int[iLen];\r
79             //if(!pdwLen)\r
80             //    return GEN_ERR_MALLOC;\r
81             StringEx.TextToIntArray(sLength, pdwLen, iLen, true);\r
82 \r
83             // \83T\83C\83g\83X\83\8f\83b\83v\90\90¬\r
84             iCount = 0;\r
85             //for(i = 0; i < iLen && iCount < iMax && !(*pbStop); i++){\r
86                 for(i = 0; i < iLen && iCount < iMax; i++){\r
87                 iStart = (int)StdLib.LOWORD(pdwLen[i]);\r
88                 iEnd   = (int)StdLib.HIWORD(pdwLen[i]);\r
89                 // \8eü\8aú\82Ì\91Ã\93\96\90«\83`\83F\83b\83N\r
90                 if(iStart < GEN_LENGTH_MIN)\r
91                     iStart = GEN_LENGTH_MIN;\r
92                 if(iEnd > GEN_LENGTH_MAX)\r
93                     iEnd = GEN_LENGTH_MAX;\r
94                 if(iEnd < iStart)\r
95                     iEnd = iStart;\r
96                 if(iStart > GEN_LENGTH_MAX || iEnd < GEN_LENGTH_MIN)\r
97                     break;\r
98                 //for(j = iStart; j <= iEnd && iCount < iMax && !(*pbStop); j++){\r
99                     for(j = iStart; j <= iEnd && iCount < iMax; j++){\r
100                     //pgs->Length = j;\r
101                     //pgs->Cancel = pbStop;\r
102                         pgs.init(balls, j);\r
103                     if(j == iSeed)\r
104                         StdLib.strcpy(sBuff, sSeed);\r
105                     else\r
106                         sBuff[0] = '\0';\r
107                     if(j < iSeed)\r
108                         continue;\r
109                     //iSize = InitGenerator(pgs, sBuff);\r
110                     iSize = pgs.InitGenerator(sBuff);\r
111                     // \83p\83^\81[\83\93\82ð1\82Â\82¸\82Â\90\90¬\r
112                     //while(iSize > 0 && iCount < iMax && !(*pbStop)){\r
113                         while(iSize > 0 && iCount < iMax){\r
114                         if(iSize >= StdLib.BUFFLEN){\r
115                             //free(pdwLen);\r
116                                 pdwLen = null;\r
117                             return GEN_ERR_BUFFSIZE;\r
118                         }\r
119                         // \83\8a\83X\83g\83{\83b\83N\83X\82É\8ai\94[\r
120                         //if(SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)sBuff) == LB_ERRSPACE || SendMessage(hName, LB_ADDSTRING, 0, (LPARAM)sBuff) == LB_ERRSPACE){\r
121                         //    free(pdwLen);\r
122                         //    return GEN_ERR_MALLOC;\r
123                         //}\r
124                         String item = StdLib.ctos(sBuff);\r
125                         list.add(item);\r
126                         \r
127                         iSize = pgs.EnumSiteswap(sBuff);\r
128                         iCount++;\r
129                         //SendMessage(ghWndMain, WM_USER_GEN, SSN_ADDSITESWAP, (LPARAM)iCount);\r
130                     }\r
131                 }\r
132             }\r
133                 \r
134             return iCount;\r
135         }\r
136 }\r