이찬

behaviors 어레이로 알고리즘 변경

1 -var totalJob = [] 1 +var totalBehavior = []
2 2
3 -for (i=0; i<jobs.length; i++) { 3 +for (i = 0; i < behaviors.length; i++) {
4 - totalJob = totalJob.concat(jobs[i]) 4 + totalBehavior = totalBehavior.concat(behaviors[i])
5 } 5 }
6 6
7 -function generate (varName, targetID) { 7 +function generate(varName, targetID) {
8 if (isLimitedCheckbox.checked && isLimitedNumInput.value >= 12) { 8 if (isLimitedCheckbox.checked && isLimitedNumInput.value >= 12) {
9 result = 'N'.repeat(isLimitedNumInput.value + 2) 9 result = 'N'.repeat(isLimitedNumInput.value + 2)
10 while (result.length > isLimitedNumInput.value) { 10 while (result.length > isLimitedNumInput.value) {
...@@ -17,83 +17,56 @@ function generate (varName, targetID) { ...@@ -17,83 +17,56 @@ function generate (varName, targetID) {
17 document.getElementById(targetID).innerHTML = result 17 document.getElementById(targetID).innerHTML = result
18 } 18 }
19 19
20 -function generateResult (varName) { 20 +function generateResult(varName) {
21 var result = '' 21 var result = ''
22 22
23 + if (Math.random() < 0.5 && varName === '손진웅') {
24 + var sonjinwungArray = ['리버스투블럭장인', '준구실명먹이기장인', '싸커킥장인', '티베깅하고준구톱에썰리는', '데드하드맨날씹히는', '히오스판자창시자', '욕은필터링하면서야메때는안하는']
25 + var randomSonjinwung = sonjinwungArray[Math.floor(Math.random() * sonjinwungArray.length)]
26 + return randomSonjinwung + varName
27 + }
28 +
23 if (Math.random() < 0.8) { /* 일반 장소 처리 */ 29 if (Math.random() < 0.8) { /* 일반 장소 처리 */
24 var randomDetailLocation = locations[0][Math.floor(Math.random() * locations[0].length)] 30 var randomDetailLocation = locations[0][Math.floor(Math.random() * locations[0].length)]
25 - var randomDetailJob = totalJob[Math.floor(Math.random() * totalJob.length)] 31 + var randomDetailJob = jobs[Math.floor(Math.random() * jobs.length)]
26 - // debug: console.log(randomDetailLocation, randomDetailJob) 32 + var randomDetailBehavior = totalBehavior[Math.floor(Math.random() * totalBehavior.length)]
27 - 33 + // debug: console.log(randomDetailLocation, randomDetailBehavior, randomDetailJob)
28 - // 특별한 문장 정의
29 - if (randomDetailLocation === '시내버스') {
30 - if (Math.random() > 0.3) {
31 - randomDetailLocation = (Math.floor(Math.random() * 999)+1) + '번' + randomDetailLocation
32 - }
33 - } else if (randomDetailLocation.indexOf('학교') >=0) {
34 - if (Math.random() > 0.5) {
35 - randomDetailLocation = randomDetailLocation + (Math.floor(Math.random() * 2)+1) + '학년' + (Math.floor(Math.random() * 9)+1) + '반'
36 - }
37 - }
38 - if ((randomDetailLocation === '지하철' || randomDetailLocation === '지하철역') && randomDetailJob === '앞에서절두번하는' ) {
39 - // debug: console.log('지하철', '절두번하는')
40 - while (randomDetailJob === '앞에서절두번하는') {
41 - // debug: console.log('지하철', '절두번하는', '루프')
42 - randomDetailJob = totalJob[Math.floor(Math.random() * totalJob.length)]
43 - }
44 - // debug: console.log('지하철', '절두번하는', randomDetailJob)
45 - }
46 - // 특별한 문장 정의 완료
47 34
48 - if (jobs[0].indexOf(randomDetailJob) >= 0) { 35 + if (behaviors[0].indexOf(randomDetailBehavior) >= 0) {
49 - result = generateSpecificCase(1, [randomDetailLocation, randomDetailJob, varName]) 36 + result = generateSpecificCase(1, [randomDetailLocation, randomDetailBehavior, randomDetailJob, varName])
50 - } else if (jobs[1].indexOf(randomDetailJob) >= 0) { 37 + } else if (behaviors[1].indexOf(randomDetailBehavior) >= 0) {
51 - result = generateSpecificCase(2, [randomDetailLocation, randomDetailJob, varName]) 38 + result = generateSpecificCase(2, [randomDetailLocation, randomDetailBehavior, randomDetailJob, varName])
52 } 39 }
53 - } else { /* 특별한 위치 변수 정의 처리 */ 40 + } else {
54 var randomDetailLocation = locations[1][Math.floor(Math.random() * locations[1].length)] 41 var randomDetailLocation = locations[1][Math.floor(Math.random() * locations[1].length)]
55 // 여기서 문제가 발생한다면 특별한 위치 변수를 제대로 정의하지 않은것. 42 // 여기서 문제가 발생한다면 특별한 위치 변수를 제대로 정의하지 않은것.
56 // debug: console.log('specificLocations', specificLocations[randomDetailLocation], randomDetailLocation) 43 // debug: console.log('specificLocations', specificLocations[randomDetailLocation], randomDetailLocation)
57 - if (specificLocations[randomDetailLocation][1]) { 44 + result = generateSpecificCase(3, [randomDetailLocation, specificLocations[randomDetailLocation], varName])
58 - result = generateSpecificCase(2, [randomDetailLocation, specificLocations[randomDetailLocation][0], varName]) 45 +
59 - }
60 } 46 }
61 - //debug: console.log(randomDetailLocation, randomDetailJob, result) 47 + //debug: console.log(randomDetailLocation, randomDetailBehavior, randomDetailJob, result)
62 48
63 return result 49 return result
64 } 50 }
65 51
66 -/* params = [randomDetailLocation, randomDetailJob, varName] */ 52 +/*CASE 1 : params = [randomDetailLocation, randomDetailBehavior, randomDetailJob, varName]
67 -function generateSpecificCase (caseCode, params) { 53 + CASE 2 : params = [randomDetailLocation, randomDetailJob, varName]
54 +*/
55 +function generateSpecificCase(caseCode, params) {
68 if (caseCode === 1) { 56 if (caseCode === 1) {
69 var randomObject = objects[Math.floor(Math.random() * objects.length)] 57 var randomObject = objects[Math.floor(Math.random() * objects.length)]
70 - 58 + return params[0] + randomObject + params[1] + params[2] + params[3]
71 - // // 특별한 문장 정의
72 - // if (params[1] === '산채비빔밥먹는스님앞에서') {
73 - // return params[1] + randomObject + '먹는' + params[3]
74 - // }
75 - // if (params[2] === '교제사실을들킨'){
76 - // return params[0] + josa.r(randomObject, '와/과') + params[1] + params[2]
77 - // }
78 - // // 특별한 문장 정의 완료
79 -
80 - return params[0] + randomObject + params[1] + params[2]
81 } else if (caseCode === 2) { 59 } else if (caseCode === 2) {
82 - 60 + return params[0] + params[1] + params[2] + params[3]
83 - // // 특별한 문장 정의 61 + } else if (caseCode === 3) {
84 - // if (params[0] === '납골당') {
85 - // params[1] = ['유골항아리도둑', '유골항아리파괴자'][Math.floor(Math.random() * 2)]
86 - // }
87 - // // 특별한 문장 정의 완료
88 -
89 return params[0] + params[1] + params[2] 62 return params[0] + params[1] + params[2]
90 } else { 63 } else {
91 return undefined 64 return undefined
92 } 65 }
93 } 66 }
94 67
95 -function debug (a, b) { 68 +function debug(a, b) {
96 - for (i=0; i<100; i++) { 69 + for (i = 0; i < 100; i++) {
97 generate(a, b) 70 generate(a, b)
98 } 71 }
99 } 72 }
...\ No newline at end of file ...\ No newline at end of file
......