245 lines
10 KiB
JavaScript
245 lines
10 KiB
JavaScript
// https://psychology.tips/types-of-temperament-and-their-meaning/
|
||
let temperaments = {
|
||
Sanguine: {
|
||
name: "Сангвиник",
|
||
chance: 20, // 20%
|
||
explanation:
|
||
"Жизнерадостный, энергичный и общительный, легко адаптируется к новым ситуациям и любит активную жизнь.",
|
||
},
|
||
Choleric: {
|
||
name: "Холерик",
|
||
chance: 15, // 15%
|
||
explanation:
|
||
"Целеустремленный и решительный, склонен к лидерству и быстрому принятию решений, хотя иногда проявляет вспыльчивость.",
|
||
},
|
||
Melancholic: {
|
||
name: "Меланхолик",
|
||
chance: 35, // 35%
|
||
explanation:
|
||
"Чувствительный и задумчивый, склонен к глубоким размышлениям и эмоциональной глубине, часто сосредоточен на деталях.",
|
||
},
|
||
Phlegmatic: {
|
||
name: "Флегматик",
|
||
chance: 30, // 30%
|
||
explanation:
|
||
"Спокойный и уравновешенный, редко подвержен стрессу и предпочитает стабильность, хороший слушатель.",
|
||
},
|
||
};
|
||
|
||
|
||
let psychosocialTypes = {
|
||
DonKihot: {
|
||
name: "Дон Кихот",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Интуитивно-логический экстраверт, склонен к исследованию новых идей и подходов, сочетая интуицию возможностей и структурную логику.",
|
||
},
|
||
Duma: {
|
||
name: "Дюма",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Сенсорно-этический интроверт, мягкий, ориентированный на гармонию и комфорт, использует сенсорику ощущений и этику эмоций.",
|
||
},
|
||
Gyugo: {
|
||
name: "Гюго",
|
||
chance: 9, // 9%
|
||
explanation:
|
||
"Этико-сенсорный экстраверт, энергичный, выражающий эмоции, склонен к мотивации и поддержке, управляет этикой эмоций и сенсорикой ощущений.",
|
||
},
|
||
Robespier: {
|
||
name: "Робеспьер",
|
||
chance: 7, // 7%
|
||
explanation:
|
||
"Логико-интуитивный интроверт, рационален, склонен к анализу и систематизации, использует структурную логику и интуицию возможностей.",
|
||
},
|
||
Zhukov: {
|
||
name: "Жуков",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Сенсорно-логический экстраверт, решителен, настойчив, лидер по натуре, использует сенсорику силы и деловую логику.",
|
||
},
|
||
Yesenin: {
|
||
name: "Есенин",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Интуитивно-этический интроверт, мечтателен, склонен к глубоким переживаниям, управляет интуицией времени и этикой эмоций.",
|
||
},
|
||
Napoleon: {
|
||
name: "Наполеон",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Сенсорно-этический экстраверт, харизматичен, уверен в себе, лидер, использует сенсорику силы и этику отношений.",
|
||
},
|
||
Balzac: {
|
||
name: "Бальзак",
|
||
chance: 6, // 6%
|
||
explanation:
|
||
"Интуитивно-логический интроверт, пессимистичен, видит риски и угрозы, использует интуицию времени и структурную логику.",
|
||
},
|
||
JackLondon: {
|
||
name: "Джек Лондон",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Логико-интуитивный экстраверт, ориентирован на достижение целей, новые идеи и эффективность.",
|
||
},
|
||
Draizer: {
|
||
name: "Драйзер",
|
||
chance: 7, // 7%
|
||
explanation:
|
||
"Этико-сенсорный интроверт, принципиален, привержен моральным стандартам, использует этику отношений и сенсорику силы.",
|
||
},
|
||
Shtirlic: {
|
||
name: "Штирлиц",
|
||
chance: 9, // 9%
|
||
explanation:
|
||
"Логико-сенсорный экстраверт, логичен, ориентирован на достижения, использует структурную логику и сенсорику силы.",
|
||
},
|
||
Geksli: {
|
||
name: "Гексли",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Интуитивно-этический экстраверт, жизнерадостен, легко находит общий язык, использует интуицию возможностей и этику эмоций.",
|
||
},
|
||
Gaben: {
|
||
name: "Габен",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Сенсорно-логический интроверт, спокойный, ценит комфорт, управляет сенсорикой ощущений и деловой логикой.",
|
||
},
|
||
MaximGorkiy: {
|
||
name: "Максим Горький",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Логико-сенсорный интроверт, методичен, привержен порядку, использует структурную логику и сенсорику силы.",
|
||
},
|
||
Hamlet: {
|
||
name: "Гамлет",
|
||
chance: 9, // 9%
|
||
explanation:
|
||
"Этико-интуитивный экстраверт, склонен к драматичности, использует этику эмоций и интуицию времени.",
|
||
},
|
||
Dostoevskiy: {
|
||
name: "Достоевский",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Этико-интуитивный интроверт, чувствителен, склонен к самопожертвованию, использует этику отношений и интуицию возможностей.",
|
||
},
|
||
};
|
||
|
||
|
||
let archetypesAccordingToCarlJung = {
|
||
SimpleMinded: {
|
||
name: "Простодушный",
|
||
chance: 7, // 7%
|
||
explanation:
|
||
"Символизирует невинность и открытость, избегает конфликтов, ищет безопасности.",
|
||
},
|
||
GoodFellow: {
|
||
name: "Славный малый",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Добрый, отзывчивый, старается помогать и поддерживать других.",
|
||
},
|
||
Warrior: {
|
||
name: "Воин",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Смелый и решительный, стремится преодолевать трудности и защищать слабых.",
|
||
},
|
||
Caregiver: {
|
||
name: "Опекун",
|
||
chance: 9, // 9%
|
||
explanation:
|
||
"Заботливый и ответственный, стремится защищать и заботиться о других.",
|
||
},
|
||
Seeker: {
|
||
name: "Искатель",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Любознательный и независимый, стремится к новым знаниям и открытиям.",
|
||
},
|
||
Lover: {
|
||
name: "Любовник",
|
||
chance: 8, // 8%
|
||
explanation:
|
||
"Эмоциональный и страстный, стремится к гармонии и близости с другими.",
|
||
},
|
||
Rebel: {
|
||
name: "Бунтарь",
|
||
chance: 7, // 7%
|
||
explanation:
|
||
"Протестует против устоявшихся норм, стремится к переменам и свободе.",
|
||
},
|
||
Creator: {
|
||
name: "Творец",
|
||
chance: 9, // 9%
|
||
explanation:
|
||
"Ориентирован на создание и креативность, стремится создавать новое.",
|
||
},
|
||
Ruler: {
|
||
name: "Правитель",
|
||
chance: 10, // 10%
|
||
explanation:
|
||
"Стремится к порядку и контролю, управляет другими и поддерживает стабильность.",
|
||
},
|
||
Magician: {
|
||
name: "Маг",
|
||
chance: 6, // 6%
|
||
explanation:
|
||
"Ищет скрытые знания и трансформацию, стремится изменить реальность.",
|
||
},
|
||
Sage: {
|
||
name: "Мудрец",
|
||
chance: 9, // 9%
|
||
explanation: "Стремится к знаниям и мудрости, анализирует и ищет истину.",
|
||
},
|
||
Jester: {
|
||
name: "Шут",
|
||
chance: 7, // 7%
|
||
explanation:
|
||
"Игривый и остроумный, стремится разрушить шаблоны и принести радость.",
|
||
},
|
||
};
|
||
|
||
|
||
// Функция для генерации случайной комбинации типа и архетипа
|
||
|
||
function getPsychosocialTypeAndArchetype() {
|
||
// Функция для вычисления суммарного шанса в объекте
|
||
function getTotalChance(obj) {
|
||
return Object.values(obj).reduce((sum, item) => sum + item.chance, 0);
|
||
}
|
||
|
||
// Функция для случайного выбора элемента на основе нормализованных шансов
|
||
function getRandomElement(obj, totalChance) {
|
||
const rand = Math.random() * totalChance;
|
||
let cumulativeChance = 0;
|
||
for (const key in obj) {
|
||
cumulativeChance += obj[key].chance;
|
||
if (rand < cumulativeChance) {
|
||
return obj[key];
|
||
}
|
||
}
|
||
}
|
||
|
||
// Суммарные шансы для каждого набора
|
||
const totalTemperamentChance = getTotalChance(temperaments);
|
||
const totalPsychosocialChance = getTotalChance(psychosocialTypes);
|
||
const totalArchetypeChance = getTotalChance(archetypesAccordingToCarlJung);
|
||
|
||
// Выбор случайного типа, архетипа и темперамента
|
||
const temperament = getRandomElement(temperaments, totalTemperamentChance);
|
||
const psychosocialType = getRandomElement(psychosocialTypes, totalPsychosocialChance);
|
||
const archetype = getRandomElement(archetypesAccordingToCarlJung, totalArchetypeChance);
|
||
|
||
return {
|
||
temperament: temperament,
|
||
psychosocialType: psychosocialType,
|
||
archetype: archetype,
|
||
};
|
||
}
|
||
|
||
dv.psychoTypes = {
|
||
getPsychosocialTypeAndArchetype,
|
||
};
|