mirror of
https://github.com/firewalkwithm3/Sensor-Watch.git
synced 2024-11-22 19:20:30 +08:00
bug fix on max score
This commit is contained in:
parent
6dd46b46b1
commit
1675af6449
|
@ -33,45 +33,45 @@
|
||||||
static const char _valid_letters[] = {'A', 'C', 'E', 'I', 'L', 'N', 'O', 'P', 'R', 'S'};
|
static const char _valid_letters[] = {'A', 'C', 'E', 'I', 'L', 'N', 'O', 'P', 'R', 'S'};
|
||||||
|
|
||||||
// From: https://gist.github.com/shmookey/b28e342e1b1756c4700f42f17102c2ff
|
// From: https://gist.github.com/shmookey/b28e342e1b1756c4700f42f17102c2ff
|
||||||
// Number of words found: 283
|
// Number of words found: 282
|
||||||
static const char _legal_words[][WORDLE_LENGTH + 1] = {
|
static const char _legal_words[][WORDLE_LENGTH + 1] = {
|
||||||
"PROSE", "SLOPE", "CLAPS", "CAIRN", "PLANE", "SPACE", "ARISE", "NEARS", "OPERA",
|
"CRISP", "SALSA", "PRESS", "LIONS", "SPIRE", "CAPES", "ROLLS", "LOOSE", "ALOES",
|
||||||
"EPICS", "LAIRS", "AISLE", "APRON", "SCRIP", "CARES", "PERIL", "PILES", "CLEAN",
|
"COPSE", "ENROL", "SLOPE", "CAPER", "SCORE", "SLAPS", "PLEAS", "CANOE", "REAPS",
|
||||||
"CLANS", "CANOE", "COALS", "RELIC", "CRANE", "SLICE", "RESIN", "NAILS", "LIARS",
|
"PEASE", "SLEEP", "LEAPS", "CORAL", "PILLS", "LOCAL", "ARENA", "PROSE", "SALES",
|
||||||
"RISEN", "COILS", "RINSE", "PRIES", "PLEAS", "CAPON", "PARSE", "ROLES", "SPICE",
|
"OPENS", "REPEL", "REALS", "COLIC", "APRON", "LOINS", "COINS", "LASSO", "SIREN",
|
||||||
"CORAL", "LEARN", "SNIPE", "CAPER", "SIREN", "CORES", "CRAPE", "SPOIL", "EARNS",
|
"SCARS", "RISER", "CRIES", "CRESS", "POSES", "NEARS", "CAIRN", "PARSE", "SCENE",
|
||||||
"LANES", "PEALS", "RAINS", "ACRES", "SINCE", "LACES", "ROPES", "CLEAR", "PANIC",
|
"SCOOP", "SPINS", "CORNS", "NOSES", "CLEAR", "LANES", "LOSES", "PIERS", "SLAIN",
|
||||||
"SCALE", "SANER", "CLOSE", "LINER", "CORNS", "SPINE", "SCARE", "ACORN", "PLANS",
|
"ROPES", "ALIEN", "LINER", "PRIES", "PROPS", "CRANE", "SCARE", "PEONS", "POLLS",
|
||||||
"POSER", "SCORN", "AROSE", "LINES", "LIONS", "OCEAN", "SNAIL", "OSIER", "SCOPE",
|
"LINEN", "SLIPS", "CAROL", "PEEPS", "SPANS", "ARISE", "POLES", "SCRAP", "OASIS",
|
||||||
"OPINE", "REINS", "COINS", "LOSER", "PANES", "RAISE", "RAILS", "ALIEN", "PLAIN",
|
"PAPAS", "PAINS", "SPOOL", "RELIC", "ALONE", "SLOPS", "PIANO", "PERIL", "SPICE",
|
||||||
"SNARE", "LOANS", "IRONS", "COPRA", "PLIES", "COPSE", "PEARS", "PALER", "SLAIN",
|
"SPIES", "SPORE", "CLEAN", "SOLOS", "CREEP", "NONCE", "POISE", "COALS", "LEASE",
|
||||||
"LAPSE", "CONES", "ARSON", "POISE", "OPENS", "SPORE", "CAROL", "PACES", "LEAPS",
|
"SEALS", "COILS", "PILES", "RARES", "APPAL", "OASES", "RINSE", "POPES", "CONIC",
|
||||||
"ALONE", "ASPEN", "SNORE", "CRIES", "OPALS", "PENAL", "PAINS", "ENROL", "POLAR",
|
"SLICE", "SPACE", "ACRES", "ACORN", "ROLES", "CASES", "RESIN", "CREPE", "SOILS",
|
||||||
"SPEAR", "SCION", "POLES", "SCORE", "LEANS", "PEONS", "ROSIN", "REAPS", "SOLAR",
|
"PANEL", "SNEER", "INANE", "SCANS", "APACE", "EASEL", "CORES", "SOLAR", "PALES",
|
||||||
"EARLS", "PENIS", "PRICE", "REALS", "SCALP", "CLASP", "NOISE", "PANEL", "NICER",
|
"SCOPE", "SCRIP", "LOANS", "ASSES", "EARNS", "CANON", "PLAIN", "POPPA", "SPOIL",
|
||||||
"CRISP", "SPARE", "PEARL", "CORPS", "SALON", "RACES", "LOINS", "RIPEN", "PLACE",
|
"APPLE", "ROSIN", "PANIC", "RISES", "AISLE", "CAPON", "COLON", "CLANS", "IRONS",
|
||||||
"CRONE", "CANES", "LANCE", "LIENS", "ALOES", "PIANO", "PRONE", "PIERS", "SNARL",
|
"RISEN", "PAILS", "LEANS", "PRICE", "AREAS", "SPARE", "LEARN", "PANES", "PRIOR",
|
||||||
"AEONS", "PINES", "SPIRE", "PAILS", "CAPES", "CLIPS", "PALES", "CROPS", "PAIRS",
|
"CRAPE", "LINES", "LEPER", "SNAPS", "POOLS", "SIRES", "SNARE", "COCOA", "PALER",
|
||||||
"SCRAP", "PORES", "SALES", "COOLS", "SLOPS", "APACE", "CRIER", "ROLLS", "PIPES",
|
"CLOSE", "CRIER", "SANER", "PEARL", "CIRCA", "PAEAN", "RAISE", "SELLS", "OPINE",
|
||||||
"SLIPS", "EASES", "PEACE", "CELLS", "POLLS", "POPPA", "SPREE", "RILLS", "SPILL",
|
"CEASE", "CANES", "ONION", "REELS", "RIPER", "SPARS", "RIPEN", "EPICS", "PLIES",
|
||||||
"RIPER", "ONION", "ISLES", "CROSS", "PAPAS", "NOSES", "PAPAL", "SLEEP", "EERIE",
|
"CELLS", "SCALP", "ELOPE", "CANAL", "ROARS", "EASES", "OPERA", "SLOOP", "RARER",
|
||||||
"SEALS", "PAPER", "COLOR", "SORES", "SPELL", "SNAPS", "SEERS", "SPARS", "PIPER",
|
"LIENS", "CROPS", "LACES", "LAIRS", "AEONS", "SOLES", "SNIPE", "PIECE", "NOOSE",
|
||||||
"POSES", "LOOPS", "APPAL", "LOSES", "LINEN", "ROARS", "RARER", "NIECE", "LOCAL",
|
"NICER", "PENAL", "SILLS", "LANCE", "LOOPS", "SNORE", "PACES", "PLACE", "SPILL",
|
||||||
"NONCE", "CREEP", "SCARS", "SPOOR", "PEASE", "SIRES", "PRESS", "CLASS", "PAEAN",
|
"PAIRS", "ARSON", "LAPSE", "CLASS", "EERIE", "PEERS", "PLANS", "LOONS", "SPOON",
|
||||||
"SPOOL", "LOOSE", "CRASS", "LILAC", "COLIC", "RACER", "CREPE", "NASAL", "SOLOS",
|
"POSER", "SEERS", "REARS", "ROSES", "INNER", "NASAL", "OCEAN", "OPALS", "ALIAS",
|
||||||
"ROSES", "COLON", "REPEL", "ASSES", "INANE", "SCENE", "SLAPS", "PEEPS", "LAPEL",
|
"RACES", "ERASE", "SPINE", "SAILS", "CACAO", "CLASP", "REINS", "PAPER", "PIPER",
|
||||||
"PIECE", "LEPER", "REELS", "INNER", "PROPS", "SILLS", "LEASE", "SOLES", "CIRCA",
|
"EARLS", "PINES", "POLAR", "SNARL", "SCALE", "SPEAR", "SCION", "CRONE", "PRONE",
|
||||||
"CRESS", "SCANS", "SPOON", "REARS", "CACAO", "ERASE", "CANON", "SOARS", "SLOOP",
|
"SCORN", "RACER", "LILAC", "AROSE", "ISLES", "LAPEL", "PLANE", "PEARS", "POSSE",
|
||||||
"AREAS", "SPINS", "OASIS", "OASES", "POPES", "ELOPE", "CEASE", "CINCO", "APPLE",
|
"SORES", "PENCE", "CLAPS", "PESOS", "PENIS", "CALLS", "ASPEN", "COOLS", "CRASS",
|
||||||
"NOOSE", "PEERS", "SENSE", "POOLS", "RISER", "PENCE", "POSSE", "ALIAS", "PESOS",
|
"OSIER", "CARES", "PAPAL", "SOARS", "RILLS", "ERROR", "NAILS", "COPRA", "LOSER",
|
||||||
"SCOOP", "EASEL", "LOONS", "CONIC", "SPANS", "SPIES", "PRIOR", "SALSA", "SELLS",
|
"SPELL", "CONES", "PORES", "SNAIL", "CROSS", "NIECE", "COLOR", "SALON", "SINCE",
|
||||||
"PILLS", "RISES", "RARES", "SNEER", "SOILS", "ARENA", "CASES", "CANAL", "SAILS",
|
"CORPS", "LIARS", "PIPES", "RAINS", "SPREE", "CLIPS", "NOISE", "PEALS", "SPOOR",
|
||||||
"LASSO", "COCOA", "ERROR", "CALLS",
|
"SENSE", "PEACE", "RAILS",
|
||||||
#if (USE_EXPANDED_DICT != 1)
|
#if (USE_EXPANDED_DICT != 1)
|
||||||
};
|
};
|
||||||
// These are words that'll never be used, but still need to be in the dictionary for guesses.
|
// These are words that'll never be used, but still need to be in the dictionary for guesses.
|
||||||
// Top 100K most common words from Wiktionary https://gist.github.com/h3xx/1976236
|
// Top 100K most common words from Wiktionary https://gist.github.com/h3xx/1976236
|
||||||
// Number of words found: 469
|
// Number of words found: 470
|
||||||
static const char _expanded_words[][WORDLE_LENGTH + 1] = {
|
static const char _expanded_words[][WORDLE_LENGTH + 1] = {
|
||||||
#endif
|
#endif
|
||||||
#if (USE_EXPANDED_DICT != 0)
|
#if (USE_EXPANDED_DICT != 0)
|
||||||
|
@ -86,48 +86,48 @@ static const char _expanded_words[][WORDLE_LENGTH + 1] = {
|
||||||
"NELLA", "PAOLO", "SOLON", "REPAS", "NANCE", "PAINE", "SAISI", "ELISE", "CESAR",
|
"NELLA", "PAOLO", "SOLON", "REPAS", "NANCE", "PAINE", "SAISI", "ELISE", "CESAR",
|
||||||
"CANNA", "SALLE", "SINON", "SINAI", "LOIRE", "PENSA", "LEILA", "REISE", "ELLAS",
|
"CANNA", "SALLE", "SINON", "SINAI", "LOIRE", "PENSA", "LEILA", "REISE", "ELLAS",
|
||||||
"POORE", "EARLE", "CERCA", "LEISE", "POOLE", "AILES", "SANOA", "LEONE", "LILLE",
|
"POORE", "EARLE", "CERCA", "LEISE", "POOLE", "AILES", "SANOA", "LEONE", "LILLE",
|
||||||
"PROIE", "CARNE", "SPIEL", "CERES", "ENSIN", "ROLLO", "ARRAS", "SEIEN", "PRIER",
|
"PROIE", "CARNE", "SPIEL", "CERES", "ENSIN", "CINCO", "ROLLO", "ARRAS", "SEIEN",
|
||||||
"ANNAN", "CALLE", "LIISA", "SALIR", "LESSE", "LESEN", "LIIAN", "NEERE", "ARIEL",
|
"PRIER", "ANNAN", "CALLE", "LIISA", "SALIR", "LESSE", "LESEN", "LIIAN", "NEERE",
|
||||||
"PIENI", "PIERO", "ERANO", "ELENA", "SILLE", "NEALE", "SEENE", "ROLLE", "NELLE",
|
"ARIEL", "PIENI", "PIERO", "ERANO", "ELENA", "SILLE", "NEALE", "SEENE", "ROLLE",
|
||||||
"SOLLE", "ESSER", "PASAR", "PREIS", "ASIAN", "SENCE", "ANSON", "SERRA", "CONAN",
|
"NELLE", "SOLLE", "ESSER", "PASAR", "PREIS", "ASIAN", "SENCE", "ANSON", "SERRA",
|
||||||
"SERAS", "SIENA", "SOPRA", "RENEE", "ALINE", "CORSE", "ASSAI", "INSEL", "ROSIE",
|
"CONAN", "SERAS", "SIENA", "SOPRA", "RENEE", "ALINE", "CORSE", "ASSAI", "INSEL",
|
||||||
"SONIA", "APPEL", "CRISE", "CIRCE", "LINIE", "RENAN", "CAIRE", "COLLA", "SANOO",
|
"ROSIE", "SONIA", "APPEL", "CRISE", "CIRCE", "LINIE", "RENAN", "CAIRE", "COLLA",
|
||||||
"EENER", "ANCOR", "NEPAL", "REINO", "LAINE", "SOONE", "ALAIN", "LAPSI", "INCAS",
|
"SANOO", "EENER", "ANCOR", "NEPAL", "REINO", "LAINE", "SOONE", "ALAIN", "LAPSI",
|
||||||
"INNES", "CARON", "ROSEN", "CASAS", "NOLAN", "SERRE", "PESAR", "SEARS", "LEPIC",
|
"INCAS", "INNES", "CARON", "ROSEN", "CASAS", "NOLAN", "SERRE", "PESAR", "SEARS",
|
||||||
"LISLE", "LOSSE", "CINNA", "SERIE", "RIRES", "CORSO", "SOIRS", "CREER", "POCOS",
|
"LEPIC", "LISLE", "LOSSE", "CINNA", "SERIE", "RIRES", "CORSO", "SOIRS", "CREER",
|
||||||
"SIENS", "ARLES", "CROCE", "IONIC", "PONER", "ESSEN", "SANON", "CESSA", "SERIA",
|
"POCOS", "SIENS", "ARLES", "CROCE", "IONIC", "PONER", "ESSEN", "SANON", "CESSA",
|
||||||
"ALPES", "NINON", "LILLA", "AINOA", "CORPO", "LESER", "ILLIS", "ROPER", "ANNEE",
|
"SERIA", "ALPES", "NINON", "LILLA", "AINOA", "CORPO", "LESER", "ILLIS", "ROPER",
|
||||||
"PAIRE", "PEPIN", "ORIEL", "CANNE", "AIRES", "ARCIS", "EASIE", "ANNOS", "COLLE",
|
"ANNEE", "PAIRE", "PEPIN", "ORIEL", "CANNE", "AIRES", "ARCIS", "EASIE", "ANNOS",
|
||||||
"SELLE", "EILEN", "CAPRI", "ERICA", "ROCCO", "ARIAN", "CLEON", "ALLIE", "PONCE",
|
"COLLE", "SELLE", "EILEN", "CAPRI", "ERICA", "ROCCO", "ARIAN", "CLEON", "ALLIE",
|
||||||
"COPIE", "INNAN", "NOCES", "NAPPE", "CORNE", "ESIIN", "ENCOR", "LORNA", "SACRE",
|
"PONCE", "COPIE", "INNAN", "NOCES", "NAPPE", "CORNE", "ESIIN", "ENCOR", "LORNA",
|
||||||
"PAPEL", "SAILE", "SAEPE", "CREON", "LLENO", "ELISA", "PASSO", "ASILE", "LORCS",
|
"SACRE", "PAPEL", "SAILE", "SAEPE", "CREON", "LLENO", "ELISA", "PASSO", "ASILE",
|
||||||
"ASIAA", "SANIN", "ONNEN", "SONNA", "AILIE", "ALIIS", "ECOLE", "CREES", "PRESO",
|
"LORCS", "ASIAA", "SANIN", "ONNEN", "SONNA", "AILIE", "ALIIS", "ECOLE", "CREES",
|
||||||
"CLARO", "EARES", "ROSSI", "COREA", "SANAN", "AESOP", "SAPOR", "EISEN", "ACASO",
|
"PRESO", "CLARO", "EARES", "ROSSI", "COREA", "SANAN", "AESOP", "SAPOR", "EISEN",
|
||||||
"PARAS", "NANON", "LAPIS", "ARRAN", "CLLIA", "SACRA", "PRINS", "CENCI", "CLAES",
|
"ACASO", "PARAS", "NANON", "LAPIS", "ARRAN", "CLLIA", "SACRA", "PRINS", "CENCI",
|
||||||
"SLAAP", "ROLLA", "COLES", "LORNE", "OLELO", "CASSE", "NILES", "PASOS", "ESSAI",
|
"CLAES", "SLAAP", "ROLLA", "COLES", "LORNE", "OLELO", "CASSE", "NILES", "PASOS",
|
||||||
"ROSAS", "LLENA", "LEERE", "CLASE", "CALOR", "ROSSE", "ALLEE", "SOREL", "SANAA",
|
"ESSAI", "ROSAS", "LLENA", "LEERE", "CLASE", "CALOR", "ROSSE", "ALLEE", "SOREL",
|
||||||
"SLONE", "OLSEN", "OOREN", "PARER", "PASSI", "POSSA", "PLAIE", "OPERE", "SCAPE",
|
"SANAA", "SLONE", "OLSEN", "OOREN", "PARER", "PASSI", "POSSA", "PLAIE", "OPERE",
|
||||||
"POLEN", "RIPON", "SCALA", "AILLE", "PALOS", "CLAPP", "ESCAP", "ELLEI", "IONIA",
|
"SCAPE", "POLEN", "RIPON", "SCALA", "AILLE", "PALOS", "CLAPP", "ESCAP", "ELLEI",
|
||||||
"NICOL", "PAESE", "PERON", "ORSON", "INNEN", "AISNE", "RANCE", "SLAAN", "PAOLI",
|
"IONIA", "NICOL", "PAESE", "PERON", "ORSON", "INNEN", "AISNE", "RANCE", "SLAAN",
|
||||||
"COLLO", "ANNAS", "ERROL", "CLERC", "SAINE", "RAINA", "PRESE", "PARIA", "PERLE",
|
"PAOLI", "COLLO", "ANNAS", "ERROL", "CLERC", "SAINE", "RAINA", "PRESE", "PARIA",
|
||||||
"RECAL", "SINAE", "PESER", "OISIN", "PLENA", "CARLE", "PERES", "SACAR", "ALPEN",
|
"PERLE", "RECAL", "SINAE", "PESER", "OISIN", "PLENA", "CARLE", "PERES", "SACAR",
|
||||||
"CORRE", "ACCES", "RILLA", "ANNAL", "PERSE", "SAALE", "PERRO", "AILSA", "POCAS",
|
"ALPEN", "CORRE", "ACCES", "RILLA", "ANNAL", "PERSE", "SAALE", "PERRO", "AILSA",
|
||||||
"SOLEN", "PLASE", "SOLIS", "PAPPI", "COPIA", "ARIES", "ROCCA", "ALIOS", "ROCAS",
|
"POCAS", "SOLEN", "PLASE", "SOLIS", "PAPPI", "COPIA", "ARIES", "ROCCA", "ALIOS",
|
||||||
"PELOS", "NEPOS", "COLPA", "ISORA", "LECON", "SOANE", "SNELL", "ILLOS", "PILAR",
|
"ROCAS", "PELOS", "NEPOS", "COLPA", "ISORA", "LECON", "SOANE", "SNELL", "ILLOS",
|
||||||
"ECLAC", "PRESA", "SILLA", "NIELS", "LIPPO", "CROLL", "PONEN", "POSEE", "PIPPA",
|
"PILAR", "ECLAC", "PRESA", "SILLA", "NIELS", "LIPPO", "CROLL", "PONEN", "POSEE",
|
||||||
"ILLAN", "CENIS", "SANNA", "RASSI", "CERRO", "SCENA", "CASOS", "COLPO", "POSSO",
|
"PIPPA", "ILLAN", "CENIS", "SANNA", "RASSI", "CERRO", "SCENA", "CASOS", "COLPO",
|
||||||
"POSEN", "EINAR", "ISLAS", "IPSIS", "SALEN", "ASIEN", "CREAN", "LENIN", "LOCIS",
|
"POSSO", "POSEN", "EINAR", "ISLAS", "IPSIS", "SALEN", "ASIEN", "CREAN", "LENIN",
|
||||||
"NENNE", "ILION", "NARES", "ONNEA", "PALAA", "PIPPO", "POLIS", "RICOS", "ELSON",
|
"LOCIS", "NENNE", "ILION", "NARES", "ONNEA", "PALAA", "PIPPO", "POLIS", "RICOS",
|
||||||
"SNOOP", "ANNIS", "PROPE", "ELLIE", "ERNIE", "PLIER", "SERES", "REINA", "LIPPE",
|
"ELSON", "SNOOP", "ANNIS", "PROPE", "ELLIE", "ERNIE", "PLIER", "SERES", "REINA",
|
||||||
"OLINE", "PARIE", "ARLEE", "NIAIS", "LEONI", "RAINE", "LARES", "SEINS", "CARRE",
|
"LIPPE", "OLINE", "PARIE", "ARLEE", "NIAIS", "LEONI", "RAINE", "LARES", "SEINS",
|
||||||
"POILS", "ALENE", "LINEA", "NEARE", "PENSO", "PRISA", "CAPEL", "PAREA", "PEECE",
|
"CARRE", "POILS", "ALENE", "LINEA", "NEARE", "PENSO", "PRISA", "CAPEL", "PAREA",
|
||||||
"SALIO", "COELO", "SCIRE", "NELLO", "LIENE", "ORICE", "EPAIS", "PERCE", "ALLIS",
|
"PEECE", "SALIO", "COELO", "SCIRE", "NELLO", "LIENE", "ORICE", "EPAIS", "PERCE",
|
||||||
"PEPLE", "LARNE", "NEILL", "OLLEN", "CASCA", "LAPIN", "OLLIE", "SALIC", "LIANE",
|
"ALLIS", "PEPLE", "LARNE", "NEILL", "OLLEN", "CASCA", "LAPIN", "OLLIE", "SALIC",
|
||||||
"REESE", "ELSLI", "SPION", "RIENS", "LILAS", "PAPPA", "ERRER", "SPISE", "CELIE",
|
"LIANE", "REESE", "ELSLI", "SPION", "RIENS", "LILAS", "PAPPA", "ERRER", "SPISE",
|
||||||
"OLSON", "IRREN", "ARIAS", "ARION", "PASEO", "CAERE", "PISAN", "CARRO", "PAROI",
|
"CELIE", "OLSON", "IRREN", "ARIAS", "ARION", "PASEO", "CAERE", "PISAN", "CARRO",
|
||||||
"NOONE", "SEPPI", "OPPIA", "SEALE", "LIPPI", "PELAS", "COCOS", "PLACA", "CONOR",
|
"PAROI", "NOONE", "SEPPI", "OPPIA", "SEALE", "LIPPI", "PELAS", "COCOS", "PLACA",
|
||||||
"LANCA", "OSASI", "ALOIS", "NAIRN", "PIENO", "SPASS", "SAONE", "ALNAR", "CARIA",
|
"CONOR", "LANCA", "OSASI", "ALOIS", "NAIRN", "PIENO", "SPASS", "SAONE", "ALNAR",
|
||||||
"PIENA",
|
"CARIA", "PIENA",
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,7 +135,6 @@ static const char _expanded_words[][WORDLE_LENGTH + 1] = {
|
||||||
static const char _expanded_words[][WORDLE_LENGTH + 1] = {};
|
static const char _expanded_words[][WORDLE_LENGTH + 1] = {};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const uint16_t _num_unique_words = 155; // The _legal_words array begins with this many words where each letter is different.
|
|
||||||
static const uint16_t _num_words = (sizeof(_legal_words) / sizeof(_legal_words[0]));
|
static const uint16_t _num_words = (sizeof(_legal_words) / sizeof(_legal_words[0]));
|
||||||
static const uint16_t _num_expanded_words = (sizeof(_expanded_words) / sizeof(_expanded_words[0]));
|
static const uint16_t _num_expanded_words = (sizeof(_expanded_words) / sizeof(_expanded_words[0]));
|
||||||
static const uint8_t _num_valid_letters = (sizeof(_valid_letters) / sizeof(_valid_letters[0]));
|
static const uint8_t _num_valid_letters = (sizeof(_valid_letters) / sizeof(_valid_letters[0]));
|
||||||
|
@ -157,8 +156,8 @@ static uint8_t get_first_pos(WordleLetterResult *word_elements_result) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t get_next_pos(uint8_t curr_pos, WordleLetterResult *word_elements_result) {
|
static uint8_t get_next_pos(uint8_t curr_pos, WordleLetterResult *word_elements_result) {
|
||||||
for (size_t pos = curr_pos+1; pos < WORDLE_LENGTH; pos++) {
|
for (size_t pos = curr_pos; pos < WORDLE_LENGTH;) {
|
||||||
if (word_elements_result[pos] != WORDLE_LETTER_CORRECT)
|
if (word_elements_result[++pos] != WORDLE_LETTER_CORRECT)
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
return WORDLE_LENGTH;
|
return WORDLE_LENGTH;
|
||||||
|
@ -166,8 +165,8 @@ static uint8_t get_next_pos(uint8_t curr_pos, WordleLetterResult *word_elements_
|
||||||
|
|
||||||
static uint8_t get_prev_pos(uint8_t curr_pos, WordleLetterResult *word_elements_result) {
|
static uint8_t get_prev_pos(uint8_t curr_pos, WordleLetterResult *word_elements_result) {
|
||||||
if (curr_pos == 0) return 0;
|
if (curr_pos == 0) return 0;
|
||||||
for (int8_t pos = curr_pos-1; pos >= 0; pos--) {
|
for (int8_t pos = curr_pos; pos >= 0;) {
|
||||||
if (word_elements_result[pos] != WORDLE_LETTER_CORRECT)
|
if (word_elements_result[--pos] != WORDLE_LETTER_CORRECT)
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
return curr_pos;
|
return curr_pos;
|
||||||
|
@ -262,7 +261,7 @@ static bool check_word(wordle_state_t *state) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void display_attempt(uint8_t attempt) {
|
static void display_attempt(uint8_t attempt) {
|
||||||
char buf[2];
|
char buf[3];
|
||||||
sprintf(buf, "%d", attempt+1);
|
sprintf(buf, "%d", attempt+1);
|
||||||
watch_display_string(buf, 3);
|
watch_display_string(buf, 3);
|
||||||
}
|
}
|
||||||
|
@ -455,7 +454,7 @@ static void get_result(wordle_state_t *state) {
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (state->attempt++ > WORDLE_MAX_ATTEMPTS) {
|
if (++state->attempt >= WORDLE_MAX_ATTEMPTS) {
|
||||||
state->playing = false;
|
state->playing = false;
|
||||||
state->curr_screen = SCREEN_LOSE;
|
state->curr_screen = SCREEN_LOSE;
|
||||||
state->streak = 0;
|
state->streak = 0;
|
||||||
|
|
|
@ -94,10 +94,9 @@ typedef struct {
|
||||||
uint8_t word_elements[WORDLE_LENGTH];
|
uint8_t word_elements[WORDLE_LENGTH];
|
||||||
WordleLetterResult word_elements_result[WORDLE_LENGTH];
|
WordleLetterResult word_elements_result[WORDLE_LENGTH];
|
||||||
uint16_t guessed_words[WORDLE_MAX_ATTEMPTS];
|
uint16_t guessed_words[WORDLE_MAX_ATTEMPTS];
|
||||||
uint8_t attempt : 3;
|
uint8_t attempt : 4;
|
||||||
uint8_t position : 3;
|
uint8_t position : 3;
|
||||||
bool playing : 1;
|
bool playing : 1;
|
||||||
bool unused : 1;
|
|
||||||
uint16_t curr_answer;
|
uint16_t curr_answer;
|
||||||
uint8_t streak;
|
uint8_t streak;
|
||||||
WordleScreen curr_screen;
|
WordleScreen curr_screen;
|
||||||
|
|
|
@ -260,7 +260,7 @@ legal_list = [
|
||||||
"WORDS", "WORDY", "WORKS", "WORLD", "WORMS", "WORRY", "WORSE", "WORST", "WORTH", "WOULD", "WOUND", "WRACK",
|
"WORDS", "WORDY", "WORKS", "WORLD", "WORMS", "WORRY", "WORSE", "WORST", "WORTH", "WOULD", "WOUND", "WRACK",
|
||||||
"WRAPS", "WRAPT", "WRATH", "WREAK", "WRECK", "WREST", "WRING", "WRIST", "WRITE", "WRITS", "WRONG", "WROTE",
|
"WRAPS", "WRAPT", "WRATH", "WREAK", "WRECK", "WREST", "WRING", "WRIST", "WRITE", "WRITS", "WRONG", "WROTE",
|
||||||
"WROTH", "YACHT", "YARDS", "YARNS", "YAWNS", "YEARN", "YEARS", "YEAST", "YELLS", "YELPS", "YIELD", "YOKED",
|
"WROTH", "YACHT", "YARDS", "YARNS", "YAWNS", "YEARN", "YEARS", "YEAST", "YELLS", "YELPS", "YIELD", "YOKED",
|
||||||
"YOKES", "YOLKS", "YOUNG", "YOURS", "YOUTH", "ZEBRA", "ZONES", "COLOR", "CINCO",
|
"YOKES", "YOLKS", "YOUNG", "YOURS", "YOUTH", "ZEBRA", "ZONES", "COLOR",
|
||||||
]
|
]
|
||||||
|
|
||||||
expanded_list = [
|
expanded_list = [
|
||||||
|
@ -982,11 +982,6 @@ def list_of_valid_words(letters, words=legal_list):
|
||||||
return legal_words
|
return legal_words
|
||||||
|
|
||||||
|
|
||||||
def rearrange_words_by_uniqueness(words):
|
|
||||||
unique = [word for word in words if len(word) == len(set(word))]
|
|
||||||
duplicates = [word for word in words if len(word) != len(set(word))]
|
|
||||||
return unique + duplicates, len(unique)
|
|
||||||
|
|
||||||
def capitalize_all_and_remove_duplicates(arr):
|
def capitalize_all_and_remove_duplicates(arr):
|
||||||
for i,word in enumerate(arr):
|
for i,word in enumerate(arr):
|
||||||
arr[i] = word.upper()
|
arr[i] = word.upper()
|
||||||
|
@ -1006,7 +1001,6 @@ def print_valid_words(letters=alphabet):
|
||||||
legal_words = capitalize_all_and_remove_duplicates(legal_words)
|
legal_words = capitalize_all_and_remove_duplicates(legal_words)
|
||||||
random.shuffle(legal_words)
|
random.shuffle(legal_words)
|
||||||
# Just in case the watch's random function is too pseudo, better to shuffle th elist so it's less likely to always have the same starting letter
|
# Just in case the watch's random function is too pseudo, better to shuffle th elist so it's less likely to always have the same starting letter
|
||||||
legal_words, num_uniq = rearrange_words_by_uniqueness(legal_words)
|
|
||||||
|
|
||||||
print("static const char _valid_letters[] = {", end='')
|
print("static const char _valid_letters[] = {", end='')
|
||||||
for letter in letters[:-1]:
|
for letter in letters[:-1]:
|
||||||
|
@ -1041,8 +1035,6 @@ def print_valid_words(letters=alphabet):
|
||||||
i+=1
|
i+=1
|
||||||
print('')
|
print('')
|
||||||
print("};")
|
print("};")
|
||||||
|
|
||||||
print(f"\nstatic const uint16_t _num_unique_words = {num_uniq}; // The _legal_words array begins with this many words where each letter is different.")
|
|
||||||
|
|
||||||
|
|
||||||
def get_sec_val_and_units(seconds):
|
def get_sec_val_and_units(seconds):
|
||||||
|
|
Loading…
Reference in a new issue