OSDN Git Service

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