import random import zipfile import os import json # Generate 30 generic questions questions = [] for i in range(1, 31): questions.append({ 'question': f'Question {i}: What is the answer to question {i}?', 'options': [f'Option A{i}', f'Option B{i}', f'Option C{i}', f'Option D{i}'], 'correct': f'Option A{i}' }) # SCORM manifest template manifest_template = ''' Random 10 out of 30 Quiz Quiz ''' # HTML/JS for SCORM quiz quiz_html = ''' Random 10 out of 30 Quiz
Loading...
''' # Improved SCORM JS API stub scorm_js = ''' function InitializeScorm() { if (window.parent && window.parent.API) window.parent.API.LMSInitialize(""); } function SetScore(score, max, min) { if (window.parent && window.parent.API) window.parent.API.LMSSetValue("cmi.core.score.raw", score); } function SetPassed(passed) { if (window.parent && window.parent.API) { window.parent.API.LMSSetValue("cmi.core.lesson_status", passed ? "passed" : "failed"); window.parent.API.LMSSetValue("cmi.core.lesson_status", passed ? "completed" : "incomplete"); } } function TerminateScorm() { if (window.parent && window.parent.API) window.parent.API.LMSFinish(""); } ''' # Write files and zip scorm_dir = './scorm_quiz/' os.makedirs(scorm_dir, exist_ok=True) with open(scorm_dir + 'imsmanifest.xml', 'w', encoding='utf-8') as f: f.write(manifest_template) with open(scorm_dir + 'index.html', 'w', encoding='utf-8') as f: f.write(quiz_html) with open(scorm_dir + 'scormdriver.js', 'w', encoding='utf-8') as f: f.write(scorm_js) with open(scorm_dir + 'questions.json', 'w', encoding='utf-8') as f: json.dump(questions, f) # Zip it up scorm_zip = 'Random_Quiz_SCORM.zip' with zipfile.ZipFile(scorm_zip, 'w') as z: for fname in ['imsmanifest.xml', 'index.html', 'scormdriver.js', 'questions.json']: z.write(scorm_dir + fname, fname) print(f"SCORM quiz package generated: {scorm_zip}")