') + ')', 'gi');
if (regex.test(text)) {
found = true;
var frag = document.createDocumentFragment();
var parts = text.split(regex);
parts.forEach(function(part, i) {
if (i % 2 === 0) {
frag.appendChild(document.createTextNode(part));
} else {
var span = document.createElement('span');
span.className = 'userscript-highlight';
span.textContent = part;
frag.appendChild(span);
}
});
node.parentNode.replaceChild(frag, node);
}
});
} else if (node.nodeType === 1 && node.childNodes) { // element
var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];
if (!skipTags.includes(node.tagName)) {
Array.from(node.childNodes).forEach(highlight);
}
}
}
highlight(document.body);
// Re-highlight on dynamic content
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1 || node.nodeType === 3) highlight(node);
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Strip utm_, fbclid, gclid, etc. from all links on page
(function() {
var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',
'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',
'ref', 'ref_src', 'source', 'medium', 'campaign'];
function cleanUrl(url) {
try {
var u = new URL(url, window.location.origin);
var changed = false;
trackingParams.forEach(function(p) {
if (u.searchParams.has(p)) {
u.searchParams.delete(p);
changed = true;
}
});
return changed ? u.toString() : url;
} catch (e) {
return url;
}
}
function cleanLinks() {
document.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
cleanLinks();
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1) {
if (node.tagName === 'A') cleanLinks();
node.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); }
})();
(function(){
try {
var __m = "youtube.com";
var __re = new RegExp('^' + "youtube\\.com" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Auto-enable theater mode on YouTube
(function() {
function tryTheater() {
var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]');
if (btn && !btn.classList.contains('activated')) {
btn.click();
}
}
// Try immediately
tryTheater();
// Try after navigation (SPA)
var lastUrl = location.href;
setInterval(function() {
if (location.href !== lastUrl) {
lastUrl = location.href;
setTimeout(tryTheater, 500);
}
}, 1000);
// Also try on player load
var observer = new MutationObserver(tryTheater);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Remove or un-stick sticky/fixed headers that block content
(function() {
function unstick() {
document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) {
if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {
el.style.position = 'static';
el.style.top = 'auto';
el.style.zIndex = 'auto';
}
});
}
unstick();
var observer = new MutationObserver(unstick);
observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });
})();
}
} catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); }
})();
})();
GitHub - redavni1/Invaders: Course: Software Development Practices (CES2024) - Tuesday Class (23-2-24428) · GitHub
Repository files navigation Course: Software Development Practices (CES2024) - Tuesday Class (23-2-24428)
This course project focuses on creating a prototype based on the video game Space Invaders . The aim is to apply and validate best practices in software engineering. The original code repository can be found at RobertoIA/Invaders .
Team Registration and Project Requirements Please list your team name and members in the table below. In addition, submit your requirements in the requirements folder.
In the 'Name' column, link to your team's forked repository. In the 'Members' column, each team member should link to their GitHub profile. In the 'Requirements' column, link to your team's requirements document. (e.g. requirements/instruct.md) No. Name Members Requirements 0 Instructors Scott Uk-Jin Lee , Hansae Ju , Joonwoo Lee Instruct students 1 redavni Minjung Lee , Seohyun Kim , Uiseong Shin , Suhan Woo , Hyomin Lee , Junseo Kim Sound Effects/BGM 2 NaReum Lee Na Young ,Kim Min Seo , Kim A Reum , Suh Hyung Chan , Oh Seung Jun HUD 3 Clean Code Jeongwoo Jang , Doyoon Kim , Hyeonjeong Kim , Jinho Shin , Minkyeong Kang , Chaeheon Lee Visual Effect System 4 Bokhakhatjo Hyunmin Kim , Suho Lee , Yeonyeong Lee , Yongjae Kim , Taejune Jeong Item System 5 Joyroom Jin Woo Song , Young Taek Kim , Won Bhin Cho , Young Jun Ko , Jae O Lee , Sung Jun Jo 2Player Mode 6 Pepsi Zero Sunmin Kim , Jinwon Choi , Heesoo Lee , Banseok Kim , Choonghun Kim Level Design System 7 KLACK Dongmin Kim , Sangmin Ahn , Woobin Choi , Jinwon Kim , Dayeon Lee Player&Enenmy Variety 8 Currency Songeun Lee , Daeun Song , Seoyeon Park , Minseo Kim , Hayeon Choi , Siwoo Ryu Currency System
Title Screen Game Screen Score Screen
Requires Java 7 or better. :)
Note that you should install the following resources in order to run the game.
You can’t perform that action at this time.