Files
CheckTheethKids/lib/quiz/quiz_extended.dart
Carlos Correia d24cb3242a Documentação
2026-05-03 23:31:31 +01:00

621 lines
20 KiB
Dart

import 'package:flutter/material.dart';
import 'quiz_question_screen.dart';
import 'quiz_result.dart';
// Quiz 6: Tipos de Escova
class Quiz6Screen extends StatelessWidget {
const Quiz6Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 6/20',
question: 'Qual tipo de escova é mais recomendada para crianças?',
answers: const [
QuizAnswer(
title: 'Escova macia com cabeça pequena',
description:
'Escovas macias protegem a gengiva sensível das crianças e a cabeça pequena alcança melhor todos os dentes.',
weight: 2,
),
QuizAnswer(
title: 'Escova dura para limpar melhor',
description:
'Escovas duras podem machucar a gengiva e desgastar o esmalte dos dentes das crianças.',
weight: 5,
),
QuizAnswer(
title: 'Escova elétrica sempre é melhor',
description:
'Escova elétrica pode ajudar, mas não é essencial. O mais importante é a técnica e frequência.',
weight: 3,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz7Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 7: Alimentos que Causam Cáries
class Quiz7Screen extends StatelessWidget {
const Quiz7Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 7/20',
question: 'Qual alimento é mais prejudicial para os dentes?',
answers: const [
QuizAnswer(
title: 'Balas e chicletes pegajosos',
description:
'Alimentos pegajosos ficam presos nos dentes por mais tempo, aumentando o risco de cáries.',
weight: 2,
),
QuizAnswer(
title: 'Maçã e cenoura',
description:
'Frutas e vegetais crus ajudam a limpar os dentes naturalmente e são saudáveis.',
weight: 5,
),
QuizAnswer(
title: 'Água e leite',
description:
'Água ajuda a limpar e leite tem cálcio. São opções saudáveis para os dentes.',
weight: 3,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz8Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 8: Primeira Visita ao Dentista
class Quiz8Screen extends StatelessWidget {
const Quiz8Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 8/20',
question: 'Quando deve ser a primeira visita ao dentista?',
answers: const [
QuizAnswer(
title: 'Por volta dos 1 ano de idade',
description:
'A primeira visita deve ser assim que o primeiro dentinho nascer ou até o primeiro aniversário.',
weight: 2,
),
QuizAnswer(
title: 'Só quando tiver todos os dentes',
description:
'Esperar demais pode permitir que problemas comecem sem detecção precoce.',
weight: 5,
),
QuizAnswer(
title: 'Apenas se sentir dor',
description:
'Dor geralmente indica que o problema já está avançado. Prevenção é melhor que tratamento.',
weight: 5,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz9Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 9: Chupeta e Sucção
class Quiz9Screen extends StatelessWidget {
const Quiz9Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 9/20',
question: 'Até que idade é aceitável usar chupeta?',
answers: const [
QuizAnswer(
title: 'Até 2-3 anos no máximo',
description:
'Após 2-3 anos, chupeta pode causar problemas na dentição e no desenvolvimento da fala.',
weight: 2,
),
QuizAnswer(
title: 'Até 6-7 anos',
description:
'Essa idade já é muito tarde e pode causar problemas sérios na arcada dentária.',
weight: 5,
),
QuizAnswer(
title: 'Não tem problema usar sempre',
description:
'Uso prolongado pode causar má oclusão, problemas na fala e alterações faciais.',
weight: 5,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz10Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 10: Água Fluoretada
class Quiz10Screen extends StatelessWidget {
const Quiz10Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 10/20',
question: 'O flúor na água de abastecimento ajuda?',
answers: const [
QuizAnswer(
title: 'Sim, reduz cáries em até 60%',
description:
'Flúor na água é uma das medidas de saúde pública mais eficazes na prevenção de cáries.',
weight: 2,
),
QuizAnswer(
title: 'Não faz diferença nenhuma',
description:
'Estudos comprovam que flúor na água reduz significativamente a incidência de cáries.',
weight: 5,
),
QuizAnswer(
title: 'É perigoso e causa problemas',
description:
'Nas concentrações corretas, flúor é seguro. O problema é o excesso, não o uso adequado.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz11Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 11: Escovação Noturna
class Quiz11Screen extends StatelessWidget {
const Quiz11Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 11/20',
question: 'Por que a escovação noturna é tão importante?',
answers: const [
QuizAnswer(
title: 'Menos saliva durante o sono',
description:
'Durante a noite produzimos menos saliva, que protege os dentes. Escovação remove placa antes desse período vulnerável.',
weight: 2,
),
QuizAnswer(
title: 'É igual aos outros horários',
description:
'A noite é especial porque a produção de saliva diminui, aumentando o risco de cáries.',
weight: 4,
),
QuizAnswer(
title: 'Só por tradição',
description:
'Tem fundamento científico. A noite é o período mais crítico para formação de cáries.',
weight: 5,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz12Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 12: Bebidas Ácidas
class Quiz12Screen extends StatelessWidget {
const Quiz12Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 12/20',
question: 'Qual bebida é mais ácida para os dentes?',
answers: const [
QuizAnswer(
title: 'Refrigerantes e sucos industrializados',
description:
'Refrigerantes e sucos artificiais têm pH muito baixo, corroem o esmalte e causam erosão dental.',
weight: 2,
),
QuizAnswer(
title: 'Água e leite',
description:
'Água tem pH neutro e leite é levemente ácido mas protege os dentes com cálcio.',
weight: 5,
),
QuizAnswer(
title: 'Chá sem açúcar',
description:
'Chá pode manchar mas é muito menos ácido que refrigerantes e sucos artificiais.',
weight: 3,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz13Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 13: Dentes de Leite
class Quiz13Screen extends StatelessWidget {
const Quiz13Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 13/20',
question: 'É importante cuidar dos dentes de leite?',
answers: const [
QuizAnswer(
title: 'Sim, são fundamentais para o desenvolvimento',
description:
'Dentes de leite mantêm espaço para os permanentes, auxiliam na fala e mastigação.',
weight: 2,
),
QuizAnswer(
title: 'Não, vão cair de qualquer jeito',
description:
'Dentes de leite doentes podem afetar os permanentes e causar problemas no desenvolvimento.',
weight: 5,
),
QuizAnswer(
title: 'Só se doerem',
description:
'Mesmo sem dor, problemas nos dentes de leite podem ter consequências sérias futuras.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz14Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 14: Técnica de Escovação
class Quiz14Screen extends StatelessWidget {
const Quiz14Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 14/20',
question: 'Qual é a técnica correta de escovação?',
answers: const [
QuizAnswer(
title: 'Movimentos circulares suaves',
description:
'Movimentos circulares ou vibratórios suaves limpam sem machucar a gengiva e removem a placa eficientemente.',
weight: 2,
),
QuizAnswer(
title: 'Força de um lado para o outro',
description:
'Movimentos horizontais fortes podem machucar a gengiva e causar recessão gengival.',
weight: 5,
),
QuizAnswer(
title: 'Só na frente dos dentes',
description:
'Precisa escovar todas as faces: frente, atrás e superfície de mastigação.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz15Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 15: Enxaguante Bucal
class Quiz15Screen extends StatelessWidget {
const Quiz15Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 15/20',
question: 'Crianças pequenas podem usar enxaguante bucal?',
answers: const [
QuizAnswer(
title: 'Só com orientação e produtos específicos',
description:
'Crianças pequenas podem engolir o produto. Existem enxaguantes infantis sem álcool e com flúor adequado.',
weight: 2,
),
QuizAnswer(
title: 'Sim, qualquer um serve',
description:
'Enxaguantes para adultos podem ter álcool e concentração de flúor inadequada para crianças.',
weight: 5,
),
QuizAnswer(
title: 'Nunca, é perigoso',
description:
'Com produto adequado e supervisão, pode ser usado como complemento à higiene oral.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz16Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 16: Lanche Escolar
class Quiz16Screen extends StatelessWidget {
const Quiz16Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 16/20',
question: 'Qual lanche escolar é melhor para os dentes?',
answers: const [
QuizAnswer(
title: 'Frutas frescas e queijo',
description:
'Frutas estimulam salivação e queijo neutraliza ácidos. São opções saudáveis para os dentes.',
weight: 2,
),
QuizAnswer(
title: 'Bolachas recheadas e sucos de caixinha',
description:
'Açúcar e amido ficam presos nos dentes, aumentando risco de cáries.',
weight: 5,
),
QuizAnswer(
title: 'Salgadinhos de pacote',
description:
'Amidos processados ficam nos dentes e se transformam em açúcar, causando cáries.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz17Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 17: Traumas Dentários
class Quiz17Screen extends StatelessWidget {
const Quiz17Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 17/20',
question: 'O que fazer se um dente de leite cair por trauma?',
answers: const [
QuizAnswer(
title: 'Procurar dentista imediatamente',
description:
'Mesmo sendo dente de leite, é importante avaliar se houve dano nos permanentes ou nosso tecidos.',
weight: 2,
),
QuizAnswer(
title: 'Não fazer nada, nasce outro',
description:
'Trauma pode afetar o dente permanente que está em formação ou causar infecções.',
weight: 5,
),
QuizAnswer(
title: 'Tentar recolocar no lugar',
description:
'Não se deve recolocar dente de leite avulsionado, apenas os permanentes.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz18Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 18: Mordedura Cruzada
class Quiz18Screen extends StatelessWidget {
const Quiz18Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 18/20',
question: 'O que pode causar problemas na mordida?',
answers: const [
QuizAnswer(
title: 'Chupeta e sucção de dedo prolongadas',
description:
'Hábitos prolongados podem causar mordida cruzada, mordida aberta e outros problemas ortodônticos.',
weight: 2,
),
QuizAnswer(
title: 'Genética apenas',
description:
'Embora genética influencie, hábitos como chupeta e sucção são grandes fatores causais.',
weight: 4,
),
QuizAnswer(
title: 'Não tem prevenção possível',
description:
'Evitar hábitos prejudiciais e fazer acompanhamento odontológico previne muitos problemas.',
weight: 5,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz19Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 19: Gengivas Sangrando
class Quiz19Screen extends StatelessWidget {
const Quiz19Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 19/20',
question: 'Gengiva sangrando ao escovar significa?',
answers: const [
QuizAnswer(
title: 'Inflamação que precisa de tratamento',
description:
'Sangramento indica gengivite. Não deve parar de escovar, mas sim procurar tratamento e melhorar a higiene.',
weight: 2,
),
QuizAnswer(
title: 'Normal e não precisa se preocupar',
description:
'Sangramento não é normal. Indica inflamação que pode evoluir para problemas mais sérios.',
weight: 5,
),
QuizAnswer(
title: 'Está escovando com força demais',
description:
'Força excessiva pode machucar, mas geralmente sangramento indica inflamação gengival.',
weight: 3,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => Quiz20Screen(currentScore: nextScore, scopeId: scopeId),
),
showBackButton: true,
);
}
}
// Quiz 20: Selantes
class Quiz20Screen extends StatelessWidget {
const Quiz20Screen({super.key, required this.currentScore, this.scopeId});
final int currentScore;
final String? scopeId;
@override
Widget build(BuildContext context) {
return QuizQuestionScreen(
title: 'Quiz 20/20',
question: 'Para que servem os selantes dentários?',
answers: const [
QuizAnswer(
title: 'Proteger sulcos dos dentes contra cáries',
description:
'Selantes são uma resina que preenche sulcos e fissuras dos dentes, protegendo contra cáries.',
weight: 2,
),
QuizAnswer(
title: 'Clarear os dentes',
description:
'Selantes não têm função estética de clareamento, apenas protetiva contra cáries.',
weight: 5,
),
QuizAnswer(
title: 'Substituir a escovação',
description:
'Selantes complementam a higiene, não substituem a escovação e o fio dental.',
weight: 4,
),
],
currentScore: currentScore,
nextRoute: (context, nextScore) => MaterialPageRoute<void>(
builder: (_) => QuizResultScreen(finalScore: nextScore, maxScore: 100, scopeId: scopeId),
),
isFinal: true,
showBackButton: true,
);
}
}