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}")