-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathWordConf.cs
140 lines (127 loc) · 2.99 KB
/
WordConf.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WordConf {
/// <summary>
/// 单词列表
/// </summary>
private static string[] m_WordList = new string[] {
"time",
"person",
"year",
"thing",
"world",
"life",
"hand",
"part",
"child",
"woman",
"place",
"work",
"week",
"case",
"point",
"government",
"company",
"number",
"group",
"problem",
"fact",
"have",
"make",
"know",
"take",
"come",
"think",
"look",
"want",
"give",
"find",
"tell",
"work",
"seem",
"feel",
"leave",
"call",
"good",
"first",
"last",
"long",
"great",
"little",
"other",
"right",
"high",
"different",
"small",
"large",
"next",
"early",
"young",
"important",
"public",
"same",
"able",
"with",
"from",
"about",
"into",
"over",
"after",
"that",
"this",
"they",
"will",
"would",
"there",
"their"
};
/// <summary>
/// 使用过的单词缓存列表,满了之后全部清空
/// </summary>
private static string[] m_LastUseStrList = new string[] {"","",""};
/// <summary>
/// 缓存单词列表的长度
/// </summary>
private static int m_lastUseListLength = 3;
/// <summary>
/// 缓存列表使用的索引位置,0表示尚未使用
/// </summary>
private static int m_LastUseStrIndex = 0;
/// <summary>
/// 随机生成一个单词
/// </summary>
/// <returns></returns>
public static string GenWord() {
int len = m_WordList.Length;
if (len < 3) {
return "";
}
string word;
while (true) {
int i = Random.Range(0, len);
word = m_WordList[i];
bool exists = ((IList)m_LastUseStrList).Contains(word);
if (!exists) {
break;
}
}
PushToCache(word);
return word;
}
/// <summary>
/// 将使用过的单词放入缓存中,用于去重
/// </summary>
/// <param name="word"></param>
private static void PushToCache(string word) {
//清空缓存数据
if (m_LastUseStrIndex >= m_lastUseListLength) {
m_LastUseStrIndex = 0;
m_LastUseStrList = new string[m_lastUseListLength];
}
Debug.Log(m_LastUseStrIndex);
Debug.Log(m_LastUseStrList);
m_LastUseStrList[m_LastUseStrIndex] = word;
m_LastUseStrIndex++;
}
}