diff --git a/AIGrammar.xcodeproj/project.pbxproj b/AIGrammar.xcodeproj/project.pbxproj index d4d96cb..06e8e09 100644 --- a/AIGrammar.xcodeproj/project.pbxproj +++ b/AIGrammar.xcodeproj/project.pbxproj @@ -28,6 +28,9 @@ 555027392C81C0ED00A05441 /* QCloudTTS.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 555027382C81C0ED00A05441 /* QCloudTTS.xcframework */; }; 5550273C2C8322F800A05441 /* PushHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5550273B2C8322F800A05441 /* PushHandler.swift */; }; 5586E0882C80AD2D00026733 /* TTSManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5586E0872C80AD2D00026733 /* TTSManager.swift */; }; + 558DB7A32E27A91A004D6ADB /* WordPuzzleGameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 558DB7A22E27A91A004D6ADB /* WordPuzzleGameView.swift */; }; + 558DB7A52E27B049004D6ADB /* WordPuzzleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 558DB7A42E27B049004D6ADB /* WordPuzzleView.swift */; }; + 558DB7B22E2A78A5004D6ADB /* wordlist.txt in Resources */ = {isa = PBXBuildFile; fileRef = 558DB7B12E2A78A5004D6ADB /* wordlist.txt */; }; 559E6D7C2C34EAE700C971B9 /* IapManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559E6D7B2C34EAE700C971B9 /* IapManager.swift */; }; 559E6D7E2C35355200C971B9 /* LogManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 559E6D7D2C35355200C971B9 /* LogManager.swift */; }; 55A954A22BBBFD0C00BF181E /* GrammarData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55A954A12BBBFD0C00BF181E /* GrammarData.swift */; }; @@ -96,6 +99,9 @@ 5550273B2C8322F800A05441 /* PushHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushHandler.swift; sourceTree = ""; }; 5586E0832C8092C400026733 /* AIGrammar-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AIGrammar-Bridging-Header.h"; sourceTree = ""; }; 5586E0872C80AD2D00026733 /* TTSManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TTSManager.swift; sourceTree = ""; }; + 558DB7A22E27A91A004D6ADB /* WordPuzzleGameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPuzzleGameView.swift; sourceTree = ""; }; + 558DB7A42E27B049004D6ADB /* WordPuzzleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPuzzleView.swift; sourceTree = ""; }; + 558DB7B12E2A78A5004D6ADB /* wordlist.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = wordlist.txt; sourceTree = ""; }; 559E6D7B2C34EAE700C971B9 /* IapManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IapManager.swift; sourceTree = ""; }; 559E6D7D2C35355200C971B9 /* LogManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogManager.swift; sourceTree = ""; }; 55A954A12BBBFD0C00BF181E /* GrammarData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrammarData.swift; sourceTree = ""; }; @@ -170,6 +176,7 @@ 5500A38D2BB3C7E80065A1D3 /* Products */, B164443BE53434F82C385E52 /* Pods */, 40FEAE98949AC44A40547B20 /* Frameworks */, + 558DB7A72E292893004D6ADB /* Resource */, ); sourceTree = ""; }; @@ -186,6 +193,7 @@ 5500A38E2BB3C7E80065A1D3 /* AIGrammar */ = { isa = PBXGroup; children = ( + 558DB7B12E2A78A5004D6ADB /* wordlist.txt */, 5550273A2C8311CB00A05441 /* Info.plist */, 5586E0842C8093DF00026733 /* third-party */, 5586E0832C8092C400026733 /* AIGrammar-Bridging-Header.h */, @@ -239,6 +247,8 @@ 5500A3C52BB40AD30065A1D3 /* TranslateView.swift */, 5500A3C72BB40ADE0065A1D3 /* SettingsView.swift */, 55BC47502C3D431300120A7D /* IAPView.swift */, + 558DB7A22E27A91A004D6ADB /* WordPuzzleGameView.swift */, + 558DB7A42E27B049004D6ADB /* WordPuzzleView.swift */, ); path = View; sourceTree = ""; @@ -275,6 +285,13 @@ path = "third-party"; sourceTree = ""; }; + 558DB7A72E292893004D6ADB /* Resource */ = { + isa = PBXGroup; + children = ( + ); + path = Resource; + sourceTree = ""; + }; 55BC47472C3A380C00120A7D /* CommView */ = { isa = PBXGroup; children = ( @@ -426,6 +443,7 @@ files = ( 5500A3972BB3C7EB0065A1D3 /* Preview Assets.xcassets in Resources */, 5500A3942BB3C7EB0065A1D3 /* Assets.xcassets in Resources */, + 558DB7B22E2A78A5004D6ADB /* wordlist.txt in Resources */, 551C8C342C79946700B1A88C /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -555,6 +573,7 @@ buildActionMask = 2147483647; files = ( 5500A3992BB3C7EB0065A1D3 /* Persistence.swift in Sources */, + 558DB7A52E27B049004D6ADB /* WordPuzzleView.swift in Sources */, 55DAC6572BBA984B00BDD4C8 /* InputView.swift in Sources */, 55A954A22BBBFD0C00BF181E /* GrammarData.swift in Sources */, 55BB12792BBD4C9900D2BEA4 /* RichText.swift in Sources */, @@ -562,6 +581,7 @@ 55BC47512C3D431300120A7D /* IAPView.swift in Sources */, 550B85A22C2BC624008834E5 /* InitAPP.swift in Sources */, 5500A3C42BB40AC40065A1D3 /* WordsView.swift in Sources */, + 558DB7A32E27A91A004D6ADB /* WordPuzzleGameView.swift in Sources */, 5509CEF12BB54DD10056C5C2 /* Config.swift in Sources */, 55BB127B2BBD653100D2BEA4 /* ShareSheet.swift in Sources */, 5550273C2C8322F800A05441 /* PushHandler.swift in Sources */, diff --git a/AIGrammar.xcworkspace/xcuserdata/oscar.xcuserdatad/UserInterfaceState.xcuserstate b/AIGrammar.xcworkspace/xcuserdata/oscar.xcuserdatad/UserInterfaceState.xcuserstate index c8ec5c1..98e1d33 100644 Binary files a/AIGrammar.xcworkspace/xcuserdata/oscar.xcuserdatad/UserInterfaceState.xcuserstate and b/AIGrammar.xcworkspace/xcuserdata/oscar.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/AIGrammar/AllTabView.swift b/AIGrammar/AllTabView.swift index 799e9ee..3a6c83e 100644 --- a/AIGrammar/AllTabView.swift +++ b/AIGrammar/AllTabView.swift @@ -37,12 +37,19 @@ struct AllTabView: View { } .tag(2) + WordPuzzleView() + .tabItem { + Image(systemName: "timer.circle") + Text("Puzzel") + } + .tag(3) + SettingsView() .tabItem { Image(systemName: "gear") Text("Settings") } - .tag(3) + .tag(4) } } } diff --git a/AIGrammar/View/Untitled.swift b/AIGrammar/View/Untitled.swift new file mode 100644 index 0000000..4ad7575 --- /dev/null +++ b/AIGrammar/View/Untitled.swift @@ -0,0 +1,7 @@ +// +// Untitled.swift +// AIGrammar +// +// Created by oscar on 2025/7/16. +// + diff --git a/AIGrammar/View/WordPuzzleGameView.swift b/AIGrammar/View/WordPuzzleGameView.swift new file mode 100644 index 0000000..2d3a440 --- /dev/null +++ b/AIGrammar/View/WordPuzzleGameView.swift @@ -0,0 +1,153 @@ +// +// WordPuzzleView.swift +// AIGrammar +// +// Created by oscar on 2025/7/16. +// +import SwiftUI +import AVFoundation + +struct WordPuzzleGameView: View { + @State private var letters: [[String]] = [] + @State private var selectedLetters: [(Int, Int)] = [] + @State private var foundWords: [String] = [] + @State private var score: Int = 0 + @State private var remainingTime = 60 + @State private var isGameOver = false + + @GestureState private var dragLocation: CGPoint? = nil + @State private var audioPlayer: AVAudioPlayer? + + let validWords = ["WORD", "GAME", "PUZZLE", "MET", "ME", "GO"] + let gridSize = 4 + let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() + + init() { + var chars = Array("WORDPUZZLEGAMETO").map { String($0) } + chars.shuffle() + _letters = State(initialValue: stride(from: 0, to: chars.count, by: gridSize).map { + Array(chars[$0..<$0+gridSize]) + }) + } + + var body: some View { + VStack { + Text("Time: \(remainingTime)s Score: \(score)") + .font(.headline) + + if isGameOver { + Text("Game Over!") + .font(.largeTitle) + .foregroundColor(.red) + } else { + VStack(spacing: 4) { + ForEach(0.. 0 { + remainingTime -= 1 + } else { + isGameOver = true + timer.upstream.connect().cancel() + } + } + } + + /// 点击选择 + private func handleSelect(row: Int, col: Int) { + if !selectedLetters.contains(where: { $0 == (row, col) }) { + selectedLetters.append((row, col)) + } + } + + /// 拖动选择 + private func selectLetter(at point: CGPoint?) { + guard let point = point else { return } + for row in 0.. = ["WORD", "HAVE", "SWIFT", "CODE"] // 示例字典 + private var wordList: [String] = [] + + init() { + loadWordList() + generateNewPuzzle() + } + + /// 加载本地字典 + private func loadWordList() { + if let url = Bundle.main.url(forResource: "wordlist", withExtension: "txt") { + do { + let content = try String(contentsOf: url) + wordList = content + .components(separatedBy: .newlines) + .map { $0.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() } + .filter { !$0.isEmpty } + } catch { + logger.warning("Failed to load word list: \(error)") + } + } else { + logger.warning("wordlist.txt not found!") + } + logger.info("load wordlist. total words: \(wordList.count)") + } + + /// 生成新的题目 + func generateNewPuzzle() { + if wordList.isEmpty { + logger.warning("Word list is empty") + wordList = ["WORD", "HAVE", "SWIFT", "CODE"] // 给个示例的 + } + + var chosenWords: Set = [] + var uniqueLetters: Set = [] + + while (uniqueLetters.count < 16 && chosenWords.count < 6) || chosenWords.count < 4 { + if let word = wordList.randomElement() { + chosenWords.insert(word) + uniqueLetters.formUnion(word) + } + } + + allWords = chosenWords + + // 确保 uniqueLetters ≥ 16 + var selectedLetters = Array(uniqueLetters) + let alphabet = Array("ABCDEFGHIJKLMNOPQRSTUVWXYZ") + + while selectedLetters.count < 16 { + let randomLetter = alphabet.randomElement()! + if !selectedLetters.contains(randomLetter) { + selectedLetters.append(randomLetter) + } + } + + // 打乱 + let shuffledLetters = selectedLetters.shuffled() + + letters = Array(repeating: Array(repeating: "", count: 4), count: 4) + for i in 0..<4 { + for j in 0..<4 { + letters[i][j] = String(shuffledLetters[i * 4 + j]) + } + } + + guessedWords = 0 + selectedPositions.removeAll() + timeRemaining = 60 + //shuffleCount = 0 + + logger.info("New puzzle generated with words: \(allWords) and letters: \(shuffledLetters)") + } + + func startTimer() { + stopTimer() + timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { _ in + if self.timeRemaining > 0 { + self.timeRemaining -= 1 + } else { + self.stopTimer() + } + } + } + + func stopTimer() { + timer?.invalidate() + timer = nil + } + + func submit() { + let word = selectedWord().uppercased() + selectedPositions.removeAll() + + guard !word.isEmpty else { return } + + if timeRemaining <= 0 { + showToast(message: "Time's up!", succ: false) + return + } + + if allWords.contains(word) { + guessedWords += 1 + showToast(message: "Correct!", succ: true) + } else { + showToast(message: "Please try again", succ: false) + } + + if guessedWords >= 4 { + //stopTimer() + dailyWins += 1 + showToast(message: "Congratulations! \nStart next puzzle...", succ: true) + generateNewPuzzle() // 新开一局 + } + } + + func shuffle() { + if shuffleCount >= 10 { + showToast(message: "No more shuffles today", succ: false) + return + } + + shuffleCount += 1 + generateNewPuzzle() + } + + private func selectedWord() -> String { + var result = "" + for pos in selectedPositions { + result += letters[pos.row][pos.col] + } + return result + } + + private func showToast(message: String, succ: Bool) { + toastMessage = message + toastFlag = succ + showToast = true + DispatchQueue.main.asyncAfter(deadline: .now() + 3) { + self.showToast = false + } + } +} + +struct WordPuzzleView_Previews: PreviewProvider { + static var previews: some View { + WordPuzzleView() + } +} + +#Preview { + WordPuzzleView() +} diff --git a/AIGrammar/wordlist.txt b/AIGrammar/wordlist.txt new file mode 100644 index 0000000..a126d8b --- /dev/null +++ b/AIGrammar/wordlist.txt @@ -0,0 +1,2868 @@ +bear +behind +income +rubs +next +tea +chips +pea +noisy +exploding +version +knives +bowl +gravity +dances +chip +fresh +weapon +girls +until +blacks +admits +cans +sixth +pants +sprint +networks +hungry +scream +tour +come +backs +weighs +pets +country +help +petrols +kids +tank +holding +body +picture +fires +denial +risk +brings +absolute +mosque +mango +dates +hyper +climbed +runs +banker +various +shortage +ran +unit +their +drag +glucose +deck +unlocked +plain +trip +searching +texas +both +taxi +hanger +deny +hangers +outline +rings +wear +fails +grade +blocked +knob +tuck +struck +gains +mouths +backed +wolf +moist +years +mist +breath +airbus +delay +weird +turbines +culprit +includes +adopts +famous +stove +late +style +ocean +bronze +thief +via +cyprus +aims +runway +ivy +turns +port +yes +triple +track +anytime +drug +fuck +vodka +dries +per +barn +long +from +picked +bad +submit +key +beyond +courage +consume +cough +dock +peak +impacts +half +working +lucky +hardest +mister +whole +piano +aid +ruin +amongst +euros +calming +interval +nurse +sec +theirs +wolves +split +blue +run +scheduling +antics +flats +board +crew +methods +caring +medical +amid +won +guitar +home +naked +object +justify +blink +grin +tend +trips +consumed +twins +opt +low +quietly +big +self +pour +swear +say +arose +result +face +champion +machines +honey +objects +listed +axe +chews +song +zip +burned +neighbours +documents +noticed +company +thinks +unclear +rise +flower +pause +lock +bud +article +badly +duty +industry +bench +cents +fake +chart +pine +acted +hints +shit +maths +donuts +lines +bay +clubs +prime +ink +morality +rights +rainbows +shaping +file +video +legs +education +grip +hopes +markets +mixes +poverty +stop +site +loving +eat +profile +move +shadow +tide +gulf +lower +mayor +cupboards +novel +figure +foreign +pan +mixed +shout +stair +agency +sent +asked +goat +puts +novels +lunch +combine +soul +strange +olympics +many +peanuts +sand +golf +dove +tag +carb +seminar +rage +birds +pairs +coming +flash +tropical +empathy +amp +periods +daisy +grows +cap +ride +wax +organizes +rely +curtain +candle +cure +cops +modeling +joke +drowsy +vibrant +finest +deals +juice +blame +lay +gifts +spreading +range +gain +best +given +ate +cub +metaphor +fatigue +owing +factors +goal +host +fine +trouble +grasp +numb +very +modest +son +waving +tails +producing +love +length +bishop +jar +laser +sunblock +films +and +bent +improve +proves +wish +details +jack +growth +trying +mix +head +boy +walker +lungs +drains +toy +works +pick +leap +boxing +input +lifts +hey +crimes +wins +party +adores +normal +magic +plates +background +ready +drugs +enjoys +cow +one +pounds +myself +bounced +ape +plus +numbers +jet +world +easy +guidance +bulk +use +crayon +raise +races +judgment +regulation +sofa +fruit +nuclear +brains +upload +formula +park +pigs +idol +slice +brush +filter +molds +durable +subway +rich +pie +cabin +symbol +favor +update +cake +aim +square +art +solve +idea +zone +favourite +jobs +stick +lake +snap +taps +type +democrat +gaps +limb +shield +olives +metals +units +gasoline +riot +amounts +diet +plunge +display +hot +certain +venus +medal +lounge +scuba +cute +man +qualify +notices +wheat +bare +poked +praise +heavy +sad +frog +clean +streaming +argue +stroke +routines +smile +dam +cinema +thumb +oil +begun +lying +crept +wonderful +debt +blueprint +strain +only +neighbour +into +creating +bets +urban +white +bucket +menu +train +praying +nail +closed +muscle +spit +parent +owe +view +fixed +amen +mineral +washed +candy +may +owes +cable +around +pages +search +new +cares +wild +bags +stand +mouth +hero +load +legacy +toe +aids +fights +false +joint +bold +forty +few +learns +washing +punish +lunches +sat +cuts +tricks +warn +hearts +gays +wise +leading +launch +sunk +loads +while +know +outrage +bridges +grapes +ache +flesh +mugs +club +routine +scrub +urges +therapy +marketing +timely +copyrights +south +taxes +combined +hate +quite +hackers +personal +spray +coins +daughters +gold +bras +kind +literacy +coats +placing +blames +bias +castle +fighter +atom +paid +tried +diagnose +voices +drown +solar +stone +calorie +safer +chorus +busy +neutral +beam +old +signal +grains +begins +stared +waters +weapons +kindest +punk +each +dreams +wake +slot +faiths +mothers +pig +held +claims +might +think +beans +why +roughly +heart +spread +flight +public +hugs +wiser +ear +forgive +jeans +county +bond +graphic +rating +worst +obtained +talked +jail +eric +silk +tubes +woke +tone +pity +carbon +pack +charm +broke +crows +absent +enjoy +write +grays +grace +patio +stock +nights +question +palms +authors +flavor +private +calories +branch +crow +wanted +hired +acid +part +plea +put +skeptical +trends +audible +nice +bands +whale +leaf +awe +ankle +fork +lend +failure +rough +story +equality +early +point +bars +gram +tray +labor +towels +lung +royal +owner +wait +stadium +lifted +scent +weight +complaints +yours +forest +donut +guys +nap +coldest +tidy +phones +main +father +bag +rocks +adults +task +enough +thanks +rail +driven +duration +ego +sung +safely +cures +fox +behaviour +brunch +dynamic +computers +young +hardly +land +gay +liar +travel +others +played +problem +source +society +silver +climbs +forgives +dirty +cause +pen +touch +spine +drop +step +spicy +mud +bye +securing +era +notes +blend +top +broad +blouse +gear +hour +funds +method +trained +complaint +ands +means +chairs +last +thin +earth +barely +counted +junk +yard +vans +phase +moneys +due +soda +glory +timer +litre +boundaries +admit +glue +reds +swim +amusing +strip +gray +smog +weak +trial +must +flu +lights +watches +base +cared +fraud +boxes +varies +gently +ugh +workplace +exploit +lengths +blazer +lose +your +changed +toward +widely +red +judge +gone +crime +sip +code +microwave +clip +unable +quality +pale +about +moves +adore +physical +injury +fortune +once +zeros +funs +loan +favorite +money +list +fold +posting +sugar +tired +beds +sought +breakdown +rockets +somewhat +unlike +vegan +intro +act +safe +hours +refunds +bacon +quote +faced +holy +counter +birthdays +dry +reaching +doubts +lovers +theory +caused +author +iron +raw +proud +toys +hand +ins +bed +worked +movie +vital +map +hurt +someday +paused +neat +flaw +bake +sardine +marvel +take +marks +chase +teams +careful +cube +universal +fat +round +tables +chemistry +chaos +older +craft +bird +plot +arguments +biased +projects +cashew +stable +crashed +worsen +previous +scout +acute +island +folk +duvet +mice +spice +ish +worship +gather +her +ugly +but +honesty +rob +journalist +major +pausing +computer +walk +vampire +lip +mental +spent +stir +importance +should +echo +stuck +graph +changes +those +branches +journalism +rules +army +poetry +argues +younger +sexy +minute +juices +chords +wealth +advise +survey +belongs +promise +subtle +cafe +master +fireman +employs +compare +link +hat +slept +boat +float +suited +paint +platforms +ones +tops +valid +waiter +fruits +east +tears +roles +eight +planet +pulse +fault +competing +virtue +bark +north +united +slim +bro +surf +wash +cleans +spain +panic +break +guides +briefly +brown +sport +takes +cups +copying +voltage +wipes +seat +yogurt +anime +minutes +adjust +truly +hung +stain +moving +frank +junior +safety +jaw +maps +clothes +depict +patch +facts +organise +rainbow +flowers +explain +along +gun +mistake +birth +thing +broken +names +actions +friendly +learnt +podium +policy +dangers +argued +oaks +coal +wives +claw +forecast +wagon +oak +nature +woman +notice +smoke +horse +wider +import +true +chop +with +packet +hen +monkeys +breaking +shock +sex +this +fucking +silent +aged +open +provide +anti +oils +fourth +thousand +bagel +human +machinery +lanes +rows +his +bonds +platform +taken +dispatch +rain +alongside +exams +section +brownie +province +organic +exist +gracious +ends +ibuprofen +awful +react +grab +angels +change +poker +jab +oven +zebra +core +equator +inform +third +pork +make +comedy +west +flies +news +organized +foul +largest +read +faculty +rate +tackle +nacho +grow +ale +holds +grateful +laugh +stolen +painted +smiled +repay +nope +bend +shark +talk +previously +tracking +guy +inspector +petrol +pains +operas +quoted +saucer +note +colds +shore +tampons +could +grape +favorites +gif +coin +reads +crying +noise +directs +girl +direct +shot +liquor +tires +bright +counties +nest +dating +behaving +loved +fries +under +frowns +gives +doubt +rule +strong +fans +respond +loser +scramble +hyperlink +apes +powder +uniform +beg +using +rub +fog +blank +fired +volume +wars +purchase +group +orbit +math +impact +sum +slang +during +terminal +reply +formed +monthly +sign +sun +tie +kilograms +mask +bridge +proteins +luv +drives +sale +dip +special +lot +ring +shouted +faith +fail +fast +charge +stupid +advice +voice +ears +basic +project +destroying +net +cold +cling +crops +mint +saw +empty +yield +liberty +wonders +fly +alone +surgeon +purely +cats +diplomacy +nightmare +amount +blow +scale +donkey +whiteboard +fathers +steroid +angle +fix +media +our +granted +coughed +lemon +thread +lamps +had +punch +radio +active +yet +regions +yup +player +bid +burn +crayons +void +sigh +opens +youths +joined +traveling +shovel +jade +peas +pin +pandemic +easily +combat +sync +firm +charity +okays +lion +servant +shelf +bean +race +dot +laundry +winds +domestic +jacket +ketchup +hang +second +brain +sir +dim +reaction +holiday +pardon +berlin +stayed +rapidly +bump +relation +disrupt +guide +relaxing +buyer +taking +holes +frame +informed +sink +cry +hydrogen +brake +days +fund +undo +first +tape +mop +panel +bus +met +comes +brownies +show +meats +drain +tough +posted +century +argument +creation +copy +mobile +racism +flavors +grave +drip +hospital +edit +them +saying +forum +chap +cut +short +bit +adopt +bike +pro +introduces +moisture +course +hopeful +humble +name +alert +steam +bikes +uncles +found +taco +below +rained +laughter +hats +answer +right +oranges +bow +stomach +hire +sight +skate +court +trick +storm +driveway +fabric +polite +directly +share +threw +print +bound +born +stream +confirms +jog +pours +phrase +lead +teaching +countries +game +slide +lives +ducks +threads +chest +todays +spinach +boring +info +rank +touched +boyfriend +brakes +tongues +pot +pushing +worlds +rat +rope +fetch +factories +chains +racing +lets +cab +category +urgent +being +burst +neighbor +acting +maybe +tied +towards +dear +exhaust +dog +figures +peanut +sea +shared +blocking +what +ask +honest +screw +guns +hostile +shaking +compares +grey +alike +push +teach +car +imply +finds +parties +get +life +covers +navy +inch +publish +lawyers +deal +amuse +lean +singer +moved +harmful +rash +games +goes +for +are +parents +nerd +breaks +bears +place +ham +gift +extras +poem +chef +hers +jails +pictures +certainly +charming +send +above +she +such +yoga +signature +romantic +exit +pride +yoghurt +shame +brought +snack +companies +joys +cloth +froze +want +plants +rushed +mark +playground +romance +swag +yourself +mad +bots +homes +lace +laws +blunt +fit +store +skip +wears +camping +wet +flag +lemons +cage +slam +dealing +baker +topics +guilty +hold +tear +budgets +lap +bra +lacking +columns +articles +joked +reach +claimed +outside +drew +bits +squad +faster +nod +actor +jars +stamp +patrol +porcelain +something +try +points +uncle +scared +ideas +pink +cabinet +yeah +chefs +budget +flour +wines +coast +grams +models +left +fashion +after +republic +pearl +hoping +wonder +hated +disc +chief +hinted +user +flags +taxies +frozen +blast +now +equal +cheap +youth +adult +sew +idle +elbow +alter +torch +softer +plumber +ship +majority +reacts +profit +drum +harm +item +observing +back +values +microwaves +shade +sponge +eats +organised +bite +joy +chat +dirt +entry +hit +mobiles +rest +yields +walks +handles +children +flick +tale +prices +wrap +kitchens +sandwich +debts +able +angel +organize +cost +consider +tail +authorized +shift +owned +injured +size +gym +black +jets +mount +hatred +than +upset +envy +lid +spin +dug +longer +plant +tax +sock +icons +grid +export +turn +fades +wave +sort +copies +crowds +jumping +ground +earn +album +educator +banks +senior +rides +turned +daily +cave +diary +sure +makes +soup +loud +coding +loves +ten +freaking +measuring +vet +skirt +hates +oxygen +kindly +fish +swing +mangos +clues +miles +arch +produces +ought +pound +power +bought +value +shape +mother +light +shrug +learn +draw +soy +gravy +said +rains +discover +laughs +machine +spoiled +phone +olive +subject +police +folks +imports +crap +default +model +hacking +lie +smoking +card +spend +climate +sailor +genius +tapes +drive +sap +sample +bath +forces +failed +dump +icon +frown +kinda +vote +herb +soft +productive +male +shirt +keyboard +lived +just +other +ways +tides +lips +wound +trash +ethics +exactly +aunt +acts +gate +drought +painful +drank +losing +hurts +image +cope +okay +ton +slid +terms +factor +law +discount +instead +showed +saved +thus +stumbled +chapter +drinks +fridge +picks +pain +steady +cries +stark +pencil +builds +bank +fats +secondary +owners +sing +fairly +hears +wit +brushed +talking +clear +den +chats +chose +case +sliced +sewn +medic +hike +hires +cast +naughty +poultry +gap +tech +like +number +balcony +chairmen +belts +meant +urgency +curtail +flame +bounce +creams +sick +hug +anger +wing +customer +ant +beach +tries +shotgun +slip +orange +hands +guard +near +comparing +rock +lime +hits +path +videos +way +mis +mind +string +fight +wasp +buying +hair +views +alive +planets +journey +jackets +cried +equals +rid +reason +lays +vibe +injects +count +great +baking +desk +plans +garlic +child +verb +honestly +document +claim +told +purse +habit +thick +expand +wife +far +hockey +work +four +rates +readily +owl +loudest +mile +crowd +tsunami +zit +ages +air +dumpling +complained +poet +rush +lover +yawn +friend +end +random +parts +drums +seal +farms +draws +lends +coat +leaps +paying +strike +journal +improved +joins +invest +thank +trials +crab +protein +retail +playing +time +van +pet +among +caught +central +you +score +soap +how +gifted +laid +closet +dawn +dare +places +alright +promised +fair +gum +debit +least +cuz +manifest +avoid +begin +deploy +huge +city +reign +sober +tips +comb +sidewalk +mainly +products +audio +gaze +line +quickly +bunch +confirmed +kilo +taxis +watched +copyright +shy +agent +tower +gas +justice +browse +men +minor +hunger +doing +nor +history +prove +also +puberty +spring +delays +rap +bun +jumper +congrats +yards +sauce +greatly +prizes +punishable +welcoming +penalty +algorithm +milk +worn +sketch +social +sharpie +blade +payment +franchise +french +nearly +tap +bang +ants +hear +plenty +obtain +wrote +monkey +the +rave +relating +family +jean +chalk +glamour +bet +kidney +fields +things +coughs +war +violent +dash +verbs +drunk +fled +spot +formal +arms +kilogram +jealous +actors +itself +laughed +script +rose +hangs +waves +tons +waited +two +slow +jumped +anxiety +flows +fought +waits +birthday +made +cousin +times +closure +lent +chin +typing +dance +glove +gained +algorithms +parks +employ +dogs +foreman +relations +mute +oldest +straw +blanket +more +fed +flours +confuse +block +aches +aunts +reality +bone +star +alps +raids +counsel +blankets +towns +phoned +page +sound +mates +kept +knife +raged +sit +nut +stay +led +leg +precious +resign +jumps +idly +lawyer +valued +god +market +bored +spam +grief +watch +listen +went +switch +kitchen +index +incomes +buts +stapler +priest +route +role +turmoil +grant +writes +himself +vowel +own +verbal +credit +freshman +sweat +tailor +save +shed +serving +guards +snake +brave +fluid +then +climb +quiet +virus +month +zero +powers +months +paths +camp +toes +cash +baked +kudos +aside +planes +louder +king +guest +lump +some +nails +tune +surely +soak +built +jam +clue +ago +front +chain +rode +bread +quotes +moral +faces +bugs +leak +delight +mild +destroy +leaving +lord +box +plays +mouse +sake +gave +signed +trains +routes +lighter +hop +fuel +pubs +flow +tragic +cards +wisdom +insect +couples +guilt +belong +waste +lane +quicker +have +mislead +forgets +dispute +bolts +shoulder +brutal +trades +helping +vegas +wrong +simply +fate +walking +same +post +privacy +pies +lacks +deposit +docs +buys +join +problems +him +cafes +grain +forced +shower +shave +soil +action +detail +bacons +sin +beats +hearing +hotel +behaviors +plate +fan +got +mars +provides +lens +bail +rounds +cent +tongue +permit +unite +distance +stack +down +dean +thunder +daylight +friends +has +most +virtual +was +powerful +vinegar +produce +whiskey +tuna +rice +melody +thumbs +wrist +courtesy +bring +nervous +steak +dark +gods +saving +veins +towers +hysteria +tip +heard +turkey +film +whites +usage +wished +portland +named +double +day +tunes +tends +danger +dusk +later +introduce +helps +whats +throws +large +hotels +snow +bat +placed +calf +trucks +nuts +dolphin +calm +lesbian +plane +poster +upgrade +cup +chimney +knew +womans +row +pure +since +ours +remain +painter +dopamine +bricks +mean +jealousy +pint +rugby +organs +nachos +discovery +chore +pay +mug +band +shown +whisky +plan +convert +anxious +buy +indulge +play +relax +votes +fact +trams +reading +duties +shocked +ideal +water +close +job +arm +hid +divorce +movies +charts +trace +gets +porch +brick +smart +pandemics +bar +burns +fines +stance +slavery +metal +beat +out +extra +its +lands +ghost +nightmares +jury +raid +warned +notepad +verify +holidays +table +lab +five +knows +beauty +neck +boil +humans +let +team +heat +torn +reacting +informs +complain +locking +menus +logic +throw +often +client +they +loans +care +speak +clouds +colder +product +raised +golds +wind +explains +joints +sky +build +kid +freight +does +youngest +pitch +hole +blown +triumph +nasty +match +lamp +amused +limbs +husband +earns +mustard +james +carpet +sixty +fur +farm +dialog +ski +ouch +form +corn +pans +tracks +drying +behavior +abuse +suit +dig +confirm +rude +clause +housing +goals +curtains +syrup +wages +visual +speaking +juicy +single +find +types +blocks +glad +walked +pilot +another +bug +elbows +exhaustion +whom +rapid +grown +closing +tiny +eating +pal +real +six +solved +steal +wire +crash +flat +handle +ads +salmon +thanked +dorm +forums +cupboard +verdict +wipe +luck +custom +globe +pair +slave +today +prides +mats +trade +predict +pun +marked +daughter +quickest +boundary +kinds +drawing +forbid +music +finger +compared +updates +delta +native +hoped +confused +rent +dish +drove +policeman +lakes +bled +leads +capture +blues +syntax +cars +tragedy +liter +porn +hip +death +arts +women +irony +variety +busier +woken +covering +frighten +kite +amplify +jukebox +tequila +exits +pic +casino +over +pastry +not +sacred +word +charges +throwing +cat +roads +overnight +give +motive +sold +solid +wide +mate +breast +prize +fried +forks +bones +simple +jump +space +past +garden +pays +mat +thankful +touches +worth +dozen +town +inputs +proved +tours +warm +shut +jams +pinch +counts +cruise +players +grants +gloves +fixes +dancer +behalf +daytime +scary +glance +tiger +grand +factory +cream +brief +polish +super +plumbers +china +march +grades +winter +cloud +fear +nose +began +likes +wants +humor +pencils +sole +angry +crazy +towel +security +platinum +pocket +night +can +payments +stare +fingers +softly +lies +wok +bodies +web +ice +tire +belt +chair +period +focus +organ +damp +quick +worse +oval +network +used +carpets +hard +unpack +complex +shrink +insert +dragon +evil +when +scan +done +couple +boys +lamb +shoe +judges +price +dough +fancy +who +typical +forms +fun +grew +mature +candies +melt +cashier +salt +forget +breathing +consumer +ignore +rocking +topic +troubles +exact +cover +log +software +any +keys +lazy +fiber +desktop +angrily +strap +hope +region +exam +bin +fridges +parsley +scarlet +year +neighbors +replying +drink +strongly +focusing +harmony +glow +stage +fire +duck +remind +scarf +win +matches +pace +induce +relying +retains +groups +liked +images +much +truck +minds +house +dream +cheat +acquire +lady +drops +side +neatly +final +swap +design +term +suck +scope +heading +campus +dangerous +bush +asking +upon +wage +jokes +blind +whose +ted +shake +basket +hairs +lost +force +pens +twice +fears +pub +cows +prison +trend +cabs +hint +surface +road +clothing +fare +person +watching +swept +lowest +came +rocket +modern +bride +include +meat +improves +joking +finals +denim +age +toxic +labour +owns +brand +items +charged +shop +climates +spider +almost +hut +fir +sitcom +stew +plastic +mostly +having +skin +would +busily +parking +glamor +beard +bother +ban +study +wealthy +fry +urge +cola +complains +wine +sharp +heads +based +ties +metro +warns +lift +gyms +pad +disturb +grounds +ownership +meals +intake +live +meal +aunty +date +words +gospel +rebuild +surge +field diff --git a/Resource/wordlist.txt b/Resource/wordlist.txt new file mode 100644 index 0000000..9b8f7c4 --- /dev/null +++ b/Resource/wordlist.txt @@ -0,0 +1,98 @@ +WORD +GAME +FUN +PLAY +SWIFT +CODE +TASK +JUMP +CLIMB +BRAVE +CHART +INDEX +QUICK +WORLD +FRESH +PLANT +LIGHT +MOUNT +BRISK +CLEAN +GLOVE +THINK +WASTE +PRIZE +SHINE +VEX +CROWN +BLAZE +SHOUT +FLOCK +PRINT +GLARE +CRISP +DREAM +VOLT +BRING +MATCH +DANCE +PLUCK +GRAND +FLAME +STONE +TRICK +WHILE +BROAD +MARCH +CLEFT +SHARP +GRIND +VOICE +WIND +SPLIT +JOKER +TRAMP +BLANK +CRANE +SPARK +FLOAT +THIRD +GHOST +TWICE +FLOUR +COVET +BLUSH +JUMPY +HOVER +PRANK +STORM +FLOCK +NIGHT +GRACE +FRONT +CLEFT +BLOWN +PRINT +VOUCH +FRESH +CHIME +DWARF +SLICK +HUMAN +GLOVE +THUMP +BLACK +FLICK +CRUSH +SPEND +BRINK +LUNCH +MOUTH +GRASP +THIRD +SPARK +TWIRL +QUICK +PLANT +FIGHT +CRISP \ No newline at end of file