OSDN Git Service

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