곽태식

데스노트 추가

......@@ -22,10 +22,10 @@ app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use('/',express.static(path.join(__dirname, 'public')));
app.use('/',express.static(path.join(__dirname, 'code')));
app.use('/Cname/:Cname/Cbirth',express.static(path.join(__dirname, 'public')));
app.use('/Cname/:Cname/Cbirth',express.static(path.join(__dirname, 'code')));
app.use('/Fname/:Fname/Fbirth',express.static(path.join(__dirname, 'newpublic')));
app.use('/Fname/:Fname/Fbirth',express.static(path.join(__dirname, 'newcode')));
app.use('/Cname/:name/Cbirth',express.static(path.join(__dirname, 'public')));
app.use('/Cname/:name/Cbirth',express.static(path.join(__dirname, 'code')));
app.use('/Fname/:name/Fbirth',express.static(path.join(__dirname, 'newpublic')));
app.use('/Fname/:name/Fbirth',express.static(path.join(__dirname, 'newcode')));
app.use('/', indexRouter);
......
......@@ -27,8 +27,8 @@ module.exports = (server, app) => {
let client_birth ;
let Destiny;
let sql;
let DeathNote=[];
let Day3_Weather ={};
let info = {}
......@@ -141,7 +141,9 @@ module.exports = (server, app) => {
traffic: Traffic_Accident.totalCount, // 교통사고 발생횟수
death_factor: "", //사망요인
death_countdown: 0, //죽기까지 남은 시간(단위: 초)
death_prob: 0 //확률
death_prob: 0, //확률
DeathNote: []
}
console.log("API INFO \n", info);
console.log("Traffic count:", info.traffic);
......@@ -162,11 +164,13 @@ module.exports = (server, app) => {
//죽을 확률 계산(내맘대로 커스텀)
info.death_prob = (
(info.heat / 50) + (Math.abs(info.sensible_temperature - 15) / 10) + (info.discomport / 10) + (info.UV / 10)
+ info.windspd*1 + (info.rain / 10) + (Math.abs(info.current_temperature - 15) / 10) //+ (info.traffic / 5)
+ info.windspd*1 + (info.rain / 10) + (Math.abs(info.current_temperature - 15) / 10) // + (info.traffic / 5)
);
// ------------------------------ death_factor 정의 ------------------------------
Death_Factors.push("심장마비로 사망"); //반드시 하나의 요인은 추가되어야 함
if (info.typhoon == "Y")
Death_Factors.push("태풍에 휩쓸려 사망");
if (info.lightning == 1)
......@@ -179,10 +183,78 @@ module.exports = (server, app) => {
Death_Factors.push("학점이 너무 낮아 화병으로 사망");
if (info.discomport*1 >= 40)
Death_Factors.push("날씨가 너무 찝찝해서 사망");
if (info.typhoon == "Y"&& info.lightning== 1 )
Death_Factors.push("공포감에 긴장하여 사망");
if (info.heat*1 >= 100 &&info.discomport*1 >=40)
Death_Factors.push("고혈압으로 사망");
Death_Factors.push("심장마비로 사망"); //반드시 하나의 요인은 추가되어야 함
if (client_birth.charAt(0)=='1')
Death_Factors=['아이는 죽지 않아요'];
info.death_factor = Death_Factors[Math.floor(Math.random()*Death_Factors.length)]; //사망요인 하나를 렌덤으로 고른다.
//-----------------------------DeathNote 정의 -----------------------------------
//열지수
if(info.Forecast_1dayHeat>info.Forecast_2dayHeat&&info.Forecast_1dayHeat>info.Forecast_laterHeat){
info.DeathNote.push({hours: Math.round(Math.random()*23),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "스트레스 너무 받아 화병으로 사망"})
}
else if(info.Forecast_2dayHeat>info.Forecast_1dayHeat&&info.Forecast_2dayHeat>info.Forecast_laterHeat){
info.DeathNote.push({hours: Math.round(Math.random()*23)+24,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "스트레스 너무 받아 화병으로 사망"})
}
else{
info.DeathNote.push({hours: Math.round(Math.random()*9000)+48,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "스트레스 너무 받아 화병으로 사망"})
}
//불쾌지수
if(info.Forecast_1dayDiscomport>info.Forecast_2dayDiscomport&&info.Forecast_1dayDiscomport>info.Forecast_laterDiscomport){
info.DeathNote.push({hours: Math.round(Math.random()*23),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "너무 불쾌해서 사망"})
}
else if(info.Forecast_2dayDiscomport>info.Forecast_1dayDiscomport&&info.Forecast_2dayDiscomport>info.Forecast_laterDiscomport){
info.DeathNote.push({hours: Math.round(Math.random()*23)+24,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "너무 불쾌해서 사망"})
}
else{
info.DeathNote.push({hours: Math.round(Math.random()*9000)+48,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "너무 불쾌해서 사망"})
}
//체감
if(info.Forecast_1daySensible>info.Forecast_2daySensible&&info.Forecast_1daySensible>info.Forecast_laterSensible){
info.DeathNote.push({hours: Math.round(Math.random()*23),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "자외선 과다 노출로 사망"})
}
else if(info.Forecast_2daySensible>info.Forecast_1daySensible&&info.Forecast_2daySensible>info.Forecast_laterSensible){
info.DeathNote.push({hours: Math.round(Math.random()*23)+24,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "자외선 과다 노출로 사망"})
}
else{
info.DeathNote.push({hours: Math.round(Math.random()*9000)+48,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "자외선 과다 노출로 사망"})
}
//강수량
if (info.Forecast_1dayR>=50||info.Forecast_2dayR>=50||info.Forecast_laterR>=50){
if(info.Forecast_1dayHeat>info.Forecast_2dayHeat&&info.Forecast_1dayHeat>info.Forecast_laterHeat){
info.DeathNote.push({hours: Math.round(Math.random()*23),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "빗길에 미끄러져 뇌진탕으로 사망"})
}
else if(info.Forecast_2dayHeat>info.Forecast_1dayHeat&&info.Forecast_2dayHeat>info.Forecast_laterHeat){
info.DeathNote.push({hours: Math.round(Math.random()*23)+24,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "빗길에 미끄러져 뇌진탕으로 사망"})
}
else{
info.DeathNote.push({hours: Math.round(Math.random()*9000)+48,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "빗길에 미끄러져 뇌진탕으로 사망"})
}
}
//바람속도
if(info.Forecast_1dayW>info.Forecast_2dayW&&info.Forecast_1dayW>info.Forecast_laterW){
info.DeathNote.push({hours: Math.round(Math.random()*23),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "바람이 많이 불어 애인이 바람 남, 그 충격으로 사망"})
}
else if(info.Forecast_2dayHeat>info.Forecast_1dayHeat&&Forecast_2dayW>Forecast_laterW){
info.DeathNote.push({hours: Math.round(Math.random()*23)+24,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "바람이 많이 불어 애인이 바람 남, 그 충격으로 사망"})
}
else{
info.DeathNote.push({hours: Math.round(Math.random()*9000)+48,minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "바람이 많이 불어 애인이 바람 남, 그 충격으로 사망"})
}
//경고
info.death_factor = Death_Factors[Math.round(Math.random()*Death_Factors.length)]; //사망요인 하나를 렌덤으로 고른다.
if(info.Forecast_warning=='Y'){
info.DeathNote.push({hours: Math.round(Math.random()*9000),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "과다 긴장으로 발작하여 사망"})
}
//태풍
if(info.Forecast_typhoon=='Y'){
info.DeathNote.push({hours: Math.round(Math.random()*9000),minutes: Math.round(Math.random()*59), seconds: Math.round(Math.random()*59), factor: "태풍에 휩쓸려 사망"})
}
//이벤트 기반으로 일정 시간 간격으로 클라이언트에게 보낼 정보
......@@ -193,10 +265,14 @@ module.exports = (server, app) => {
rain: info.rain,
death: info.death_prob,
factor: info.death_factor,
deathnote: info.DeathNote,
};
function getRandom_add_prob(min, max) {
return Math.random() * (max - min) + min;
}
//심장이 크게 뛰며 확률이 증가하거나 감소 할 수 있음
......@@ -210,6 +286,9 @@ module.exports = (server, app) => {
if(Destiny==0)Destiny=1; //사용자 잘못 입력했을때 예외처리
Math.random() * 2 >= 1 ? client_send.death += Destiny : client_send.death -= Destiny ;
if (client_birth.charAt(0)=='1')//아이는 죽지 않아요
client_send.death=0;
//만약 날이 너무 안좋아서 확률이 100을 넘긴다면 100으로 예외처리
if (client_send.death >= 100) {
......@@ -252,6 +331,7 @@ module.exports = (server, app) => {
socket.on('disconnect', (reason) => {
console.log("disconnected");
clearInterval(call_interval); //연결 종료시 interval 해제
})
})
......
......@@ -12,7 +12,7 @@ router.post('/forecasting' , (req,res) =>{
res.redirect(`/Fname/${req.body.name}/Fbirth/${req.body.birth}`);
})
router.get('/Fname/:Fname/Fbirth/:Fbirth',(req,res)=>{
router.get('/Fname/:name/Fbirth/:birth',(req,res)=>{
// 렌더링 변수
var time = new Array(); // 타임스탬프
......@@ -39,7 +39,7 @@ router.get('/Fname/:Fname/Fbirth/:Fbirth',(req,res)=>{
if (rows.length == 0)
{
empty = 1;
}
}
else
{
for(var i = rows.length - 1; i >= 0; i--)
......@@ -73,7 +73,7 @@ router.get('/Fname/:Fname/Fbirth/:Fbirth',(req,res)=>{
});
} )
router.get('/Cname/:Cname/Cbirth/:Cbirth', (req,res) => {
router.get('/Cname/:name/Cbirth/:birth', (req,res) => {
// 렌더링 변수
var time = new Array(); // 타임스탬프
......
......@@ -175,11 +175,13 @@
})
i++;
}
<% for(var n; n < probArr.length; n++) {%>
var temp, temp2;
temp = <%=probArr[n] %>;
temp2 = <%=factorArr[n] %>;
temp2 = '<%= factorArr[n] %>';
// for(;j<10;j++)
// {
......
1.데스노트 컨셉 추가
2.교통사고 api정보
3.단기예보 api추가
4.사망요인 다양화
5.새로운 페이지(데스노트)