From 27f0a399787aa449ef3986e2c919af970052394d Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:00:54 +0800 Subject: [PATCH 01/25] update the link in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd8da0a..56ed438 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A project based learning activity for people who are getting started with Git and GitHub. -You can play the game at: https://githubschool.github.io/github-games/ +You can play the game at: https://github.com/KyoWuJiuJiu/github-games >> _*SUPPORTED BROWSERS*: Chrome, Firefox, Safari, Opera and IE9+_ From 5dbaba17716d12ec3c09a30d804f930b59288eca Mon Sep 17 00:00:00 2001 From: KyoWuJiuJiu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:37:00 +0800 Subject: [PATCH 02/25] Add CODEOWNERS file for repository ownership test --- CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..c93450d --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,2 @@ +* @KYOWUJIUJIU +*.js @GITHUBTEACHER From 6c48fa82dd573af34a8dcf24aa263304b09953b9 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Wed, 2 Sep 2026 22:09:10 +0800 Subject: [PATCH 03/25] =?UTF-8?q?this=20is=20for=20Git=20bisect=20?= =?UTF-8?q?=E7=9A=84=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 56ed438..d93efff 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,5 @@ You can play the game at: https://github.com/KyoWuJiuJiu/github-games >> _*SUPPORTED BROWSERS*: Chrome, Firefox, Safari, Opera and IE9+_ This fun open source game was cloned from: https://github.com/jakesgordon/javascript-tetris + +this is 为了测试 Git bisect新建一个commit From fc0d4f9a6a948fe818bedddc3d80fa47f297e602 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:25:29 +0800 Subject: [PATCH 04/25] Revert "rename index.html to inde.html" This reverts commit f99c7219108337b35abac4e33e0edcb5fb470bdf. --- inde.html => index.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename inde.html => index.html (100%) diff --git a/inde.html b/index.html similarity index 100% rename from inde.html rename to index.html From 6a439296178190cb995145abe6486c38ba8a9fae Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:34:07 +0800 Subject: [PATCH 05/25] =?UTF-8?q?=E6=8A=8A=E8=AF=A5=E6=AD=BB=E7=9A=84.DS?= =?UTF-8?q?=5FStore=E6=94=BE=E5=85=A5=E5=88=B0commit=E5=BD=93=E4=B8=AD?= =?UTF-8?q?=E5=8E=BB,=20=E7=9C=81=E7=9A=84=E4=B8=80=E5=A4=A9=E5=88=B0?= =?UTF-8?q?=E6=99=9A=E6=8F=90=E9=86=92=E6=88=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..665afdaf6d32fab54e248a4e8b1e5781097308a0 GIT binary patch literal 6148 zcmeHKJ5Iwu5Ph2%2!bLdug)Ci$vp zMXKSiG9b?`!5L;);3j&0=IylZTjg0cUgl%kdOPorPbbIE=dpkKt-qMp-i>a`RP253 zi#gU9N4o>}?TC5}w+~efjdfP}rjqSZQ9bVc$1bih!4;V(8eE|B%4#Biy_UO|s+LB~ zrjl(jaUGW1s3-%<@TFb!CGbe|3m?g&6kXm-N6 zoFyd3222B%9_gVNpGx$pCLA%0Pp936xHMqt(Wk?N!-okwn{YxgZg;M4T{ukYQAcG! z8HgF^`pdrb|BLPC|2RpnlmTVnUol{kY?KXoOQE;6ZcciwrCw4+B(C&WrEua}F=M3_ cA5opqZe>DD1C}0Xq3Dl*qd^B{;8z*=0NAl;F#rGn literal 0 HcmV?d00001 From 0c9a86987592f7798a9f024b11492620fc6e8482 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:09:04 +0800 Subject: [PATCH 06/25] =?UTF-8?q?=E5=85=88=E4=BF=9D=E5=AD=98=E4=B8=80?= =?UTF-8?q?=E4=B8=8B,=20=E7=84=B6=E5=90=8E=E6=B5=8B=E8=AF=95=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- texture.jpg => images/texture.jpg | Bin index.html | 70 +++++++++++++++--------------- 2 files changed, 35 insertions(+), 35 deletions(-) rename texture.jpg => images/texture.jpg (100%) diff --git a/texture.jpg b/images/texture.jpg similarity index 100% rename from texture.jpg rename to images/texture.jpg diff --git a/index.html b/index.html index 87e71f8..fede935 100644 --- a/index.html +++ b/index.html @@ -45,57 +45,57 @@ // base helper methods //------------------------------------------------------------------------- - function get(id) { return document.getElementById(id); } - function hide(id) { get(id).style.visibility = 'hidden'; } - function show(id) { get(id).style.visibility = null; } - function html(id, html) { get(id).innerHTML = html; } + function get(id) { return document.getElementById(id); } + function hide(id) { get(id).style.visibility = 'hidden'; } + function show(id) { get(id).style.visibility = null; } + function html(id, html) { get(id).innerHTML = html; } - function timestamp() { return new Date().getTime(); } - function random(min, max) { return (min + (Math.random() * (max - min))); } - function randomChoice(choices) { return choices[Math.round(random(0, choices.length-1))]; } + function timestamp() { return new Date().getTime(); } + function random(min, max) { return (min + (Math.random() * (max - min))); } + function randomChoice(choices) { return choices[Math.round(random(0, choices.length - 1))]; } if (!window.requestAnimationFrame) { // http://paulirish.com/2011/requestanimationframe-for-smart-animating/ window.requestAnimationFrame = window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function(callback, element) { - window.setTimeout(callback, 1000 / 60); - } + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback, element) { + window.setTimeout(callback, 1000 / 60); + } } //------------------------------------------------------------------------- // game constants //------------------------------------------------------------------------- - var KEY = { ESC: 27, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 }, - DIR = { UP: 0, RIGHT: 1, DOWN: 2, LEFT: 3, MIN: 0, MAX: 3 }, - stats = new Stats(), - canvas = get('canvas'), - ctx = canvas.getContext('2d'), - ucanvas = get('upcoming'), - uctx = ucanvas.getContext('2d'), - speed = { start: 0.6, decrement: 0.005, min: 0.1 }, // how long before piece drops by 1 row (seconds) - nx = 10, // width of tetris court (in blocks) - ny = 20, // height of tetris court (in blocks) - nu = 5; // width/height of upcoming preview (in blocks) + var KEY = { ESC: 27, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 }, + DIR = { UP: 0, RIGHT: 1, DOWN: 2, LEFT: 3, MIN: 0, MAX: 3 }, + stats = new Stats(), + canvas = get('canvas'), + ctx = canvas.getContext('2d'), + ucanvas = get('upcoming'), + uctx = ucanvas.getContext('2d'), + speed = { start: 0.8, decrement: 0.005, min: 0.1 }, // how long before piece drops by 1 row (seconds) + nx = 10, // width of tetris court (in blocks) + ny = 20, // height of tetris court (in blocks) + nu = 5; // width/height of upcoming preview (in blocks) //------------------------------------------------------------------------- // game variables (initialized during reset) //------------------------------------------------------------------------- var dx, dy, // pixel size of a single tetris block - blocks, // 2 dimensional array (nx*ny) representing tetris court - either empty block or occupied by a 'piece' - actions, // queue of user actions (inputs) - playing, // true|false - game is in progress - paused, // true|false - game is currently paued (to differentiate need for reset) - dt, // time since starting this game - current, // the current piece - next, // the next piece - score, // the current score - vscore, // the currently displayed score (it catches up to score in small chunks - like a spinning slot machine) - rows, // number of completed rows in the current game - step; // how long before current piece drops by 1 row + blocks, // 2 dimensional array (nx*ny) representing tetris court - either empty block or occupied by a 'piece' + actions, // queue of user actions (inputs) + playing, // true|false - game is in progress + paused, // true|false - game is currently paued (to differentiate need for reset) + dt, // time since starting this game + current, // the current piece + next, // the next piece + score, // the current score + vscore, // the currently displayed score (it catches up to score in small chunks - like a spinning slot machine) + rows, // number of completed rows in the current game + step; // how long before current piece drops by 1 row //------------------------------------------------------------------------- // tetris pieces From 6629969b5677ffe3a55f1039d2f5ecf15f7c1679 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:10:18 +0800 Subject: [PATCH 07/25] save firstly --- index.html | 388 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 299 insertions(+), 89 deletions(-) diff --git a/index.html b/index.html index fede935..98c88f6 100644 --- a/index.html +++ b/index.html @@ -1,26 +1,235 @@ + Javascript Tetris @@ -113,13 +322,13 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'purple' }; - var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'purple' }; + var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; - var s = { size: 3, blocks: [0x06C0, 0x8C40, 0x6C00, 0x4620], color: 'teal' }; + var s = { size: 3, blocks: [0x06C0, 0x8C40, 0x6C00, 0x4620], color: 'teal' }; var t = { size: 3, blocks: [0x0E40, 0x4C40, 0x4E00, 0x4640], color: 'coral' }; - var z = { size: 3, blocks: [0x0C60, 0x4C80, 0xC600, 0x2640], color: 'olive' }; + var z = { size: 3, blocks: [0x0C60, 0x4C80, 0xC600, 0x2640], color: 'olive' }; //------------------------------------------------ // do the bit manipulation and iterate through each @@ -127,7 +336,7 @@ //------------------------------------------------ function eachblock(type, x, y, dir, fn) { var bit, result, row = 0, col = 0, blocks = type.blocks[dir]; - for(bit = 0x8000 ; bit > 0 ; bit = bit >> 1) { + for (bit = 0x8000; bit > 0; bit = bit >> 1) { if (blocks & bit) { fn(x + col, y + row); } @@ -143,8 +352,8 @@ //----------------------------------------------------- function occupied(type, x, y, dir) { var result = false - eachblock(type, x, y, dir, function(x, y) { - if ((x < 0) || (x >= nx) || (y < 0) || (y >= ny) || getBlock(x,y)) + eachblock(type, x, y, dir, function (x, y) { + if ((x < 0) || (x >= nx) || (y < 0) || (y >= ny) || getBlock(x, y)) result = true; }); return result; @@ -161,8 +370,8 @@ var pieces = []; function randomPiece() { if (pieces.length == 0) - pieces = [i,i,i,i,j,j,j,j,l,l,l,l,o,o,o,o,s,s,s,s,t,t,t,t,z,z,z,z]; - var type = pieces.splice(random(0, pieces.length-1), 1)[0]; + pieces = [i, i, i, i, j, j, j, j, l, l, l, l, o, o, o, o, s, s, s, s, t, t, t, t, z, z, z, z]; + var type = pieces.splice(random(0, pieces.length - 1), 1)[0]; return { type: type, dir: DIR.UP, x: Math.round(random(0, nx - type.size)), y: 0 }; } @@ -203,11 +412,11 @@ } function resize(event) { - canvas.width = canvas.clientWidth; // set canvas logical size equal to its physical size - canvas.height = canvas.clientHeight; // (ditto) - ucanvas.width = ucanvas.clientWidth; + canvas.width = canvas.clientWidth; // set canvas logical size equal to its physical size + canvas.height = canvas.clientHeight; // (ditto) + ucanvas.width = ucanvas.clientWidth; ucanvas.height = ucanvas.clientHeight; - dx = canvas.width / nx; // pixel size of a single tetris block + dx = canvas.width / nx; // pixel size of a single tetris block dy = canvas.height / ny; // (ditto) invalidate(); invalidateNext(); @@ -216,23 +425,23 @@ function keydown(ev) { var handled = false; if (playing) { - switch(ev.keyCode) { - case KEY.LEFT: actions.push(DIR.LEFT); handled = true; break; - case KEY.RIGHT: actions.push(DIR.RIGHT); handled = true; break; - case KEY.UP: actions.push(DIR.UP); handled = true; break; - case KEY.DOWN: actions.push(DIR.DOWN); handled = true; break; - case KEY.ESC: lose(); handled = true; break; - case KEY.SPACE: pause(); handled = true; break; + switch (ev.keyCode) { + case KEY.LEFT: actions.push(DIR.LEFT); handled = true; break; + case KEY.RIGHT: actions.push(DIR.RIGHT); handled = true; break; + case KEY.UP: actions.push(DIR.UP); handled = true; break; + case KEY.DOWN: actions.push(DIR.DOWN); handled = true; break; + case KEY.ESC: lose(); handled = true; break; + case KEY.SPACE: pause(); handled = true; break; } } else if (ev.keyCode == KEY.SPACE) { - if(paused) { - restart(); - handled = true; - }else{ - play(); - handled = true; - } + if (paused) { + restart(); + handled = true; + } else { + play(); + handled = true; + } } if (handled) ev.preventDefault(); // prevent arrow keys from scrolling the page (supported in IE9+ and all other browsers) @@ -242,24 +451,24 @@ // GAME LOGIC //------------------------------------------------------------------------- - function play() { hide('start'); reset(); paused = false; playing = true; } - function pause() {show('start'); paused = true; playing = false;} - function restart() {hide('start'); paused = false; playing = true;} + function play() { hide('start'); reset(); paused = false; playing = true; } + function pause() { show('start'); paused = true; playing = false; } + function restart() { hide('start'); paused = false; playing = true; } function lose() { show('start'); setVisualScore(); playing = false; } - function setVisualScore(n) { vscore = n || score; invalidateScore(); } - function setScore(n) { score = n; setVisualScore(n); } - function addScore(n) { score = score + n; } - function clearScore() { setScore(0); } - function clearRows() { setRows(0); } - function setRows(n) { rows = n; step = Math.max(speed.min, speed.start - (speed.decrement*rows)); invalidateRows(); } - function addRows(n) { setRows(rows + n); } - function getBlock(x,y) { return (blocks && blocks[x] ? blocks[x][y] : null); } - function setBlock(x,y,type) { blocks[x] = blocks[x] || []; blocks[x][y] = type; invalidate(); } - function clearBlocks() { blocks = []; invalidate(); } - function clearActions() { actions = []; } - function setCurrentPiece(piece) { current = piece || randomPiece(); invalidate(); } - function setNextPiece(piece) { next = piece || randomPiece(); invalidateNext(); } + function setVisualScore(n) { vscore = n || score; invalidateScore(); } + function setScore(n) { score = n; setVisualScore(n); } + function addScore(n) { score = score + n; } + function clearScore() { setScore(0); } + function clearRows() { setRows(0); } + function setRows(n) { rows = n; step = Math.max(speed.min, speed.start - (speed.decrement * rows)); invalidateRows(); } + function addRows(n) { setRows(rows + n); } + function getBlock(x, y) { return (blocks && blocks[x] ? blocks[x][y] : null); } + function setBlock(x, y, type) { blocks[x] = blocks[x] || []; blocks[x][y] = type; invalidate(); } + function clearBlocks() { blocks = []; invalidate(); } + function clearActions() { actions = []; } + function setCurrentPiece(piece) { current = piece || randomPiece(); invalidate(); } + function setNextPiece(piece) { next = piece || randomPiece(); invalidateNext(); } function reset() { dt = 0; @@ -285,20 +494,20 @@ } function handle(action) { - switch(action) { - case DIR.LEFT: move(DIR.LEFT); break; + switch (action) { + case DIR.LEFT: move(DIR.LEFT); break; case DIR.RIGHT: move(DIR.RIGHT); break; - case DIR.UP: rotate(); break; - case DIR.DOWN: drop(); break; + case DIR.UP: rotate(); break; + case DIR.DOWN: drop(); break; } } function move(dir) { var x = current.x, y = current.y; - switch(dir) { + switch (dir) { case DIR.RIGHT: x = x + 1; break; - case DIR.LEFT: x = x - 1; break; - case DIR.DOWN: y = y + 1; break; + case DIR.LEFT: x = x - 1; break; + case DIR.DOWN: y = y + 1; break; } if (unoccupied(current.type, x, y, current.dir)) { current.x = x; @@ -334,16 +543,16 @@ } function dropPiece() { - eachblock(current.type, current.x, current.y, current.dir, function(x, y) { + eachblock(current.type, current.x, current.y, current.dir, function (x, y) { setBlock(x, y, current.type); }); } function removeLines() { var x, y, complete, n = 0; - for(y = ny ; y > 0 ; --y) { + for (y = ny; y > 0; --y) { complete = true; - for(x = 0 ; x < nx ; ++x) { + for (x = 0; x < nx; ++x) { if (!getBlock(x, y)) complete = false; } @@ -355,15 +564,15 @@ } if (n > 0) { addRows(n); - addScore(100*Math.pow(2,n-1)); // 1: 100, 2: 200, 3: 400, 4: 800 + addScore(100 * Math.pow(2, n - 1)); // 1: 100, 2: 200, 3: 400, 4: 800 } } function removeLine(n) { var x, y; - for(y = n ; y >= 0 ; --y) { - for(x = 0 ; x < nx ; ++x) - setBlock(x, y, (y == 0) ? null : getBlock(x, y-1)); + for (y = n; y >= 0; --y) { + for (x = 0; x < nx; ++x) + setBlock(x, y, (y == 0) ? null : getBlock(x, y - 1)); } } @@ -373,10 +582,10 @@ var invalid = {}; - function invalidate() { invalid.court = true; } - function invalidateNext() { invalid.next = true; } - function invalidateScore() { invalid.score = true; } - function invalidateRows() { invalid.rows = true; } + function invalidate() { invalid.court = true; } + function invalidateNext() { invalid.next = true; } + function invalidateScore() { invalid.score = true; } + function invalidateRows() { invalid.rows = true; } function draw() { ctx.save(); @@ -395,13 +604,13 @@ if (playing) drawPiece(ctx, current.type, current.x, current.y, current.dir); var x, y, block; - for(y = 0 ; y < ny ; y++) { - for (x = 0 ; x < nx ; x++) { - if (block = getBlock(x,y)) + for (y = 0; y < ny; y++) { + for (x = 0; x < nx; x++) { + if (block = getBlock(x, y)) drawBlock(ctx, x, y, block.color); } } - ctx.strokeRect(0, 0, nx*dx - 1, ny*dy - 1); // court boundary + ctx.strokeRect(0, 0, nx * dx - 1, ny * dy - 1); // court boundary invalid.court = false; } } @@ -411,10 +620,10 @@ var padding = (nu - next.type.size) / 2; // half-arsed attempt at centering next piece display uctx.save(); uctx.translate(0.5, 0.5); - uctx.clearRect(0, 0, nu*dx, nu*dy); + uctx.clearRect(0, 0, nu * dx, nu * dy); drawPiece(uctx, next.type, padding, padding, next.dir); uctx.strokeStyle = 'black'; - uctx.strokeRect(0, 0, nu*dx - 1, nu*dy - 1); + uctx.strokeRect(0, 0, nu * dx - 1, nu * dy - 1); uctx.restore(); invalid.next = false; } @@ -435,15 +644,15 @@ } function drawPiece(ctx, type, x, y, dir) { - eachblock(type, x, y, dir, function(x, y) { + eachblock(type, x, y, dir, function (x, y) { drawBlock(ctx, x, y, type.color); }); } function drawBlock(ctx, x, y, color) { ctx.fillStyle = color; - ctx.fillRect(x*dx, y*dy, dx, dy); - ctx.strokeRect(x*dx, y*dy, dx, dy) + ctx.fillRect(x * dx, y * dy, dx, dy); + ctx.strokeRect(x * dx, y * dy, dx, dy) } //------------------------------------------------------------------------- @@ -455,4 +664,5 @@ - + + \ No newline at end of file From 3812ff1c1690071b8b460937cbf722b26d4aab7c Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:11:34 +0800 Subject: [PATCH 08/25] change from 150 to 200 in row 102 in index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 98c88f6..7814469 100644 --- a/index.html +++ b/index.html @@ -99,7 +99,7 @@ } #menu { - width: 150px; + width: 200px; height: 300px; } From 156f79bbee2ffe5c41a3ba7bcb0f23ef97ab64dd Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:18:18 +0800 Subject: [PATCH 09/25] dfasdfasdf --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 665afdaf6d32fab54e248a4e8b1e5781097308a0..36492b09148de5098fe3669c7bc51a6e50d59088 100644 GIT binary patch delta 53 zcmZoMXfc@J&&azmU^gQp?`9q*UPkduhFpe3hIEEhhT^i|qP(2^ymSTz2FA@I%-2~q Jvvd6A2LOE?4oUz3 delta 32 ocmZoMXfc@J&&abeU^gQp&t@JbUdGL)%$Hau7RYR7=lIJH0G;&-ng9R* From ded3c09de0b2f4badc290257fc739a992258722b Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 10:41:22 +0800 Subject: [PATCH 10/25] add the .ds_store file to get rid of the warning --- .DS_Store | Bin 6148 -> 6148 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 36492b09148de5098fe3669c7bc51a6e50d59088..f41430ea65b1c9a4912329254cf72b7c8f9017fb 100644 GIT binary patch delta 266 zcmZoMXfc=|#>B!kF;Q%yo+2aP#(>?7i!U%UG4gHZVUl31Pbx1iNXp4iVqjp{kyMbA zSzKaZaE+0PnT3^&or8m&n>{u-BfmVjB(bEl*eS6n8pI39&(BGMu@jTRGE>Xr1w@?l z^GXsk^HPhz8ZuK-fl6Y+GxJjN%boH|^HPezdV?Vn9GsjS@d6UnuGPjS209AH7RI$Y z3e}cIK(>joS#2!`hp4i?bx?eEPHtX)7tnD)z{m)p8F-;IjOyMj!Yt3UnVo~51L)Ju Y2bsS!Pv#eKB)qF;Q%yo+2af#(>?7jJ%t9SR@!X|6t{3+E{RfX)`+qKL=3FW Date: Sun, 6 Sep 2026 12:39:15 +0800 Subject: [PATCH 11/25] this is for the practice of actions --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 7814469..35db43c 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'purple' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'blue' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 100bfca79471eb714a849dcfc7f5aa116d66a7c7 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 13:07:09 +0800 Subject: [PATCH 12/25] this is for actions training on main --- .github/release-drafter.yml | 30 +++++++++++++++++++++++++++ .github/workflows/release-drafter.yml | 19 +++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-drafter.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..9ae8e0b --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,30 @@ +name-template: "v$RESOLVED_VERSION 🌈" +tag-template: "v$RESOLVED_VERSION" +categories: + - title: "🚀 Features" + labels: + - "feature" + - "enhancement" + - title: "🐛 Bug Fixes" + labels: + - "fix" + - "bugfix" + - "bug" + - title: "🧰 Maintenance" + label: "chore" +change-template: "- $TITLE @$AUTHOR (#$NUMBER)" +version-resolver: + major: + labels: + - "major" + minor: + labels: + - "minor" + patch: + labels: + - "patch" + default: patch +template: | + ## Changes + + $CHANGES diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 0000000..b04cb4f --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,19 @@ +name: Release Drafter + +on: + push: + # branches to consider in the event; optional, defaults to main + branches: + - main + +jobs: + update_release_draft: + runs-on: ubuntu-latest + steps: + # Drafts your next Release notes as Pull Requests are merged into main + - uses: release-drafter/release-drafter@v5 + with: + # Specify config name to use, relative to .github/. + config-name: release-drafter.yml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 729be68b173cf69c4f4d0853f5a2b4f3f59905ea Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 13:23:06 +0800 Subject: [PATCH 13/25] the last test on the actions activity --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 35db43c..921bf39 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'blue' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'red' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 80c15ec1136026dc2d6da209270bcda10a04e886 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 13:31:28 +0800 Subject: [PATCH 14/25] hello --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 921bf39..0ee3dd5 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'red' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'pink' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 8f887f2916f5e6dcb49c5792f00ea464e4f5f6c1 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 13:43:53 +0800 Subject: [PATCH 15/25] update the actions version from 5 to 7 in release-drafter.yml --- .DS_Store | Bin 6148 -> 10244 bytes .github/workflows/release-drafter.yml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.DS_Store b/.DS_Store index f41430ea65b1c9a4912329254cf72b7c8f9017fb..8dc7e9f63f6fea48a9680f6adb867a5c72ea5a27 100644 GIT binary patch literal 10244 zcmeHMYitx%6uxI#+8H~*w3eq#cIy_XxX_kup@87_!An{}wxth>Wp`(2$Ii~wo!KqW z)D(>m)I{Se@fY!de~gV74H$!hzes$WhD4%h#63LU4bk4A>bk4A>bi!s~~_mn-;!=QLpw8@DT72m_&enAN=@G8g}Uzqt2%TE9VG+v=G@& z!L~#jNc}DiyL60E9Kixi6)95%_lN;Z9r=D&F6`1VMwvPR_wWJk%HW<*z*!yV_dDVQ z!i;*ghk%E`R0QbRy^yRT{X`>n&iNgFyeoSwVYalybTfuLe%7TEXR9jDHRg^he>*-j zkaagu5Jpu}oLQF)kQ9lPFYRS z^hpaw zM(S(pgZ_qw(V%~1Z777z`i9X_fu9$s-mtrGP)``SZE?RrWH#$h)=y(A&!`+o z33+=O2`k;q%r1yz%)XE@Tez)6oGo{Db@zz9U0U2UBHCfKPnv6??c1@tE2*Z@=FYgO zrxJ$MCzZyddOW2^ZM9L?sW9^9TJfZ*>$^-#vo+J`?y}W`c4nfSp{^dwOxn%PWPOs9 zveexw&ZVW*7Mu~MDx<6I9HP@$d(@zDG}}x%Xxv{R z%iVOUMnzE-GiV zL--UvgU{hh_zEtPDYuxbIE!%g#356%>lQZWr*eu7F@+$s8`Sr|C1yKFgj zi!f+d_wJz2Cvh07tXos-6Qu%-M8VOm4`LVG&bsxYC>3H%vawAvc8S|*YQ|}3gz^8h zuYW@>ke|q9a)n%lA}9d~d{70epbmX|3v5IGZiP1V?=I+pz0eCP^n(Tup|{(RhJ$bj z4#Q*cI6MhY!BO<}m*8c11&+aM= Date: Sun, 6 Sep 2026 13:45:53 +0800 Subject: [PATCH 16/25] hello --- .DS_Store | Bin 10244 -> 12292 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.DS_Store b/.DS_Store index 8dc7e9f63f6fea48a9680f6adb867a5c72ea5a27..82cadd8824eb82cf8ac4abd51e95a6eba5366850 100644 GIT binary patch delta 292 zcmZn(Xh~3DU|?W$DortDV9)?EIe-{M3-ADifgASmn$QX*5Dfq@ms1_BLkAmNJa?2U=W> F007=xHLd^v delta 150 zcmZokXbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~3gIoUvmMHI+q5CURGpg2QLx?yl~ zes00$LWx=I6B~FpvvaU;FbYk+t)Ma4L_K)2FypMrixsRl^9!uz6J!Qy1)9hWBwRtJ lZWd(v&ODi4$8xegj|2x3#6pe92|6=37pm-Hnw%%*2>? Date: Sun, 6 Sep 2026 13:46:25 +0800 Subject: [PATCH 17/25] helo --- .github/.DS_Store | Bin 0 -> 8196 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/.DS_Store diff --git a/.github/.DS_Store b/.github/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f37cefb7cb9fadf697b08834279cd2039ff0a26a GIT binary patch literal 8196 zcmeHMYitx%6u#fIz>FPWS_>3pvRlh5SZoVaTM%5fkwjwDMEv6~{$K)n?%Y{IOZ!KS0iB!Nd+xdC zo-=dKe&^mjyNof!bD0Llsu*K3bxyT18m4Jn&ii#u3RX&qg7g_X#4P5p0&`P^>vo3= zVFbbmgb@fM5Jn)3z>N?Ay0dwcXSnx;G#tYSgc0~(Mu49WQR z>ThR=2^x-J1i}bh9|4{|3RUb5%d(+s>vwk~WjQI5o=S~art8($pM_LXI&1bES(eM> z1BpSWknoaT&W$It`#IO)I994SPp0;nMxkG;Y;kNaY1&5CS1>aMZRzVW?Tk~1J2^Y! z`nm}rkQGJg*A^W+*4WTk8*OSDt&JXQZeB;z#-`CxMP5)-w{dU(kTq;OCxkBu&I2}g zif>O%@0jK0TZCgJiK1iYijFC_l&N#|uI`>*wXfSuJ9ff6YV>RKUGi=xv3s&cp1kTx zJ63MkcKfyRbka)atfXgbu`Irs*59mq5!xBr)>PA`HrF7+m=VGx^y;oMc)6VcP zIpd18xZWyjpUDsM2e&0%Z}*5{7hfr^?~vtQcQBbXb{7bRMU6ID_CHu!=PFw>rsrh+ zXxv||>pk4mmQ2RTkkd=57FXyAy;Ih{B^}MQ^Csb*J_`YVxu%G`n%HVFtvNGv(4YA+ zRw|1d0?O|?ovmO^bhmX-&N=KjdzzhO@3PbEBlaab%g(c(*>CI;`<-28S5N{K6A7>_ZAeuwcW1hfzF&F&xL^cm~hnIXsV-@hV=!8+a4rIEDA| z0Y1g&_yS+yYn;a~xPV`A5tnfVe@Nxh5^0&VTv{R3N%hiNX`Qr9+Ai&pdZd&zAPou+ zq+-$?nCzK!g!pMr6H2<^G?B)qPrAtV9Xsz++iv)z`)(djvs)_{EL;>_zPfIG)21y~ z!6>j>gzL3w;3I!hzWB)Z(J>XZA|KUAC#8mQc&4<}=I|7jC;0B_+tr9Ri;_pMD^?Oa zn-WK`chp8Annd|3*!qTus+CYSD!y)GEwKog<_)T{-^Q& z4LiqvU>Dd$b_ugl1`QFc!kt)8_}+#cgz+}C6UMvIi~Z<>fdQC!h!F1~kHa{Eqj(gL z;R!s66NL8{@FHHqNxVXsf1OZ2j<@hO-ob}BjgN5#pZMsX!1wqOKTW}N`(!-h;`DgV zC$hHX*aIXjX2N8}n}aJ6uUW Date: Sun, 6 Sep 2026 13:47:14 +0800 Subject: [PATCH 18/25] hello --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 0ee3dd5..7814469 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'pink' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'purple' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 480d12c91f525baed3e8dcb61f662c26731897c9 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:06:27 +0800 Subject: [PATCH 19/25] hello --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 7814469..921bf39 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'purple' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'red' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 774570f78201c2a9046821c21d3383ab496494be Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:05:42 +0800 Subject: [PATCH 20/25] hello --- .github/release-drafter.yml | 3 ++- .github/workflows/release-drafter.yml | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 9ae8e0b..9bf885c 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -11,7 +11,8 @@ categories: - "bugfix" - "bug" - title: "🧰 Maintenance" - label: "chore" + labels: + - "chore" change-template: "- $TITLE @$AUTHOR (#$NUMBER)" version-resolver: major: diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 80ea3e5..7ecf821 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -2,16 +2,24 @@ name: Release Drafter on: push: - # branches to consider in the event; optional, defaults to main branches: - main + pull_request: + types: [opened, reopened, synchronize] + +permissions: + contents: write + pull-requests: write jobs: update_release_draft: + permissions: + contents: write + pull-requests: write runs-on: ubuntu-latest steps: # Drafts your next Release notes as Pull Requests are merged into main - - uses: release-drafter/release-drafter@v7 + - uses: release-drafter/release-drafter@v6 with: # Specify config name to use, relative to .github/. config-name: release-drafter.yml From e9263405c533acd00be217049fb72de50cf1bfb9 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:15:44 +0800 Subject: [PATCH 21/25] hellow --- .github/release-drafter.yml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 9bf885c..26ae7d1 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -2,17 +2,20 @@ name-template: "v$RESOLVED_VERSION 🌈" tag-template: "v$RESOLVED_VERSION" categories: - title: "🚀 Features" - labels: - - "feature" - - "enhancement" + when: + labels: + - "feature" + - "enhancement" - title: "🐛 Bug Fixes" - labels: - - "fix" - - "bugfix" - - "bug" + when: + labels: + - "fix" + - "bugfix" + - "bug" - title: "🧰 Maintenance" - labels: - - "chore" + when: + labels: + - "chore" change-template: "- $TITLE @$AUTHOR (#$NUMBER)" version-resolver: major: From b506df0136ca48d0ea127c450d34c2fbe58b1236 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:16:47 +0800 Subject: [PATCH 22/25] hellow --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 921bf39..b532e7b 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'red' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'green' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 53a04527e1a797a9a998ff8e49128846315cd009 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:20:40 +0800 Subject: [PATCH 23/25] hellow --- .github/release-drafter.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 26ae7d1..9bf885c 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -2,20 +2,17 @@ name-template: "v$RESOLVED_VERSION 🌈" tag-template: "v$RESOLVED_VERSION" categories: - title: "🚀 Features" - when: - labels: - - "feature" - - "enhancement" + labels: + - "feature" + - "enhancement" - title: "🐛 Bug Fixes" - when: - labels: - - "fix" - - "bugfix" - - "bug" + labels: + - "fix" + - "bugfix" + - "bug" - title: "🧰 Maintenance" - when: - labels: - - "chore" + labels: + - "chore" change-template: "- $TITLE @$AUTHOR (#$NUMBER)" version-resolver: major: From 6d4159cfd9d70f4ecbca9ecbc2f6d22d96f27985 Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 15:21:30 +0800 Subject: [PATCH 24/25] hello --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index b532e7b..bb05046 100644 --- a/index.html +++ b/index.html @@ -322,7 +322,7 @@ // //------------------------------------------------------------------------- - var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'green' }; + var i = { size: 4, blocks: [0x0F00, 0x2222, 0x00F0, 0x4444], color: 'yellow' }; var j = { size: 3, blocks: [0x44C0, 0x8E00, 0x6440, 0x0E20], color: 'pink' }; var l = { size: 3, blocks: [0x4460, 0x0E80, 0xC440, 0x2E00], color: 'salmon' }; var o = { size: 2, blocks: [0xCC00, 0xCC00, 0xCC00, 0xCC00], color: 'lime' }; From 4d72d984473dbe9bc83601a672b3eb31156feefc Mon Sep 17 00:00:00 2001 From: kyowu <138635882+KyoWuJiuJiu@users.noreply.github.com> Date: Sun, 6 Sep 2026 17:33:07 +0800 Subject: [PATCH 25/25] update README.md by adding the line of Modified during a training by @username for the training of commit signature --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d93efff..557613f 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,11 @@ A project based learning activity for people who are getting started with Git and GitHub. -You can play the game at: https://github.com/KyoWuJiuJiu/github-games +You can play the game at: >> _*SUPPORTED BROWSERS*: Chrome, Firefox, Safari, Opera and IE9+_ -This fun open source game was cloned from: https://github.com/jakesgordon/javascript-tetris +This fun open source game was cloned from: this is 为了测试 Git bisect新建一个commit +Modified during a training by @KyoWuJiuJiu