// 비교하기 : 제시어와 답변 스피치를 비교한다. fun compareText(quote : String, speechText : String) : AnswerTexts { val quoteLength = quote.length val speechTextLength = speechText.length val maxLength = if (quoteLength >= speechTextLength) quoteLength else speechTextLength val minLength = if (quoteLength <= speechTextLength) quoteLength else speechTextLength var correctScore = 0 // 정답확인용 배열을 만드는 것이다. val textArray = ArrayList(maxLength) // 제시어와 답변 문장 중에서 길이가 긴 문장의 길이에 맞추어서 정답확인용 배열을 초기화한다. for (i in 0 until maxLength) { textArray.add(AnswerText()) // TextModel.kt 파일에 초기화를 한 data class가 있다. } // 정답확인용 배열에 답변 문장을 한 글자씩 입력한다. 그리고 그 답변 문장이 제시어와 차이가 있는지를 저장한다. for (i in 0 until minLength) { textArray[i].text = speechText[i] textArray[i].index = i if (quote[i] == speechText[i]) { textArray[i].correctness = true correctScore++ }else { textArray[i].correctness = false } } val answerTexts : AnswerTexts = AnswerTexts(textArray, correctScore, correctScore.toFloat() / maxLength) return answerTexts } // 스피치 대답 구조 data class AnswerText( var text : Char = '_', var correctness : Boolean = false, var index : Int = 0 ) // 정답 반환 구조체 data class AnswerTexts( var answerText : ArrayList, var simpleScore : Int = 0, var percentageScore : Float = 0.0f )