OSDN Git Service

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