Skip to content

Commit

Permalink
Merge pull request #64 from shilokuma-inc/feat/addDifficulty
Browse files Browse the repository at this point in the history
【FEAT】NormalとHardを追加する
  • Loading branch information
mrs1669 committed May 22, 2024
2 parents 66985a0 + 927af7f commit 70bf431
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 9 deletions.
26 changes: 22 additions & 4 deletions PrimePickApp/QuizData/QuizDataManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,39 @@ import Foundation
import GameplayKit

class QuizDataManager {
func makeQuizData() -> [PrimeQuizEntity] {
func makeQuizData(difficulty: String) -> [PrimeQuizEntity] {
let primeData = PrimeData()
var quizData: [PrimeQuizEntity] = []
let primeNumbers = primeData.generateOneOrTwoDigitPrimes()
let timestamp = UInt64(Date().timeIntervalSince1970 * 1000)
var generator = SeededGenerator(seed: timestamp)

for i in 1...10 {
let randomInt = Int.random(in: 1...99, using: &generator)
let isCorrect = primeNumbers.contains(randomInt)
var isCorrect: Bool = false
var randomInt: Int = 0
if difficulty == "Easy" {
randomInt = Int.random(in: 1...99, using: &generator)
let primeNumbers = primeData.generateOneOrTwoDigitPrimes()
isCorrect = primeNumbers.contains(randomInt)
} else if difficulty == "Normal" {
randomInt = Int.random(in: 100...999, using: &generator)
let primeNumbers = primeData.generateThreeDigitPrimes()
isCorrect = primeNumbers.contains(randomInt)
} else if difficulty == "Hard" {
repeat {
randomInt = Int.random(in: 100...999, using: &generator)
} while isMultipleOf235(randomInt)
let primeNumbers = primeData.generateThreeDigitPrimes()
isCorrect = primeNumbers.contains(randomInt)
}
let primeQuizEntity = PrimeQuizEntity(quizId: i, number: randomInt, isCorrect: isCorrect)
quizData.append(primeQuizEntity)
}
return quizData
}

func isMultipleOf235(_ number: Int) -> Bool {
return number % 2 == 0 || number % 3 == 0 || number % 5 == 0
}
}

struct SeededGenerator: RandomNumberGenerator {
Expand Down
15 changes: 11 additions & 4 deletions PrimePickApp/QuizNumberView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import SwiftUI

struct QuizNumberView: View {
@Binding var quizNumber: Int
let difficulty: String
let quizData: [PrimeQuizEntity]

var body: some View {
Expand All @@ -23,9 +24,15 @@ struct QuizNumberView: View {
.frame(width: 300, height: 200) // フレームサイズを指定
.shadow(radius: 10) // シャドウを追加して立体感を出す

Text(quizData[quizNumber].number.description)
.font(.custom("ArialRoundedMTBold", size: 180))
.foregroundStyle(Color.gray)
if difficulty == "Easy" {
Text(quizData[quizNumber].number.description)
.font(.custom("ArialRoundedMTBold", size: 180))
.foregroundStyle(Color.gray)
} else {
Text(quizData[quizNumber].number.description)
.font(.custom("ArialRoundedMTBold", size: 120))
.foregroundStyle(Color.gray)
}
}
}
}
Expand All @@ -34,6 +41,6 @@ struct QuizNumberView_Previews: PreviewProvider {
@State static var quizNumber = 3

static var previews: some View {
QuizNumberView(quizNumber: $quizNumber, quizData: [PrimeQuizEntity(quizId: 0, number: 3, isCorrect: true)])
QuizNumberView(quizNumber: $quizNumber, difficulty: "Easy", quizData: [PrimeQuizEntity(quizId: 0, number: 3, isCorrect: true)])
}
}
3 changes: 2 additions & 1 deletion PrimePickApp/QuizView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ struct QuizView: View {

init(difficulty: String) {
self.difficulty = difficulty
quizData = manager.makeQuizData()
quizData = manager.makeQuizData(difficulty: difficulty)
}

var body: some View {
Expand All @@ -32,6 +32,7 @@ struct QuizView: View {

QuizNumberView(
quizNumber: $quizNumber,
difficulty: difficulty,
quizData: quizData
)
.frame(height: UIScreen.main.bounds.height / 3)
Expand Down

0 comments on commit 70bf431

Please sign in to comment.