import React, { useState } from 'react'; import { PlusCircle, MinusCircle, ArrowRight, ArrowLeft, CheckCircle, Printer, RotateCcw, Lightbulb, BrainCircuit } from 'lucide-react'; export default function App() { const [step, setStep] = useState(1); const [question, setQuestion] = useState(""); const [choices, setChoices] = useState([{ id: 1, text: "" }, { id: 2, text: "" }, { id: 3, text: "" }, { id: 4, text: "" }]); const [reflections, setReflections] = useState({}); // Nouvel état pour les réflexions finales de l'étape 3 const [finalReflections, setFinalReflections] = useState({ q1: "", q2: "", q3: "" }); const handleChoiceChange = (id, text) => { setChoices(choices.map(c => c.id === id ? { ...c, text } : c)); }; const addChoice = () => { if (choices.length < 6) { setChoices([...choices, { id: Date.now(), text: "" }]); } }; const removeChoice = (id) => { if (choices.length > 2) { setChoices(choices.filter(c => c.id !== id)); const newReflections = { ...reflections }; delete newReflections[id]; setReflections(newReflections); } }; const handleReflectionChange = (id, text) => { setReflections({ ...reflections, [id]: text }); }; const handleFinalReflectionChange = (qId, text) => { setFinalReflections(prev => ({ ...prev, [qId]: text })); }; const isStep1Valid = question.trim() !== "" && choices.every(c => c.text.trim() !== ""); const isStep2Valid = choices.every(c => reflections[c.id] && reflections[c.id].trim() !== ""); const resetAll = () => { setStep(1); setQuestion(""); setChoices([{ id: 1, text: "" }, { id: 2, text: "" }, { id: 3, text: "" }, { id: 4, text: "" }]); setReflections({}); setFinalReflections({ q1: "", q2: "", q3: "" }); }; const handlePrint = () => { window.print(); }; return (
{/* Header */}

Simulateur de questions avec distracteurs réfléchis

Un outil de réflexion pour analyser la qualité de vos QCM et la capacité qu'elles ont de vous aider à comprendre les conceptions alternatives de vos élèves.

{/* Progress Bar print:hidden */}
{[1, 2, 3].map((num) => (
= num ? 'bg-blue-600 text-white' : 'bg-slate-200 text-slate-500'}`}> {num}
))}
Conception du QCM Analyse des choix Bilan
{/* Main Content Area */}
{/* STEP 1: Question and Choices */} {step === 1 && (

1 Le QCM