KR101578656B1 - 사칙연산 학습기의 구동 방법 - Google Patents

사칙연산 학습기의 구동 방법 Download PDF

Info

Publication number
KR101578656B1
KR101578656B1 KR1020140124938A KR20140124938A KR101578656B1 KR 101578656 B1 KR101578656 B1 KR 101578656B1 KR 1020140124938 A KR1020140124938 A KR 1020140124938A KR 20140124938 A KR20140124938 A KR 20140124938A KR 101578656 B1 KR101578656 B1 KR 101578656B1
Authority
KR
South Korea
Prior art keywords
value
operator
preliminary
control unit
arithmetic
Prior art date
Application number
KR1020140124938A
Other languages
English (en)
Other versions
KR20150118883A (ko
Inventor
김경태
Original Assignee
주식회사 소니스트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 소니스트 filed Critical 주식회사 소니스트
Priority to KR1020140124938A priority Critical patent/KR101578656B1/ko
Publication of KR20150118883A publication Critical patent/KR20150118883A/ko
Application granted granted Critical
Publication of KR101578656B1 publication Critical patent/KR101578656B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/02Counting; Calculating
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass

Abstract

본 발명은 사칙연산 학습장치에 관한 것으로서, 상기 사칙연산 학습장치는 숫자나 연산자를 입력하는 사용자 입력부, 그리고 상기 사용자 입력부에 연결되어 있고, 적어도 하나의 항이 비어있는 사칙 연산식을 출력하고, 상기 사용자 입력부를 통해 입력되어 상기 적어도 하나의 빈 항에 채워진 숫자나 연산자를 이용해 완성된 상기 사칙 연산식에 대한 사용자 문제를 연산하여 연산값을 산출하고, 산출된 상기 연산값과 정답값을 비교하여, 상기 사용자 입력부를 통해 입력된 상기 숫자나 연산자가 정답인지를 판정하는 제어부를 포함하고, 상기 제어부는 예비 문제를 생성하고, 상기 예비 문제에 대한 연산 동작을 실시하여 유효성을 판정하여 상기 예비 문제가 유효한 상태로 판정되면, 상기 예비 문제를 최종 문제로 정하여 상기 최종 문제와 상기 유효성 판정을 통해 산출된 상기 예비 문제에 대한 연산값을 상기 사칙 연산식으로 출력한다. 이로 인해, 때와 장소에 무관하게 사칙 연산을 학습하므로, 학습 효율이 향상되며, 게임자에게 제공되는 최종 문제가 매번 생성되므로, 게임자는 항상 새로운 문제를 접하게 되므로 게임자의 흥미와 재미가 향상된다.

Description

사칙연산 학습기의 구동 방법{METHOD FOR DRIVING STUDYING MACHINE FOR FOUR FOUNDAMENTAL ARTHMETIC OPERATIONS}
본 발명은 사칙연산 학습 장치 및 그 방법에 관한 것이다.
일반적으로, 사칙연산(四則演算)이란 합, 차, 곱 및 몫을 얻는 네 종류의 기본적인 연산 즉, 덧셈, 뺄셈, 곱셈 및 나눗셈을 지칭한다. 이때, 나눗셈의 경우, 0으로 나누는 것은 고려되지 않는다.
이러한 사칙연산은 학생들이 초등학교에서 배우게 되는 산수 과정의 많은 부분을 차지하게 된다.
따라서, 이러한 사칙연산을 용이하고 재미있게 학습하기 위해 게임 방식으로 사칙연산을 학습하는 많은 게임기가 개발되어 시판되고 있다.
하지만, 사칙연산 게임을 위한 별도의 게임기를 이용해야 하므로, 게임기 구입을 위한 경제적인 부담이 증가하고 또한 사칙연산 게임을 위해서는 항상 별도의 게임기를 휴대해는 불편함이 발생하였다.
한국 공개특허공보 공개번호 10-2006-00793946(공개일자: 2006년 07월 06일, 발명자: 김창유)
따라서 본 발명이 이루고자 하는 기술적 과제는 때와 장소에 무관하게 편리하게 사칙연산을 학습하여 사용자의 편리성을 증가시키기 위한 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 게임 방식을 통해 사칙 연산을 학습하도록 하여 학습 효율을 높이기 위한 것이다.
본 발명의 한 특징에 따른 사칙연산 학습장치는 숫자나 연산자를 입력하는 사용자 입력부, 그리고 상기 사용자 입력부에 연결되어 있고, 적어도 하나의 항이 비어있는 사칙 연산식을 출력하고, 상기 사용자 입력부를 통해 입력되어 상기 적어도 하나의 빈 항에 채워진 숫자나 연산자를 이용해 완성된 상기 사칙 연산식에 대한 사용자 문제를 연산하여 연산값을 산출하고, 산출된 상기 연산값과 정답값을 비교하여, 상기 사용자 입력부를 통해 입력된 상기 숫자나 연산자가 정답인지를 판정하는 제어부를 포함하고, 상기 제어부는 예비 문제를 생성하고, 상기 예비 문제에 대한 연산 동작을 실시하여 유효성을 판정하여 상기 예비 문제가 유효한 상태로 판정되면, 상기 예비 문제를 최종 문제로 정하여 상기 최종 문제와 상기 유효성 판정을 통해 산출된 상기 예비 문제에 대한 연산값을 상기 사칙 연산식으로 출력한다.
상기 예비 문제는 난이도가 증가할수록 숫자 항 수의 개수, 숫자 항의 자릿수, 빈 칸의 총 수 및 연속적으로 위치한 빈 칸의 개수 중 적어도 하나가 증가할 수 있다.
상기 특징에 따른 사칙연산 학습장치는 상기 제어부에 연결되어 있고 기 출제된 최종 문제를 저장하고 있는 데이터베이스를 더 포함할 수 있고, 상기 제어부는 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재할 경우, 상기 예비 문제를 최종 문제로 정하지 않는 것이 좋다.
상기 제어부는 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재하지 않을 경우, 상기 유효한 상태로 판정된 상기 예비 문제를 기 출제된 문제로서 상기 데이터베이스에 저장하고 기 출제된 최종 문제의 개수를 '1' 증가시키는 것이 바람직하다.
상기 제어부는 상기 기 출제된 최종 문제의 개수가 설정 개수에 도달하면, 상기 데이터베이스에 저장된 기 출제된 문제를 삭제하고 상기 기 출제된 최종 문제의 개수를 초기화시킬 수 있다.
상기 제어부는 상기 예비 문제에 나눗셈 연산자가 존재할 경우, 상기 나눗셈 연산자에 바로 앞과 뒤에 있는 피연산자에 대한 나눗셈 연산을 실시하여 나머지가 '0'이 아닐 경우, 상기 예비 문제를 무효한 상태로 판정하고 상기 나머지가 '0'일 때 상기 예비 문제를 유효한 상태로 판정할 수 있다.
상기 제어부는 상기 예비 문제에 나눗셈 연산자가 존재하지 않을 경우, 상기 예비 문제를 연산하여 상기 예비 문제에 대한 연산값을 산출하고, 산출된 상기 예비 문제의 연산값이 마이너스 값을 가지거나 정해진 자릿수를 초과하는지를 판정하고, 산출된 상기 예비 문제의 연산값이 마이너스값을 가지거나 정해진 자릿수를 초과할 경우 상기 예비 문제를 무효한 상태로 판정하고, 산출된 상기 예비 문제의 연산값이 마이너스값을 가지지 않고 정해진 자릿수를 초과하지 않을 경우 상기 예비 문제를 유효한 상태로 판정할 수 있다.
상기 제어부는 상기 예비 문제에 나눗셈 연산자가 존재할 경우 나눗셈 연산자가 수 개인지를 판정하여, 상기 나눗셈 연산자가 복수 개이며, 나눗셈 연산자 중 하나를 덧셈 연산자, 뺄셈 연산자, 곱셈 연산자 중 하나로 교체하여 상기 예비 문제를 변경할 수 있다.
상기 제어부는 복수의 필드를 구비한 상기 사용자 문제에 해당하는 연산식 배열에서 상기 복수의 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하고, 판정된 상기 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재한 상태로 판정되면, 곱셈 연산자나 나눗셈 연산자에 대한 연산을 행하여 연산값을 산출하는 연산 동작과, 상기 곱셈 연산자나 나눗셈 연산자의 연산값을 이용하여 상기 사용자 문제의 연산식에 대한 정렬 동작을 실시하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 연산식 정렬 동작을 행하고, 판정된 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재하지 않은 상태로 판정되면, 연산식 배열의 길이가 '1'인지를 판정하고, 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하고, 판정된 필드의 값에 따라 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경한 후 변경된 연산식 배열의 필드 길이가 '1'인지를 판정하고, 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경하고, 상기 연산식 배열의 길이가 '1'일 경우, 연산 동작에 의해 산출된 연산값을 상기 사용자 문제에 대한 최종 연산값으로 판정할 수 있다.
상기 제어부는 연산자에 대한 연산 동작에 의해 산출된 연산값을 연산자가 위치하는 바로 앞의 피연산자가 존재하는 필드 값으로 교체하고, 상기 연산자가 위치하는 필드를 기준점을 정하고 상기 기준점의 인덱스값에 설정값을 더한 인덱스값을 갖는 필드를 대상점으로 정하며, 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같은지를 비교하여 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 대상점의 필드값을 기준점의 필드값으로 교체하고, 기준점과 대상점이 위치하는 인덱스 값을 이동시켜 기준점과 대상점의 필드 위치를 한 칸씩 이동시키고, 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 한 칸씩 이동된 상기 대상점의 필드값을 한 칸씩 이동된 상기 기준점의 필드값으로 교체하고, 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같을경우, 연산식 배열의 필드 길이를 설정값만큼 차감하여 새로운 필드 길이를 갖는 연산식 배열을 변경하여 상기 연산식 정렬 동작을 행할 수 있다.
상기 대상점을 정하는 상기 설정값과 상기 필드 길이를 차감하는 상기 설정값은 각각 '2'일 수 있다.
상기 제어부는 사용자 입력부를 통해 정해진 시간 동안 상기 적어도 하나의 빈 항에 숫자나 연산자가 입력되지 않을 경우, 상기 적어도 하나의 빈 항에 대한 정답을 포함한 정해진 개수의 힌트값을 출력할 수 있다.
본 발명의 다른 특징에 따른 사칙연산 학습방법은 예비 문제를 생성하는 단계, 상기 예비 문제에 대한 연산 동작을 실시하여 유효성을 판정하는 단계, 상기 예비 문제가 유효한 상태로 판정되면, 상기 예비 문제를 최종 문제로 정하여 상기 최종 문제와 상기 유효성 판정을 통해 산출된 상기 예비 문제에 대한 연산값을 적어도 하나의 항이 비어있는 사칙 연산식으로 출력하는 단계, 사용자 입력부를 통해 입력되어 상기 적어도 하나의 빈 항에 채워진 숫자나 연산자를 이용해 완성된 상기 사칙 연산식에 대한 사용자 문제를 연산하여 연산값을 산출하는 단계, 그리고 산출된 상기 연산값과 정답값을 비교하여, 상기 사용자 입력부를 통해 입력된 상기 숫자나 연산자가 정답인지를 판정하는 단계를 포함한다.
상기 특징에 따른 사칙연산 학습방법은 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 데이터베이스에 존재하는지 판단하는 단계, 그리고 상기 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재할 경우, 상기 예비 문제를 최종 문제로 정하지 않는 단계를 더 포함할 수 있다.
상기 특징에 따른 사칙연산 학습방법은 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재하지 않을 경우, 상기 유효한 상태로 판정된 상기 예비 문제를 기 출제된 문제로서 상기 데이터베이스에 저장하고 기 출제된 최종 문제의 개수를 '1' 증가시키는 단계, 상기 기 출제된 최종 문제의 개수가 설정 개수에 도달했는지를 판단하는 단계, 그리고 상기 기 출제된 최종 문제의 개수가 설정 개수에 도달한 상태로 판단되면, 상기 데이터베이스에 저장된 기 출제된 문제를 삭제하고 상기 기 출제된 최종 문제의 개수를 초기화시키는 단계를 더 포함할 수 있다.
상기 유효성 판정 단계는 상기 예비 문제에 나눗셈 연산자가 존재하는지 판단하는 단계, 상기 예비 문제에 상기 나눗셈 연산자가 존재할 경우, 상기 나눗셈 연산자에 바로 앞과 뒤에 있는 피연산자에 대한 나눗셈 연산을 실시하여 나머지가 '0'인지를 판단하는 단계, 상기 나머지가 '0'이 아닐 경우, 상기 예비 문제를 무효한 상태로 판정하고 상기 나머지가 '0'일 때 상기 예비 문제를 유효한 상태로 판정하는 단계를 포함할 수 있다.
상기 유효성 판정 단계는 상기 예비 문제에 나눗셈 연산자가 존재하지 않을 경우, 상기 예비 문제를 연산하여 상기 예비 문제에 대한 연산값을 산출하는 단계, 산출된 상기 예비 문제의 연산값이 마이너스 값을 가지거나 정해진 자릿수를 초과하는지를 판정하는 단계, 산출된 상기 예비 문제의 연산값이 마이너스값을 가지거나 정해진 자릿수를 초과할 경우 상기 예비 문제를 무효한 상태로 판정하고, 산출된 상기 예비 문제의 연산값이 마이너스값을 가지지 않고 정해진 자릿수를 초과하지 않을 경우 상기 예비 문제를 유효한 상태로 판정하는 단계를 더 포함할 수 있다.
상기 유효성 판정 단계는 상기 예비 문제에 나눗셈 연산자가 존재할 경우 나눗셈 연산자가 복수 개인지를 판정하는 단계, 그리고 상기 예비 문제에 상기 나눗셈 연산자가 복수 개 존재할 경우, 복수의 나눗셈 연산자 중 하나를 덧셈 연산자, 뺄셈 연산자, 곱셈 연산자 중 하나로 교체하여 상기 예비 문제를 변경하는 단계를 더 포함할 수 있다.
상기 연산값 산출 단계는 복수의 필드를 구비한 상기 사용자 문제에 해당하는 연산식 배열에서 상기 복수의 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하는 단계, 판정된 상기 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재한 상태로 판정되면, 곱셈 연산자나 나눗셈 연산자에 대한 연산을 행하여 연산값을 산출하는 연산 동작과, 상기 곱셈 연산자나 나눗셈 연산자의 연산값을 이용하여 상기 사용자 문제의 연산식에 대한 정렬 동작을 실시하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 연산식 정렬 동작을 행하는 단계, 판정된 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재하지 않은 상태로 판정되면, 연산식 배열의 길이가 '1'인지를 판정하는 단계, 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하여, 판정된 필드의 값에 따라 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 단계, 변경된 연산식 배열의 필드 길이가 '1'인지를 판정하는 단계, 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 단계, 그리고 상기 연산식 배열의 길이가 '1'일 경우, 연산 동작에 의해 산출된 연산값을 상기 사용자 문제에 대한 상기 연산값으로 판정하는 단계를 포함할 수 있다.
상기 연산식 정렬 동작을 행하는 단계는, 연산자에 대한 연산 동작에 의해 산출된 연산값을 연산자가 위치하는 바로 앞의 피연산자가 존재하는 필드 값으로 교체하는 단계, 상기 연산자가 위치하는 필드를 기준점을 정하고 상기 기준점의 인덱스값에 설정값을 더한 인덱스값을 갖는 필드를 대상점으로 정하는 단계, 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같은지 비교하는 단계, 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 대상점의 필드값을 기준점의 필드값으로 교체하고, 기준점과 대상점이 위치하는 인덱스 값을 이동시켜 기준점과 대상점의 필드 위치를 한 칸씩 이동시키는 단계, 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 한 칸씩 이동된 상기 대상점의 필드값을 한 칸씩 이동된 상기 기준점의 필드값으로 교체하는 단계, 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같을 경우, 연산식 배열의 필드 길이를 설정값만큼 차감하여 새로운 필드 길이를 갖는 연산식 배열을 변경하는 단계를 포함할 수 있다.
상기 예비 문제 생성 단계는 현재 레벨을 판정하는 단계, 판정된 상기 현재 레벨에 해당하는 난이도를 판정하는 단계, 그리고 판정된 난이도에 따라 숫자 항 수의 개수, 숫자 항의 자릿수, 빈 칸의 총 수 및 연속적으로 위치한 빈 칸의 개수를 정하여 상기 예비 문제를 생성하는 단계를 포함할 수 있다.
상기 특징에 따른 사칙연산 학습방법은 사용자 입력부를 통해 정해진 시간 동안 상기 적어도 하나의 빈 항에 숫자나 연산자가 입력되는지를 판단하는 단계, 그리고 상기 정해진 시간 내에 상기 적어도 하나의 빈 항에 숫자나 연산자가 입력되지 않을 경우, 상기 적어도 하나의 빈 항에 대한 정답을 포함한 정해진 개수의 힌트값을 출력하는 단계를 더 포함할 수 있다.
이러한 특징에 따르면, 때와 장소에 무관하게 사칙 연산을 학습하므로, 학습 효율이 향상된다.
게임자에게 제공되는 최종 문제가 매번 생성되므로, 게임자는 항상 새로운 문제를 접하게 되므로 게임자의 흥미와 재미가 향상된다.
또한 최종 문제로 선택되기 전에 생성된 예비 문제에 대한 유효성 판정을 실시하므로, 짧은 시간 내에 풀어야 하는 사칙 연산식에 부적합하다고 판정되는 예비 문제는 최종 문제로 채택되지 않는다. 따라서, 게임 초기에 어려움 문제로 인해 흥미가 반감되는 현상을 방지한다.
도 1은 본 발명의 한 실시예에 따른 사칙연산 학습장치의 블럭도이다.
도 2는 본 발명의 한 실시예에 따른 사칙연산 학습 장치의 동작 순서도이다.
도 3은 도 2의 동작 순서도에서 사칙연산 게임 실행 제어 단계에 대한 동작 순서도이다.
도 4는 도 3의 동작 순서도에서 연산 단계에 대한 동작 순서도이다.
도 5의 (a) 내지 (m)은 도 3의 동작 순서도에 연산식 정렬 과정을 순차적으로 도시한 도면이다.
도 6은 도 3의 동작 순서도에서 문제 생성 단계에 대한 동작 순서도이다.
도 7은 도 6의 동작 순서도에서 예비 문제에 대한 유효성 판정 단계에 대한 동작 순서도이다.
도 8 내지 도 11은 본 발명의 한 실시예에 다른 사칙연산 학습장치의 동작 상태에 따른 화면 출력 상태를 도시한 도면으로서, 도 8은 게임 시작 화면을 도시한 도면이고, 도 9는 게임 종료 화면을 도시한 도면이며, 도 10 및 도 11은 각각 사칙연산 문제 화면을 도시한 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
어떤 구성요소가 다른 구성요소에 "접속되어" 있다거나 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 접속되어 있거나 연결되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 접속되어" 있다거나 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
그러면 첨부한 도면을 참고로 하여 본 발명의 한 실시예에 따른 사칙연산 학습 장치 및 그 방법에 대하여 설명한다.
먼저, 도 1을 참고로 하여 본 발명의 한 실시예에 따른 사칙연산 학습장치에 대하여 상세하게 설명한다.
본 예에서, 사칙연산 학습장치(100)는 이동 가능 여부에 따라 이동 단말기(mobile terminal)와 고정 단말기(stationary terminal)로 나뉠 수 있다. 다시, 사칙연산 학습장치(100)는 사용자의 직접 휴대 가능 여부에 따라 휴대 전화기, 스마트폰(smart phone) 또는 태블릿 피씨(tablet personal computer)과 같은 휴대 단말기(handheld terminal)와 거치형 단말기(vehicle mount terminal)로 나뉠 수 있다.
도 1를 참고로 하면, 이러한 사칙연산 학습장치(100)는 통신부(110), 사용자 입력부(120), 통신부(110)와 사용자 입력부(120)에 연결된 제어부(130), 제어부(130)에 연결된 출력부(140), 그리고 제어부(130)에 연결된 메모리(150), 타이머(timer)(160), 데이터베이스(170) 및 인터페이스부(interface)(180)를 구비한다.
이때, 도 1에 도시된 구성요소들(110-180)은 필수적인 것은 아니어서, 손가락 재활 장치(100)는 이들 구성 요소(110-180) 이외의 다른 적어도 하나의 구성요소를 추가로 구비하거나 이들 중 적어도 하나의 구성요소를 생략할 수 있다.
통신부(110)는 사칙연산 학습장치(100)와 통신 시스템(도시하지 않음) 사이, 또는 사칙연산 학습장치(100)와 휴대 단말기나 고정 단말기와 같은 다른 전자 기기가 위치한 네트워크 사이의 통신을 가능하게 하는 하나 이상의 모듈을 포함한다.
한 예로, 도 1에 도시한 것처럼, 통신부(110)는 이동통신 모듈(111), 인터넷 모듈(112) 및 근거리 통신 모듈(113)을 구비한다.
이동 통신 모듈(111)은 이동 통신망 상에서 기지국, 외부의 단말 및 서버 중 적어도 하나와 무선으로 신호(즉, 무선 신호)를 송수신한다. 무선 신호는, 음성 호 신호, 화상 통화 호 신호, 또는 단문 메시지나 멀티미디어 메시지의 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
인터넷 모듈(112)은 무선 또는 유선 인터넷 접속을 위한 모듈을 말하는 것으로, 인터넷 모듈(112)은 손가락 재활 장치(100)에 내장되거나 외장될 수 있다.
인터넷 기술로는 WLAN(Wireless LAN)(WiFi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access) 또는 HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다.
근거리 통신 모듈(113)은 근거리 통신을 위한 모듈을 말한다.
근거리 통신 기술로는 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband) 또는 지그비(ZigBee) 등이 이용될 수 있다.
사용자 입력부(120)는 사용자가 사칙연산 학습장치(100)의 동작 제어를 위한 명령 입력이나 사용자가 생각한 정답 입력 등과 같은 입력 동작에 관련된 신호를 발생시켜 제어부(130)로 출력한다.
사용자 입력부(120)는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(touch pad), 조그(jog) 스위치 또는 마우스(mouse) 등으로 구성될 수 있다.
제어부(130)는 사용자 입력부(120)를 통해 인가되는 신호를 이용하여 출력부(140)의 동작 상태를 제어하고, 손가락 재활 장치(100)의 동작 중 발생한 데이터의 처리를 실시하고 제어한다.
제어부(130)는 사용자 입력부(120)를 통해 인가되는 신호를 이용하여 출력부(140)의 동작 상태를 제어하고, 사칙연산 학습장치(100)의 동작 중 발생한 데이터 처리나 명령 처리를 실시하고 제어한다.
예를 들어, 사칙연산 학습장치(100)에 설치된 '사칙연산 게임'이 실행될 때 사칙연산 게임의 동작을 제어하고, 사칙연산 게임의 동작 상태(즉, 게임 진행 상태)에 해당하는 데이터를 메모리(150)로부터 읽어와 판독된 데이터에 해당하는 영상 출력을 위한 영상 데이터를 출력부(140)로 출력한다.
또한, 사칙연산 학습장치(100)가 통화 모드일 때 제어부(130)는 통화 동작을 제어하며 통화에 관련된 UI(User Interface)나 GUI(Graphic User Interface)에 해당하는 영상 출력을 위한 영상 데이터를 출력부(140)로 출력하며, 화상 통화 모드나 촬영 모드인 경우에는 이들 모드의 동작을 제어하고 촬영 영상이나 수신된 영상, 또는 화상 통화 모드나 촬영 모드를 위한 UI나 GUI에 해당하는 영상 데이터를 출력부(140)로 출력한다.
출력부(140)는 시각, 청각 및 촉각에 관련된 출력을 발생시키기 위한 것으로, 디스플레이 모듈(141), 음향 출력 모듈(142) 및 햅틱(haptic) 모듈(143)을 구비한다.
디스플레이 모듈(141)은 사칙연산 학습 장치(100)의 동작을 제어하는 제어부(130)의 동작에 따라 제어부(130)에서 출력되는 영상 데이터에 해당하는 영상을 화면에 표시한다.
이로 인해, 디스플레이 모듈(141)은 사칙연산 게임의 동작 상태에 따른 영상을 표시하며, 사칙연산 학습 장치(100)의 동작 모드에 따라 사용되는 UI나 GUI를 표시한다.
이러한 디스플레이 모듈(141)은 액정 디스플레이(liquid crystal display), 유기 발광 표시 장치(organic light emitting diode display), 플렉시블 디스플레이(flexible display) 및 3차원 디스플레이(3D display) 중에서 적어도 하나의 표시 장치를 포함한다.
디스플레이 모듈(141)이 영상 표시를 위한 구조뿐만 아니라 터치 동작을 감지하는 센서[이하, '터치 센서(touch sensor)'라 함]가 상호 레이어 구조(layered structure)를 이루는 경우(이하, '터치 스크린'이라 함), 디스플레이 모듈(141)은 영상을 출력하는 출력 장치 이외에 사용자 입력부(120)와 같은 입력 장치로 기능한다. 터치 센서는, 예를 들어, 터치 필름(touch film), 터치 시트(touch sheet), 터치 패드(touch pad) 등의 형태를 가질 수 있다.
터치 센서는 디스플레이 모듈(141)의 특정 부위에 가해진 압력이나 디스플레이 모듈(141)의 특정 부위에 발생하는 정전 용량 등의 변화를 전기적인 신호로 변환하는 구조를 가질 수 있다.
터치 센서는 접촉되는 즉, 터치되는 위치와 면적뿐만 아니라, 터치 시의 압력까지도 검출할 수 있다.
터치 센서에 대한 터치 입력이 있는 경우, 그에 대응하는 전기적인 신호, 예를 들어, 터치 스크린(141)의 복수의 화소에서 터치된 부분에 위치한 적어도 하나의 화소행에 대한 전기적인 신호와 적어도 하나의 화소열에 대한 전기적인 신호는 이 전기적인 신호를 처리하는 터치 제어기(도시하지 않음)로 보내지고, 터치 제어기는 전기적인 신호를 처리한 후 그에 대응하는 데이터를 제어부(130)로 전송한다. 따라서, 제어부(130)는 터치 제어부에서 출력되는 데이터를 이용하여 디스플레이 모듈(141)의 어느 영역이 터치 되었는지 여부 등을 판정하게 된다.
음향 출력 모듈(142)은 제어부(130)의 동작에 의해 제어부(130)에서 출력되는 오디오 신호(audio signal)를 음성으로 출력한다.
따라서, 제어부(130)는 손가락 재활 장치(100)의 동작 상태나 동작 모드에 따라 호신호 수신, 통화모드 또는 녹음 모드, 음성인식 모드, 방송수신 모드 등에서 통신부(110)로부터 수신되거나 사칙연산 게임 시 메모리(150)에 저장된 해당 오디오 데이터에 기초한 해당 오디오 신호를 음향 출력 모듈(142)로 출력하고, 이에 따라 음향 출력 모듈(142)는 오디오 신호에 해당하는 음향을 외부로 출력한다.
이러한 음향 출력 모듈(142)은 리시버(receiver), 스피커(speaker) 또는 버저(buzzer) 등을 구비할 수 있다.
햅틱 모듈(haptic module)(143)은 사용자가 느낄 수 있는 다양한 촉각 효과를 발생시킨다. 본 예에서, 햅틱 모듈(153)이 발생시키는 촉각 효과는 진동이 있다.
햅틱 모듈(143)이 발생하는 진동의 세기와 패턴 등은 제어부(130)의 제어 동작에 의해 변경 가능하며, 이러한 햅틱 모듈(143)은 제어부(130)의 제어에 의해 동작되는 모터(motor) 등을 구비할 수 있다.
메모리(150)는 제어부(130)의 동작에 필요한 데이터나 동작 중에 발생하는 데이터를 저장하는 저장 매체이다.
이러한 메모리(150)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory, RAM), 에스램(static random access memory, SRAM), 롬(read only memory, ROM), 이이피롬(electrically erasable programmable read only memory, EEPROM), 피롬(programmable read only memory, PROM), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나일 수 있다.
대안적인 예에서, 사칙연산 학습 장치(100)는 인터넷(internet)상에서 메모리(150)의 저장 기능을 수행하는 웹 스토리지(web storage)와 연관되어 동작할 수도 있다.
타이머(160)는 제어부(130)의 동작에 따라 시간을 계수하여 계수된 시간에 해당하는 시간 데이터를 제어부(130)로 출력한다. 따라서, 제어부(130)는 타이머(160)에서 출력되는 시간 데이터를 이용하여 사칙연산 게임의 종료 시점과 화면의 출력 상태를 제어한다.
데이터베이스(170)는 이미 게임자에게 최종 문제로서 제출되었던 기 출제된 최종 문제를 저장하고 있다. 이때, 데이터베이스(170)에 저장된 최종 문제가 설정 개수에 도달하면, 데이터베이스(170)에 저장된 최종 문제는 모든 삭제된 후 다시 설정된 개수만큼 게임자에게 최종 문제로 제출된 기 출제된 최종 문제를 저장하게 된다.
인터페이스부(180)는 손가락 재활 장치(100)에 연결되는 모든 외부기기와의 통로 역할을 한다.
인터페이스부(180)는 외부 기기로부터 데이터를 전송받거나 전원을 공급받아 사칙연산 학습 장치(100) 내부의 해당 구성 요소에 전달하거나 사칙연산 학습 장치(100) 내부의 데이터를 외부 기기로 전송하도록 한다.
예를 들어, 유선 또는 무선 헤드셋 포트(headset port), 외부 충전기 포트, 유선 또는 무선 데이터 포트, 메모리 카드(memory card) 포트, 오디오 입력 및 출력 포트(audio input and output) 포트 및 비디오 입력 및 출력 포트(video input and output port), 이어폰 포트(earphone port) 등이 인터페이스부(180)에 포함될 수 있다.
다음, 도 2 내지 도 7 그리고 도 8 내지 도 11를 참고로 하여, 이러한 구조를 갖는 사칙연산 학습 장치의 동작에 대하여 상세히 설명한다.
이하에서, 설명의 편의를 위해, 디스플레이 모듈(141)은 영상 표시 기능과 터치 센서를 통한 입력 기능을 구비한 터치 스크린으로 가정하므로 사용자 입력부(120)의 적어도 일부는 터치 스크린이지만, 본 발명은 이에 한정되지 않는다.
전원 공급부(도시하지 않음)를 통해 사치연산 학습 장치(100)의 동작에 필요한 전원이 공급되어, 제어부(130)의 동작이 시작되면(S10), 제어부(130)는 먼저 사용되는 변수의 값을 초기값으로 초기화시킨다(S11).
사칙연산 학습 장치(100)에는 이미 통신부(110)를 통해 사칙연산 게임을 실시하는 애플리케이션(application)이 설치되어 있고, 사칙연산 학습 장치(100)의 바탕 화면에는 사칙연산 게임을 구동시키기 위한 실행 아이콘(icon)이 설치될 수 있다.
따라서, 사용자의 동작에 의해 실행 아이콘이 실행되어 해당 사칙연산 게임에 대한 게임 구동 신호가 사용자 입력부(120)인 터치 스크린을 통해 입력되면(S12), 제어부(130)는 메모리(150)에서 게임 시작 화면에 대한 영상 데이터를 읽어봐 디스플레이 모듈(141)로 출력하여, 디스플레이 모듈(141)에 게임 시작 화면(SC1)을 출력한다(S13).
본 예에서, 게임 시작 화면(SC1)은 도 8에 도시한 것처럼, 게임시작 버튼(B11)을 구비한다.
이와 같이, 사칙연산 게임을 위한 게임 시작 화면(SC1)을 출력한 후, 제어부(130)는 게임 시작 버튼(B11)이 선택되어 해당 상태의 게임 시작 신호가 사용자 입력부(120)를 통해 입력되는지를 판단한다(S14).
게임 시작 신호의 상태에 의해 게임 시작 버튼(B11)이 동작된 상태로 판정되면, 제어부(130)는 사칙연산 게임 실행 제어 단계로 넘어간다(S15). 사칙연산 게임 실행 제어 단계의 동작은 다음에 설명한다.
사칙연산 계임 실행 제어 단계의 동작에 의해 디스플레이 모듈(141)을 통해 게임자가 풀어야 되는 사칙 연산식이 출력되면, 제어부(130)는 타이머(160)를 구동시켜(S16) 사칙연산 게임이 실행된 후의 경과 시간(제1 경과 시간)을 계수한다
그런 다음, 제어부(130)는 타이머(160)의 출력 신호를 판독하여 사칙연산 게임이 실행된 후의 경과 시간이 설정 시간(제1 설정 시간)에 도달했는지를 판정한다(S17).
이 때, 설정 시간은 사칙 연산 게임을 이용할 수 있는 총 시간으로서, 설정 시간은 변경 가능하다.
경과 시간이 설정 시간에 도달하지 않을 경우, 제어부(130)는 단계(S15)로 넘어가 계속해서 사칙 연산 게임이 시작된 후의 경과 시간을 판정하게 된다.
하지만, 경과 시간이 설정 시간과 같거나 초과할 경우, 제어부(130)는 사칙연산 게임을 종료하고(S18), 메모리(150)에 저장된 데이터를 이용하여 사칙연산 게임이 행해지는 동안 게임자가 맞춘 총 정답 수를 도 9와 같은 게임 종료 화면(SC2)과 함께 디스플레이 모듈(141)로 출력한다(S19)
이때, 게임 종료 화면(SC2)은 메인 화면으로 되돌아가는 메인 화면 버튼(B12)을 구비한다.
따라서, 다시 사칙 연산 게임을 시작하고 싶을 경우, 게임자는 게임 종료 화면(SC2)에 표시되는 메인 화면 버튼(B12)을 선택한다.
따라서, 메인 화면 버튼(B12)이 동작되어 해당 상태의 메인 화면 복귀 신호가 사용자 입력부(120)를 통해 입력되면, 제어부(130)의 동작은 게임 시작 화면(SC1)을 출력하는 단계(S13)로 넘어간다.
다음, 도 3을 참고로 하여, 제어부(130)에서 행해지는 사칙연산 게임 실행 제어 단계의 동작을 설명한다.
사칙연산 게임 실행 제어 단계로 넘어가면(S15), 제어부(130)는 먼저 사칙연산 게임을 위한 문제를 생성하는 동작을 실행하여 최종 문제를 생성한다(S151).
이처럼, 최종 문제가 생성되면, 제어부(130)는 생성된 최종 문제를 게임자가 풀어야 되는 사칙 연산식으로 디스프레이 모듈(141)을 통해 출력한다(S152). 이때, 사칙 연산식의 출력 화면인 사칙연산 문제 화면(SC3)은 도 9와 같다.
사칙 연산식을 디스플레이 모듈(141)로 출력하는 방식은 숫자나 연산자를 변수 그대로 출력하는 레이블 방식이거나 숫자나 연산자를 하나씩 추출해서 이미지로 출력하는 이미지 방식을 이용할 수 있다.
이때, 단계(S152)에서 사칙 연산식이 디스플레이 모듈(141)로 출력될 때, 정답값은 사칙 연산식을 출력하기 위해 선택된 최종 문제에 대한 연산값으로서, 이 연산값은 메모리(150)에 저장되어 있다.
본 예에서, 디스플레이 모듈(141)로 출력되는 사칙 연산식의 최종 문제는 연산자(즉, +, -, × 및 ÷로 이루어진 사칙 연산자)와 숫자를 구비하고 최대 7자리로 이루어진 연산식(11), 결과값(12) 그리고 연산식(11)과 결과값(12) 사이에 위치한 등호(13)로 이루어져 있고, 게임자가 숫자나 연산자를 입력해야 하는 빈 칸의 수는 난이도에 따라 1개에서부터 4개까지일 수 있다.
하지만, 대안적인 예에서, 연산식의 최대 자리수와 빈 칸의 개수는 가감될 수 있다.
이때, 각 빈 자리, 즉 빈 칸(BL)은 빈 네모 모양으로 표시되지만, 이에 한정되지 않고 빈 원 모양과 같은 다양한 모양으로 빈 자리를 표시할 수 있다.
본 예에서 사칙 연산식에서 발생하는 빈 칸(BL)은 다음의 조건을 만족하면서 무작위로 생성된다
먼저, 사칙 연산식의 첫 번째 숫자는 빈 칸(BL)으로 표시되지 않는다.
두 번째, 숫자보다 연산자를 우선적으로 빈 칸으로 표시하고, 예를 들어 연산자의 숫자의 빈 칸 발생 비율은 6 대 4로 할 수 있다.
세 번째, 난이도가 증가할수록 바로 연속적으로 발생하는 빈 칸(BL)의 수는 증가한다.
또한, 본 예에서 사칙연산 문제 화면(SC3)은, 도 10에 도시한 것처럼, 사칙 연산식이 표시되는 부분(제1 부분)(21)과 빈 칸에 연산자(+, -, ×, ÷)나 숫자를 선택적으로 입력하기 위한 부분(제2 부분)(22)으로 나눠져 있다.
제 1 부분(21)에는 생성된 사칙 연산식뿐만 아니라 오답 개수를 표시하는 오답 표시 마크(221)를 구비한다.
본 실시예에서, 오답 표시 마크(221)는 하트(heart) 형상을 갖고 있지만 이에 한정되지 않으며, 특별히 정해진 형상 대신 숫자로도 표시될 수 있다.
이때, 제2 부분(12)은 숫자 또는 연산자를 입력하기 위해 제2 부분에 표시하기 위한 숫자 또는 연산자(즉, 숫자/연산자) 선택 버튼(B21)이 존재하고 최종 입력 동작을 제어부(130)로 알리기 위한 입력 버튼(B22)이 존재한다.
현재 제2 부분(12)에 '0'에서부터 '9'까지의 숫자가 표시되고 있는 상태일 때, 숫자/연산자 선택 버튼(B21)은 '연산자' 상태를 표시하여 사용자의 필요에 따라 숫자/연산자 선택 버튼(B21)이 선택될 때 제2 부분(12)에 네 개의 연산자가 표시될 수 있도록 한다.
반대로, 현재 제2 부분(12)에 '+', '-', '×' 및 '÷'로 이루어진 연산자가 표시되고 있는 상태일 때, 숫자/ 연산자 선택 버튼(B21)은 '숫자' 상태를 표시하여 사용자의 필요에 따라 숫자/연산자 선택 버튼(B21)이 선택될 때 연산자를 표시하고 있는 제2 부분(12)에 숫자가 표시될 수 있도록 한다(도 11 참조).
따라서, 제어부(130)는 제1 부분(21)에 해당 사칙 연산식을 표시하는 동안 사칙 연산 숫자/연산자 선택 버튼(B21)이 선택될 때마다 숫자/연산자 선택 버튼(B21)의 표시 상태를 '숫자'나 '연산자' 상태로 변환한다.
본 예의 경우, 제1 부분(21)에 사칙 연산식이 출력될 때, 제2 부분(21)에는 초기에 연산자가 표시되므로 숫자/ 연산자 선택 버튼(B21)의 초기 표시 상태는 '숫자'가 되지만, 이와는 반대일 수 있다.
이와 같이, 제1 부분(21)에 해당하는 사칙 연산식을 출력한 후, 제어부(130)는 사용자 입력부(120)를 통해 제2 부분(22)에 표시된 숫자나 연산자 중 하나가 선택되며, 입력된 숫자나 연산자를 판정하여 입력된 순서대로 앞쪽에 위치한 빈 자리부터 판정된 숫자나 연산자를 표시한다(S153).
이때, 빈 자리에 입력된 숫자나 연산자는 변경 가능하며, 변경을 원할 경우, 사용자는 사용자 입력부(120)를 이용하여 입력 변경을 원하는 빈 칸, 즉 초기엔 빈 칸이었지만 사용자의 선택 동작에 의해 해당 숫자나 연산자가 입력된 상태의 빈 칸을 선택한 후 다시 원하는 숫자나 연산자를 선택할 경우, 새롭게 선택된 숫자나 연산자로 해당 빈 칸에 기 입력된 값이 변경된다.
또한, 빈 칸의 배열 순서에 무관하게 원하는 위치에 위치한 빈 칸부터 숫자나 연산자의 입력 동작을 실시할 수 있다.
이를 위해, 사용자는 사용자 입력부(120)를 이용하여 해당 빈 칸을 먼저 선택한 후 숫자나 연산자를 입력한다. 이런 동작 후, 사용자에 의한 별도의 빈 칸 선택 동작 없이 새로운 숫자나 연산자의 입력이 발생할 경우에는 나머지 빈 칸 중 가장 왼쪽에 위치한 빈 칸부터 해당 숫자나 연산자의 입력 동작이 행해진다.
이처럼 사용자 입력부(120)를 이용하여 적어도 하나의 빈 칸에 원하는 숫자나 연산자의 입력 동작이 행해지면, 제어부(130)는 입력 버튼(B21)이 사용자에 의해 선택되어 숫자나 연산자를 입력하는 사용자 입력이 완료되었는지를 판단한다(S154).
입력 버튼(B21)의 선택 동작에 의해 해당 상태의 신호가 사용자 입력부(120)를 통해 제어부(130)로 인가되면, 제어부(130)는 사용자 입력이 완료된 상태로 판정하여 적어도 하나의 빈 칸(BL)에 입력된 숫자와 연산자 중 적어도 하나에 의해 완성된 문제(이하, 이 문제를 '사용자 문제'라 함)에 대한 연산 동작을 수행한다(S155).
이때, 연산 동작은 덧셈과 뺄셈보다 곱셈과 나눗셈을 먼저 연산하고, 덧셈과 뺄셈이 존재할 경우 또는 곱셈과 나눗셈이 존재할 경우 사칙 연산식의 처음, 즉, 왼쪽에서부터 오른쪽 방향으로 차례로 해당 연산을 실행한다.
다음, 도 4와 도 5를 참고로 하여, 본 예의 사칙 연산 학습 장치에서 사칙 연산식의 연산 동작을 자세히 설명한다.
먼저, 단계(S155)에서 완성된 사용자 문제에 대한 연산 동작이 행해지면, 제어부(1300는 도 5의 (a)와 같은 연산식 배열(array)에서 연산자를 검색한다(S1551).
본 예에서, 연산식 배열은 배열 형태가 가변되지 않은 고정 배열로서, 0에서부터 4까지의 인덱스(index)를 갖는 총 5개의 필드(field)(F0-F4)로 이루어져 초기 필드 길이(length)는 5이다.
이때, 각 필드(F0-F4)에는 사용자 문제의 각 항의 값, 즉, 적어도 하나의 숫자로 이루어진 피연산자와 하나의 연산자가 각각 입력되고, 연산자가 위치하는 필드의 인덱스는 홀수(예, 1, 3)가 되며 피연산자가 위치하는 필드의 인덱스는 짝수(0, 2, 4)가 된다.
따라서, 각 필드에는 적어도 하나의 숫자로 이루어진 하나의 숫자 항이나 하나의 연산자로 이루어진 하나의 연산자 항이 저장된다.
따라서, 한 예로 완성된 사용자 문제가 (2×10+3)일 경우, 이러한 사용자 문제는 도 5의 (a)와 같은 형태로 연산식 배열에 대입되어 현재의 사용자 문제에 대한 연산식 배열이 완성된다.
다음, 제어부(130)는 완성된 연산식 배열에서 연산자가 존재하는 필드를 검색하기 위해, 이미 설명한 것처럼 인덱스의 값이 홀수인 필드(F1, F3)를 검색한다(S1551).
연산자가 존재하는 필드(F1, F3)가 검색되며, 제어부(130)는 해당 필드(F1, F3)에 존재하는 연산자가 곱셈 연산자 또는 나눗셈 연산자인지를 판정한다(SS1552).
이를 위해, 제어부(130)는 해당 필드(F1, F3)에 저장되어 있는 필드값을 이용하여 연산자의 종류를 판정한다.
즉, 사칙 연산을 위한 각 연산자에 대응하는 고유의 숫자가 정해져 있고, 해당 연산자에 대응되는 필드(F1, F3)에는 해당 연산자에 대응되는 숫자가 입력된다.
본 예의 경우, 덧셈 연산자(+)는 '10'으로 정해져 있고, 뺄셈 연산자(-)는 '11'로 정해져 있으며, 곱셈 연산자(×)는 '13'으로 정해져 있고, 나눗셈 연산자(÷)는 '14'로 정해져 있지만, 이러한 값은 변경 가능하다.
이로 인해, 제어부(130)는 연산자가 존재하는 것으로 판정된 해당 필드(F1, F3)의 값을 이용하여 연산자의 종류를 판정하게 된다.
따라서, 도 5의 (a)의 경우, 연산자에 대응하는 필드(F1, F3) 중 첫 번째 존재하는 필드(F1)의 값이 '13'이므로, 제어부(130)는 해당 필드(F1)에 대응하는 연산자를 곱셈 연산자로 판정한다.
이처럼, 검색된 연산자가 곱셈 연산자나 나눗셈 연산자가 존재할 경우, 제어부(130)는 해당 필드(F1)의 인덱스 값(1)에 1을 차감하여 산출된 값(0)을 갖는 인덱스와 1을 더하여 산출된 값(2)을 갖는 인덱스에 대응하는 필드(F0, F2)에 존재하는 두 숫자(2, 10), 즉 해당 곱셈 연산자나 나눗셈 연산자의 바로 앞과 뒤에 존재하는 피연산자를 판정된 해당 연산자(예, 곱셈 연산자)에 해당하는 값을 산출한다, 즉, 도 5의 (b)와 같이 (2×10)의 연산을 실시하여 연산값을 산출한다(S1554).
그런 다음, 제어부(130)는 산출된 연산값을 이용하여 사용자 문제의 연산식에 대한 정렬 동작을 실시한다(S1555).
이를 위해, 제어부(130)는 산출된 연산값을 '1' 차감된 인덱스 값(0)을 갖는 필드(F0)의 값으로 대체하여[도 5의 (c)] 새로운 사용자 문제[예, (20×10+3)]를 만든다.
다음, 제어부(130)는 새로 생성된 사용자 문제에서 해당 연산을 위한 연산자(예, ×)가 존재하는 인덱스 값(1)을 갖는 필드(F1)를 기준점(▲)으로 정하고 이 기준점의 인덱스의 값(1)에 설정값인 '2'를 더하여 산출된 값(3=1+2)을 갖는 인덱스에 해당하는 필드를 정렬이 행해질 대상점(■), 즉, 정해진 필드의 값을 대상점의 필드 값으로 교체하기 위한 해당 필드로 정한다. 이때, 설정값은 해당 연산자에 대한 연산이 행해지면, 세 개의 필드에 해당하는 값이 하나의 필드로 저장되므로, 나머지 2개의 필드에 다른 필드의 값을 이동시키기 위하기 위해 '2'로 설정된다.
따라서, 도 5의 (d)의 경우, 기준점(▲)은 '1'의 인덱스를 갖는 필드(F1)이고 대상점(■)은 '3'의 인덱스를 갖는 필드(F3)가 된다.
이처럼, 도 5의 (d)와 같이, 기준점(▲)과 대상점(■)의 위치가 정해지면, 제어부(130)는 산출된 대상점(■)의 값(3)과 현재 필드 길이의 값(5)을 비교하여 대상점의 값(3)과 필드 길이의 값(5)이 동일한지를 판정한다.
본 예의 경우, 대상점(■)의 값은 '3'이고 필드 길이의 값은 '5'이므로, 대상점의 값과 필드 길이의 값이 서로 상이하므로, 제어부(130)는 대상점(■)에 해당하는 필드(F3)의 저장값[10=(+)]이 현재 기준점을 표시하고 있는 해당 필드(F1)의 값으로 교체된다[도 5의 (e)].
이러한 해당 필드(F1)의 값 교체로 인해, 도 5의 (e)처럼, 새로 생성된 사용자 문제는 (20+10+3)이 된다. 이때, 현재 필드 길이는 역시 '5'가 된다.
다음, 제어부(130)는 현재 기준점의 인덱스 값에 '1'을 더하여 새로운 기준점(2)과 새로운 대상점(4)에 해당하는 인덱스 값을 산출하여, 도 5의 (f)처럼 기준점의 위치(F2)와 대상점의 위치(F4)를 변경한다.
그런 다음, 제어부(30)는 다시 변경된 대상점(■)의 인덱스 값(4)과 현재 필드 길이가 동일한지를 비교한다.
따라서, 현재 대상점(■)의 인덱스 값이 필드 길이의 값과 상이하므로, 제어부(130)는 대상점(■)에 해당하는 필드(F4)의 값을 기준점(▲)에 해당하는 값으로 교체한다[도 5의 (g)]. 이러한 동작에 의해 새로운 사용자 문제는 (20+3+3)이 되며 이때의 필드 길이는 여전히 '5'가 된다.
다음, 제어부(30)는 다시 현재 기준점(▲)의 인덱스 값(2)을 '1' 증가시켜 새로운 기준점의 위치를 나타내는 인덱스 값(3)을 산출하고 산출된 기준점의 인덱스 값에 '2'을 더하여 새로운 대상점(■)의 인덱스 값(5)을 산출하여 기준점의 위치를 변경한다[도 5의 (h)].
그런 다음, 다시 제어부(30)는 다시 변경된 대상점(■)의 인덱스 값(5)과 현재 필드 길이(5)가 동일한지를 비교한다.
따라서, 현재 대상점(■)의 인덱스 값(5)이 필드 길이의 값(5)과 동일하므로, 제어부(130)는 해당 연산식(예, ×)의 연산 동작에 따른 정렬 동작을 종료하고, 현재 필드 길이에서 '2'를 차감하여 현재 필드 길이를 '3'으로 감소시킨다.
이처럼, 도 5의 (i)와 같이, 사용자 문제는 초기 5개의 필드를 갖는 연산식 배열에서 3개의 필드를 갖는 연산식 배열로 변경되어 메모리(150)에 저장하고, 연산식 배열에 대입되는 사용자 문제는 (20+3)이 된다.
그런 다음, 제어부(130)는 다시 한 후 단계(S1552)로 넘어가 감소된 필드 길이를 갖는 사용자 문제에 다시 덧셈 연산자나 나눗셈 연산자가 존재하는 판정한다.
이러한 동작을 통해, 사용자 문제에 곱셈 연산자와 나눗셈 연산자 중 적어도 하나가 존재할 경우 해당 연산자에 대한 연산을 수행한 후 연산식 정렬 동작을 완료하고, 이러한 연산 및 정렬 동작은 도 5의 (i)와 같이 사용자 문제에 곱셈 연산자와 나눗셈 연산자가 중 적어도 하나가 존재하지 않을 때까지 행해진다.
하지만, 단계(S1552)에서 곱셈 연산자나 나눗셈 연산자가 사용자 문제에 포함되어 있지 않을 경우, 제어부(130)는 현재 연산식 배열의 길이가 '1'인지를 판정한다(S1556).
예를 들어, 도 5의 (i)에 의한 연산식 배열의 길이는 '3'이므로, 현재 연산식 배열의 길이는 '1'이 아니다.
따라서, 배열의 길이가 '1'이 아닐 경우, 제어부(130)는 인덱스의 값 중 홀수의 값을 갖는 인덱스를 검색하여 현재 사용자 문제 중에 덧셈 연산자 또는 뺄셈 연산자를 검색해고, 해당 필드(예, F1)에 저장된 값을 이용하여 덧셈 연산자인지 뺄셈 연산자인지를 판정한다(S1557).
다음, 제어부(130)는 단계(S1554)에서 이미 설명한 것과 같은 방식으로 연산자가 존재하는 해당 필드(F1)의 인덱스 값(1)에 ±1을 실시하여 산출된 인덱스(0, 1)에 대응하는 필드(F0, F2)에 존재하는 두 숫자(20, 3)를 판정된 연산자(예, 덧셈 연산자)를 이용하여 연산한 후, 연산값을 산출한다(S1558)[도 5의 (j) 참조].
그런 다음, 제어부(130)는 도 5의 (c) 내지 (i)를 참고로 하여 설명한 것과 동일한 방식을 이용하여 연산식 정렬 동작을 실시한다(S1559).
따라서, 도 5의 (j)를 통해 연산값(23)이 산출되면, 제어부(130)는 '1'이 차감된 인덱스 값을 갖는 필드(F0)의 저장 값을 연산값(23)으로 대체한다[도 5의 (k)].
그런 다음, 도 5의 (l)과 같이, 연산자(+)가 존재하는 필드(F1)를 기준점(▲)으로 결정하고, 기준점(▲)의 인덱스 값(예, 1)에 '2'를 더하여 대상점이 되는 인덱스 값(3)을 정하여 대상점에 대응하는 필드(F3)를 정한다.
이처럼, 기준점(▲)과 대상점(■)이 되는 필드(F1, F3)의 인덱스 값이 정해지면, 제어부(130)는 대상점(■)의 값과 현재 필드 길이가 동일한지를 판정한다.
본 예의 경우, 대상점((■)의 인덱스 값은 '3'이고 필드 길이 또한 '3'이므로, 두 값이 서로 동일하다. 이럴 경우, 제어부(130)는 연산식 정렬 동작을 중지한 후, 현재 필드 길이(3)에서 '2'를 빼 연산식 배열의 필드 길이를 '1'로 하여 연산식 배열이 하나의 필드(F0)를 갖도록 한다.
그런 다음, 도 5의 (m)과 같이, 산출된 연산값은 하나의 필드(F0)의 값으로 저장하여 사용자 문제에 대한 최종 연산값을 산출하게 된다.
이처럼, 게임자에 의해 완성된 사용자 문제에 대한 연산이 완료되면, 산출된 최종 연산값과 이미 저장되어 있는 정답값을 비교하여 산출된 최종 연산값이 정답값이 동일한지를 판정한다(S156). 이때, 저장값은 디스플레이 모듈(141)에 표시된 결과값과 동일한 값이 된다.
최종 연산값이 정답값이 서로 동일할 경우(S156), 제어부(130)는 게임자에 의해 빈 칸에 입력된 숫자와 연산자 중 적어도 하나를 정답으로 판정하고(S157), 초기값이 '0'인 총 정답수를 현재 정답수에서 '1' 증가시켜 현재 총 정답수로 메모리(150)에 저장한다(S158).
그런 다음, 현재 총 정답 개수를 설정 개수와 비교하여, 레벨을 한 단계 상승시키는 레벨 상승 상태인지를 판단한다(S159). 본 예에서, 사칙연산 게임의 초기 레벨은 1레벨이다. 한 예로, 설정 개수는 세 개일 수 있다.
따라서, 현재 총 정답 개수가 설정 개수 이상일 경우, 제어부(130)는 현재 레벨을 한 단계 상승시켜(S1510), 예를 들어, 현재 레벨 상태가 초기 상태인 '1'단계일 경우, 레벨은 2단계로 증가되고 증가된 2레벨을 현재 레벨로서 메모리(150)에 저장한다.
그런 다음, 제어부(130)는 단계(S151)로 넘어가 증가된 레벨에 맞는 새로운 최종 문제를 생성해 적어도 하나의 빈 칸을 갖는 사칙 연산식으로 디스플레이 모듈(141)을 통해 출력한다.
하지만, 단계(S)에 현재 성공 개수가 설정 개수보다 적을 경우, 제어부(130)는 별도의 레벨 상승 동작 없이 현재 레벨에 해당하는 최종 문제를 생성해 새로운 사칙 연산식을 디스플레이 모듈(141)로 출력하도록 한다(S151).
다시 단계(S)로 넘어가, 사용자의 입력된 숫자와 연산자 중 적어도 하나에 의해 완성된 사칙 연산식의 최종 연산값이 저장된 저장값과 상이할 경우, 제어부(130)는 사용자에 의해 입력된 숫자나 연산자를 오답으로 판정한다(S1511).
따라서, 현재의 총 오답 개수를 '1'로 증가시킨 후 현재 총 오답 개수로 새롭게 메모리(150)에 저장한다(S1512).
그런 다음, 제어부(130)는 오답 개수를 표시하는 오답 표시 마크(221)를 이용하여 현재 총 오답 개수를 디스플레이 모듈(141)에 표시한다(S1513). 본 예의 경우, 오답 개수 표시 방식은 오답 표시 마크(221)의 색상을 초기 색상에서 설정 색상으로 변경하여 오답 개수를 표시할 수 있다.
다음, 제어부(130)는 증가된 현재 총 오답 개수를 설정 개수와 비교하여, 현재 총 오답 개수가 설정 개수에 도달했는지를 판정한다(S1514).
현재 총 오답 개수가 설정 개수에 도달한 상태로 판정되면, 제어부(130)는 사칙연산 게임을 종료하고(S1515), 메모리(150)에 저장된 게임 종료 화면을 총 정답수와 함께 디스플레이부(141)로 출력한다(S1516).
하지만, 현재 총 오답 개수가 설정 개수에 도달한 상태가 아닐 경우, 제어부(130)는 단계(S151)로 넘어가 현재 레벨에 해당하는 최종 문제를 생성하여 사칙 연산식으로 디스플레이 모듈(141)로 출력한다.
다시, 단계(S154)로 넘어가, 사칙 연산식이 출력된 후 경과된 경과 시간(제2경과 시간)이 설정 시간(제2 설정 시간)에 도달할 때까지 사용자의 입력을 완료하지 못할 경우, 즉 설정 시간 동안 원하는 숫자나 연산식의 입력을 완료하지 못할 경우, 제어부(130)는 비활성 상태의 초기 상태를 갖는 힌트 버튼(B23)을 활성화시킨다(S1517, S1518).
이때, 제1 설정 시간은 게임을 종료시키기 위한 제1 설정 시간보다 짧은 시간이다.
다음, 제어부(130)는 사용자 입력부(120)를 통해 입력되는 신호를 판정하여 힌트 버튼(B23)이 게임자에 의해 선택되어 힌트 버튼(B23)이 동작되었는지를 판정한다(S1519).
게임자인 사용자에 의해 힌트 버튼(B23)이 선택되어 동작한 상태로 판정되면, 제어부(130)는 힌트값을 출력한 후(S1520), 단계(S152)로 넘어가 사용자에 의해 숫자나 연산자가 입력되는지의 여부를 판정한다.
이때, 출력되는 힌트값의 개수는 이미 정해져 있으며, 정답을 포함하고 숫자와 연산자 중 적어도 하나로 이루어져 있다.
다음, 도 6을 참고로 하여, 최종 문제를 생성하는 제어부(130)의 동작에 대해 설명한다.
도 5에 도시한 것처럼, 최종 문제 생성 단계(S151)로 접어들면, 제어부(130)는 메모리(150)에 저장된 값을 이용하여 현재 레벨을 판정한다(S1511).
그런 다음, 판정된 현재 레벨에 해당하는 난이도를 결정한다(S1512). 본 예의 경우, 이미 메모리(150)의 룩업 테이블(look-up table) 등을 이용하여 각 레벨에 맞는 난이도가 이미 정해져 있으므로, 제어부(130)는 메모리(150)의 데이터를 이용하여 판정된 레벨에 해당하는 난이도를 판정한다.
본 예의 경우, 레벨에 따라 난이도가 결정되지만, 이에 한정되지 않고 대안적인 예에서, 별도의 버튼 동작을 이용하여 게임자의 선택 동작에 의해 사용자 임의로 난이도(즉, 레벨)을 선택할 수 있다.
본 예의 경우, 최저 난이도는 '1'이고 최고 난이도는 '5'이지만, 이에 한정되지 않는다.
다음, 제어부(130)는 판정된 난이도에 해당하는 형식으로 예비 문제를 생성한다(S1513).
본 예에서, 난이도에 따른 예비 문제의 형식은 다음의 [표 1]과 같다.
난이도 제1 숫자 개수 제1 연산자 개수 제2 숫자 개수 제2 연산자 개수 제2 숫자 개수 사칙 연산식의 총 빈칸 수
1 2 1 1 1
1 1 2 1
2 2 1 1 2
1 1 2 2
3 1 1 1 1 2 2
1 1 2 1 1 2
2 1 1 1 1 2
4 1 1 1 1 2 3
1 1 2 1 1 3
2 1 1 1 1 3
5 2 1 2 1 1 4
2 1 1 1 2 4
1 1 2 1 2 4
위의 [표 1]에 기재한 것처럼, 난이도가 높아질수록 게임자가 풀어야 할 문제로 제출되는 사칙 연산식에 표시되는 빈 칸의 수는 증가하고, 예비 문제에 포함된 항 수가 늘어난다. 본 예의 경우, 숫자 항과 연산자 항으로 이루어진 예비 문제의 항의 총 개수는 항상 홀 수 이다.
또한, 난이도가 증가할수록 예비 문제의 숫자 항 수의 자릿수 역시 증가하며 연속하게 위치한 빈 칸의 개수 역시 증가한다.
따라서, 난이도 증가 조건은 숫자 항 수의 개수, 숫자 항의 자릿수, 빈 칸의 총 수 및 연속적으로 위치한 빈 칸의 개수 중 적어도 하나이므로, 이들 조건 중 적어도 하나가 증가할수록 게임의 난이도는 증가한다.
제어부(130)는 무작위로 원하는 자릿수의 숫자를 발생시키기 위해 난수 발생기를 구비하고 있다.
따라서, 사칙 연산식에서, 숫자 개수가 두 개로서 두 자리의 숫자를 발생시켜야 하는 항일 경우 제어부(130)는 10~99 사이의 숫자 중에서 무작위로 두 자리의 숫자를 발생시키고, 숫자 개수가 한 개로서 한 자리의 숫자를 발생시켜야 하는 항일 때 제어부(130)는 1~9 사이의 숫자 중에서 무작위로 한 자리의 숫자를 발생시킨다.
난이도가 3에서부터 5일 경우, 복수의 연산자 중에서 하나는 반드시 빈 칸으로 표시되고, 숫자와 나머지 하나의 연산자가 빈칸으로 표시되는 비율은 7:3으로 숫자가 빈칸으로 표시될 확률이 높다.
이미 설명한 것처럼, 본 예의 경우, 최고 난이도는 5이고 빈칸의 최대 개수는 2개이며 각 항의 숫자 수는 최대 2개이지만, 이에 한정되지 않고 필요에 따라 이들 중 적어도 하나는 변경 가능하다.
따라서, 제어부(130)는 표 1에 표시된 예비 문제의 형식에 따라 각 항에 해당하는 적어도 하나의 자릿수를 갖는 숫자와 사칙 연산자 중 하나로 이루어진 연산자로 이루어진 예비 문제가 생성된다.
이처럼, 판정된 난이도에 해당하는 형식의 예비 문제가 생성되면, 제어부(130)는 생성된 예비 문제가 최종 문제로서 게임자에게 제공되기에 적합한지의 문제인지의 여부를 판정하는 유효성 판정을 실시한다(S1514).
이러한 유효성 판정 동작은 도 7에 도시된 같은 동작 순서도에 따라 제어부(130)에 의해 행해진다.
따라서, 제어부(130)의 동작이 예비 문제의 유효성 판정 단계(S1514)로 넘어가면, 제어부(130)는 생성된 예비 문제를 도 5에 도시한 것과 같은 연산식 배열에 배열시켜 예비 문제의 유효성 판정을 실시하게 된다.
이처럼 예비 문제가 연산식 배열에 배열된 상태가 되면 제어부(130)는 예비 문제에 나눗셈 연산자가 존재하는지 검색한다(S51). 나눗셈 연산자의 검색 동작 역시 도 4와 도 5를 참고로 하여 설명한 방식과 같이, 제어부(130)는 인덱스의 값이 홀수인 필드를 검색한 후 해당 필드에 저장된 값을 이용하여 나눗셈 연산자인지 다른 종류의 연산자인지를 판정한다.
그런 다음, 제어부(130)는 예비 문제에 나눗셈 연산자가 복 수개 존재하는지 판단한다(S52).
판정된 나눗셈 연산자의 개수가 2개 이상으로 복수 개 존재할 경우, 제어부(130)는 복수의 나눗셈 연산자 중 하나는 무작위로 다른 연산자 즉 덧셈 연산자, 뺄셈 연산자 및 곱셈 연산자 중 하나로 변경하여(S53) 예비 문제를 변경한다(S54).
그런 다음, 제어부(130)는 변경된 예비 문제에 존재하는 나눗셈 연산자를 이용하여 나눗셈 연산자의 바로 앞과 바로 뒤에 존재하는 숫자 항의 피연산자에 대한 나눗셈 연산을 실시한다. 이때, 해당 나눗셈 연산자의 피연산자를 검색하는 방식은 이미 도 5를 참고로 하여 설명한 것처럼, 해당 나눗셈 연산자가 존재하는 필드의 인덱스 값에 ±1을 하여 산출된 두 인덱스 값에 각각 대응하는 필드에 존재하는 숫자를 두 개의 피연산자로 판정한다.
그런 다음, 제어부(130)는 나눗셈 연산을 행하여 산출된 나머지의 값이 '0'인지를 판정한다(S57).
산출된 나머지의 값이 '0'이 아닐 경우, 제어부(130)는 현재 생성된 예비 문제를 무효 상태로 판정한다(S58). 따라서, 나눗셈 연산에 의해 복잡성을 낮추므로, 복잡한 연산으로 인한 사용자가 흥미가 떨어지는 문제를 방지한다.
하지만, 나눗셈 연산으로 인한 나머지의 값이 '0'일 경우, 제어부(130)는 나눗셈 연산에 따른 예비 문제에 대한 연산식 배열 동작을 실시하여 나눗셈 연산이 행해진 예비 문제의 연산식 배열을 정렬한 후(S591), 정렬된 연산식 배열을 이용해 예비 문제에 다른 나눗셈 연산자가 존재하는지 판정하고(S59), 현재 예비 문제에 다른 나눗셈 연산자가 존재하면 다시 단계(S56)로 넘어가 해당 항에 대한 나눗셈 연산을 실시한다.
이러한 동작을 통해 예비 문제에 존재하는 나눗셈 연산이 모두 수행되어 예비 문제에 나눗셈 연산자가 존재하지 않게 되면(S55), 제어부(130)는 덧셈 연산자, 뺄샘 연산자 및 곱셈 연산자 중 적어도 하나를 구비한 문제의 연산 동작을 실시하여 연산값을 산출하여 현재 생성된 예비 문제에 대한 최종 연산값을 산출한다(S510).
문제의 연산 동작과 나눗셈 연산 동작은 이미 도 5의 (a) 내지 (m)을 참고로 하여 설명한 것과 동일한 방식으로 행해져 해당 문제에 대한 연산값을 산출하므로, 이에 대한 자세한 설명은 생략한다.
다음, 제어부(130)는 예비 문제에 대한 연산값이 '0' 미만인지 또는 '99999'를 초과하지는 판정한다(S511).
따라서, 산출된 연산값이 '0' 이상이거나 정해진 자릿수(예, 5 자릿수)를 초과하지 않을 경우, 제어부(130)의 현재 생성된 예비 문제를 최종 문제로 선택되기에 적합한 유효 상태로 판정하고(S512), 산출된 연산값이 '0' 미만이거나 '99999'를 초과하여, 마이너스(minus, -) 값이거나 정해진 자릿수를 초과하는 큰 값이 나올 경우, 제어부(130)는 현재 생성된 예비 문제는 최종 문제로 선택되기에 적합하지 않은 무효 상태로 판정한다(S513).
생성된 예비 문제가 유효한 상태로 판정되면, 제어부(130)는 예비 문제에 대한 최종 결과값인 연산값을 예비 문제에 대한 정답값으로서 메모리(150)에 저장한다.
이로 인해, 게임에 대한 복잡성을 감소시켜, 간단하고 복잡하지 않은 사칙 연산으로 인한 게임자의 흥미를 증가시킬 수 있도록 한다.
또한, 게임자에게 제출되는 최종 문제는 이미 저장되어 있는 복수 개의 문제 중에 무작위로 선택되는 것이 아니라 이러한 문제 생성 동작을 통해 매번 새롭게 생성되므로, 게임자의 흥미를 더욱 향상시킬 수 있다.
이러한 동작을 통해 단계(S1513)에서 생성된 예비 문제가 게임자에게 제공되기에 부적합한 상태, 즉, 무효한 상태로 판정되면(S1515), 제어부(130)는 현재 생성된 예비 문제를 삭제한 후 다시 새로운 예비 문제를 생성하기 위해 단계(S1513)로 넘어간다.
하지만, 현재 생성된 예비 문제가 게임자에게 제공되기에 적합한 상태, 즉, 유효한 상태로 판정되면(S1515), 제어부(130)는 데이터베이스(170)에 저장되어 있는 기 출제된 최종 문제를 예비 문제를 비교하여 현재 생성된 예비 문제가 이전에 이미 생성되어 게임자에게 출제되었던 문제, 즉, 기 출제된 최종 문제와 동일한지를 판정한다(S1516).
예비 문제와 동일한 최종 문제가 이미 데이터베이스(170)에 저장되어 있을 때(S1516), 제어부(130)는 생성된 예비 문제를 게임자에게 제공되는 최종 문제가 채택하지 않는다.
따라서, 제어부(130)는 현재 생성된 예비 문제를 삭제한 후 다시 새로운 예비 문제를 생성하기 위해 단계(S1513)로 넘어간다.
이와 같이, 이미 제출되었던 문제는 다시 게임자에게 제출되지 않으므로, 게임자의 재미와 흥미가 향상된다.
하지만, 현재 생성된 예비 문제와 동일한 문제가 데이터베이스(170)에 저장되어 있지 않을 경우, 제어부(130)는 현재 생성된 예비 문제가 게임자에게 최종 문제로 제출된 적이 없는 새로운 문제로 판정한다.
따라서, 제어부(130)는 현재 생성된 예비 문제를 최종 문제로 설정하여(S1517), 단계(S1513)의 동작에 의해 게임자에게 문제로 제출되어, 문제 풀이를 할 수 있도록 한다.
그런 다음, 제어부(130)는 예비 문제에게 최종 문제로 판정된 문제를 데이터베이스(170)에 기 출제된 최종 문제로서 저장하고, 데이터베이스(170)에 저장된 기 출제된 최종 문제의 개수를 현재 개수에서 '1' 증가시켜 현재 기 출제된 문제 개수를 '1' 증가시킨다(S1518).
다음, 제어부(130)는 증가된 현재 기 출제된 최종 문제 개수를 설정 개수(예, 4천 개)와 비교하여 현재 기 출제된 최종 문제 개수가 설정 개수에 도달했는지를 판정한다(S1519).
현재 기 출제된 최종 문제 개수가 설정 개수에 도달할 경우, 제어부(130)는 데이터베이스(170)에 저장된 모든 기 출제된 최종 문제를 삭제하고 또한 현재 기 출제된 최종 문제 개수를 '0'으로 초기화시킨 후(S1520), 동작을 종료한다(S100).
이처럼, 데이터베이스(170)에 저장된 기 출제된 최종 문제의 개수가 설정 개수에 도달하면, 데이터베이스(170)에 저장된 모든 기 출제된 최종 문제를 삭제한다.
이로 인해, 제어부(130)에 의한 최종 문제의 생성 여유도가 증가하므로, 제어부(130)의 최종 문제 생성 시간이 단축되고 제어부(130)에 인가되는 부하량이 감소한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
110: 통신부 120: 사용자 입력부
130: 제어부 140: 출력부
150: 메모리 160: 타이머
170: 데이터베이스 180: 인터페이스
F0-F4: 필드 SC1: 게임 시작 화면
SC2: 게임 종료 화면 SC3: 사칙연산 문제 화면

Claims (10)

  1. 제어부가 예비 문제를 생성하는 단계,
    상기 제어부가 상기 예비 문제에 대한 연산 동작을 실시하여 유효성을 판정하는 단계,
    상기 제어부는 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 데이터베이스에 존재하는지 판단하는 단계,
    상기 제어부는 상기 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재할 경우 상기 예비 문제를 최종 문제로 정하지 않고, 상기 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재하지 않을 경우 상기 예비 문제를 최종 문제로 정하는 단계,
    상기 제어부는 상기 예비 문제가 최종 문제로 정해지면 상기 최종 문제와 상기 유효성 판정을 통해 산출된 상기 예비 문제에 대한 연산값을 적어도 하나의 항이 비어있는 사칙 연산식으로 디스플레이 모듈로 출력하는 단계,
    상기 제어부가 사용자 입력부를 통해 입력되어 상기 적어도 하나의 빈 항에 채워진 숫자나 연산자를 이용해 완성된 상기 사칙 연산식에 대한 사용자 문제를 연산하여 연산값을 산출하는 단계,
    상기 제어부는 산출된 상기 연산값과 정답값을 비교하여 상기 사용자 입력부를 통해 입력된 상기 숫자나 연산자가 정답인지를 판정하는 단계,
    상기 제어부는 유효한 상태로 판정된 상기 예비 문제와 동일한 문제가 상기 데이터베이스에 존재하지 않은 경우, 상기 유효한 상태로 판정된 상기 예비 문제를 기 출제된 문제로서 상기 데이터베이스에 저장하고 기 출제된 최종 문제의 개수를 '1' 증가시키는 단계,
    상기 제어부는 상기 기 출제된 최종 문제의 개수가 설정 개수에 도달했는지를 판단하는 단계, 그리고
    상기 제어부는 상기 기 출제된 최종 문제의 개수가 설정 개수에 도달한 상태로 판단되면, 상기 데이터베이스에 저장된 기 출제된 문제를 삭제하고 상기 기 출제된 최종 문제의 개수를 초기화시키는 단계
    를 포함하는 사칙연산 학습기의 구동 방법.
  2. 삭제
  3. 삭제
  4. 제1항에서,
    상기 유효성의 판정 단계는,
    상기 제어부가 상기 예비 문제에 나눗셈 연산자가 존재하는지 판단하는 단계,
    상기 제어부는 상기 예비 문제에 상기 나눗셈 연산자가 존재할 경우, 상기 나눗셈 연산자에 바로 앞과 뒤에 있는 피연산자에 대한 나눗셈 연산을 실시하여 나머지가 '0'인지를 판단하는 단계, 그리고
    상기 제어부는 상기 나머지가 '0'이 아닐 경우, 상기 예비 문제를 무효한 상태로 판정하고 상기 나머지가 '0'일 때 상기 예비 문제를 유효한 상태로 판정하는 단계
    를 포함하는 사칙연산 학습기의 구동 방법.
  5. 제4항에서,
    상기 유효성의 판정 단계는,
    상기 제어부가 상기 예비 문제에 나눗셈 연산자가 존재하지 않을 경우, 상기 예비 문제를 연산하여 상기 예비 문제에 대한 연산값을 산출하는 단계,
    상기 제어부는 산출된 상기 예비 문제의 연산값이 마이너스 값을 가지거나 정해진 자릿수를 초과하는지를 판정하는 단계, 그리고
    상기 제어부는 산출된 상기 예비 문제의 연산값이 마이너스값을 가지거나 정해진 자릿수를 초과할 경우 상기 예비 문제를 무효한 상태로 판정하고, 산출된 상기 예비 문제의 연산값이 마이너스값을 가지지 않고 정해진 자릿수를 초과하지 않을 경우 상기 예비 문제를 유효한 상태로 판정하는 단계
    를 더 포함하는 사칙연산 학습기의 구동 방법.
  6. 제4항에서,
    상기 유효성의 판정 단계는,
    상기 제어부가 상기 예비 문제에 나눗셈 연산자가 존재할 경우, 나눗셈 연산자가 복수 개인지를 판정하는 단계, 그리고
    상기 제어부는 상기 예비 문제에 상기 나눗셈 연산자가 복수 개 존재할 경우, 복수의 나눗셈 연산자 중 하나를 덧셈 연산자, 뺄셈 연산자, 곱셈 연산자 중 하나로 교체하여 상기 예비 문제를 변경하는 단계
    를 더 포함하는 사칙연산 학습기의 구동 방법.
  7. 제1항에서,
    상기 연산값의 산출 단계는,
    상기 제어부가 복수의 필드를 구비한 상기 사용자 문제에 해당하는 연산식 배열에서 상기 복수의 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하는 단계,
    상기 제어부는 판정된 상기 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재한 상태로 판정되면, 곱셈 연산자나 나눗셈 연산자에 대한 연산을 행하여 연산값을 산출하는 연산 동작과, 상기 곱셈 연산자나 나눗셈 연산자의 연산값을 이용하여 상기 사용자 문제의 연산식에 대한 정렬 동작을 실시하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 연산식 정렬 동작을 행하는 단계,
    상기 제어부는 판정된 필드의 값에 따라 곱셈 연산자나 나눗셈 연산자가 존재하지 않은 상태로 판정되면, 연산식 배열의 길이가 '1'인지를 판정하는 단계,
    상기 제어부는 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 연산자가 위치하는 필드의 위치를 판정하여, 판정된 필드의 값에 따라 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 단계,
    상기 제어부는 변경된 연산식 배열의 필드 길이가 '1'인지를 판정하는 단계,
    상기 제어부는 상기 연산식 배열의 길이가 '1'이 아닐 경우, 상기 연산식 배열에서 필드의 인덱스 값을 이용해 판정된 덧셈 연산자나 뺄셈 연산자에 대한 연산 동작과 연산식 배열 동작을 행하여 상기 사용자 문제에 대한 연산식 배열을 변경하는 단계, 그리고
    상기 제어부는 상기 연산식 배열의 길이가 '1'일 경우, 연산 동작에 의해 산출된 연산값을 상기 사용자 문제에 대한 상기 연산값으로 판정하는 단계
    를 포함하는 사칙연산 학습기의 구동 방법.
  8. 제7항에서,
    상기 연산식의 정렬 동작을 행하는 단계는,
    상기 제어부가 연산자에 대한 연산 동작에 의해 산출된 연산값을 연산자가 위치하는 바로 앞의 피연산자가 존재하는 필드 값으로 교체하는 단계,
    상기 제어부는 상기 연산자가 위치하는 필드를 기준점을 정하고 상기 기준점의 인덱스값에 설정값을 더한 인덱스값을 갖는 필드를 대상점으로 정하는 단계,
    상기 제어부는 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같은지 비교하는 단계,
    상기 제어부는 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 대상점의 필드값을 기준점의 필드값으로 교체하고, 기준점과 대상점이 위치하는 인덱스 값을 이동시켜 기준점과 대상점의 필드 위치를 한 칸씩 이동시키는 단계,
    상기 제어부는 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같지 않을 경우, 한 칸씩 이동된 상기 대상점의 필드값을 한 칸씩 이동된 상기 기준점의 필드값으로 교체하는 단계, 그리고
    상기 제어부는 한 칸씩 이동된 상기 대상점의 인덱스값이 연산식 배열의 필드 길이와 같을 경우, 연산식 배열의 필드 길이를 설정값만큼 차감하여 새로운 필드 길이를 갖는 연산식 배열을 변경하는 단계
    를 포함하는 사칙연산 학습기의 구동 방법.
  9. 제1항에서,
    상기 예비 문제의 생성 단계는,
    상기 제어부가 메모리에 저장된 값을 이용하여 현재 레벨을 판정하는 단계,
    상기 제어부는 상기 메모리의 데이터를 이용하여 판정된 상기 현재 레벨에 해당하는 난이도를 판정하는 단계, 그리고
    상기 제어부는 판정된 난이도에 따라 숫자 항 수의 개수, 숫자 항의 자릿수, 빈 칸의 총 수 및 연속적으로 위치한 빈 칸의 개수를 정하여 상기 예비 문제를 생성하는 단계
    를 포함하는 사칙연산 학습기의 구동 방법.
  10. 제1항에서,
    상기 제어부는 타이머를 구동시켜 사용자 입력부를 통해 정해진 시간 동안 상기 적어도 하나의 빈 항에 숫자나 연산자가 입력되는지를 판단하는 단계, 그리고
    상기 제어부는 상기 정해진 시간 내에 상기 적어도 하나의 빈 항에 숫자나 연산자가 입력되지 않을 경우, 상기 적어도 하나의 빈 항에 대한 정답을 포함한 정해진 개수의 힌트값을 출력하는 단계
    를 더 포함하는 사칙연산 학습기의 구동 방법.
KR1020140124938A 2014-09-19 2014-09-19 사칙연산 학습기의 구동 방법 KR101578656B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140124938A KR101578656B1 (ko) 2014-09-19 2014-09-19 사칙연산 학습기의 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140124938A KR101578656B1 (ko) 2014-09-19 2014-09-19 사칙연산 학습기의 구동 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR20140045046A Division KR101462091B1 (ko) 2014-04-15 2014-04-15 사칙연산 학습기

Publications (2)

Publication Number Publication Date
KR20150118883A KR20150118883A (ko) 2015-10-23
KR101578656B1 true KR101578656B1 (ko) 2015-12-18

Family

ID=54427323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140124938A KR101578656B1 (ko) 2014-09-19 2014-09-19 사칙연산 학습기의 구동 방법

Country Status (1)

Country Link
KR (1) KR101578656B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101840358B1 (ko) * 2015-11-04 2018-03-20 주식회사 터치앤에듀 필기된 수식 인식을 이용한 수학 학습 장치 및 방법
WO2021125374A1 (ko) * 2019-12-17 2021-06-24 (주)미디어포스원 산수 학습 능력 진단에 기반한 산수 학습 스마트러닝 제공 방법 및 이를 수행하는 서비스 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4030942B2 (ja) * 2003-09-16 2008-01-09 吉見出版株式会社 携帯型暗算練習機
JP2008206931A (ja) * 2007-02-23 2008-09-11 Hiroshi Watanabe パズルゲームの問題を自動作成するプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4030942B2 (ja) * 2003-09-16 2008-01-09 吉見出版株式会社 携帯型暗算練習機
JP2008206931A (ja) * 2007-02-23 2008-09-11 Hiroshi Watanabe パズルゲームの問題を自動作成するプログラム

Also Published As

Publication number Publication date
KR20150118883A (ko) 2015-10-23

Similar Documents

Publication Publication Date Title
KR101462091B1 (ko) 사칙연산 학습기
US10739953B2 (en) Apparatus and method for providing user interface
CN1762144B (zh) 字符排布、输入方法以及输入装置
CN110339572A (zh) 游戏中卡组编辑方法、装置及电子设备
US20090031237A1 (en) Displaying and navigating through multiple applications
CN103226437A (zh) 一种控制终端翻页的方法及终端
CN107621886A (zh) 一种输入推荐方法、装置及电子设备
US20130215048A1 (en) Electronic apparatus, method for controlling the same, and computer-readable storage medium
EP3493039A1 (en) Electronic apparatus, control method thereof, and computer readable recording medium
KR101578656B1 (ko) 사칙연산 학습기의 구동 방법
CN105324160B (zh) 电子游戏机、电子游戏处理方法及存储有电子游戏程序的非易失性存储介质
CN104794412A (zh) 信息输入方法及装置与移动终端
CN103389862A (zh) 信息处理设备、信息处理方法和程序
CN101923546A (zh) 对文件夹内的图像文件进行播放的方法及系统
CN109948078A (zh) 信息处理系统、电子设备、信息处理方法以及记录介质
CN108206967A (zh) 电视界面元素选取方法、智能电视及计算机可读存储介质
CN107037888A (zh) 一种输入方法、装置和用于输入的装置
CN102981771A (zh) 控制方法及触摸屏终端的输入设备
JP6172219B2 (ja) サーバ装置、通信機器、サーバ装置の制御方法、およびプログラム
CN114020394A (zh) 图像显示方法、装置及电子设备
US20150328538A1 (en) Electronic game device and non-transitory computer-readable storage medium storing electronic game program
CN105204659A (zh) 一种待输入字符的选择方法及装置
CN105678696A (zh) 一种信息处理方法及电子设备
CN105159874B (zh) 文字的修改方法及装置
JP6965659B2 (ja) 電子機器、測定モード設定方法、およびプログラム

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee