From 19035205d587d42eba189b66f740b68faf796a9d Mon Sep 17 00:00:00 2001 From: esemv07 <143578634+esemv07@users.noreply.github.com> Date: Sat, 1 Feb 2025 22:09:25 +1100 Subject: [PATCH] Sprig App - Card Match --- games/Card-Match.js | 1184 ++++++++++++++++++++++++++++++++++++++ games/img/Card-Match.png | Bin 0 -> 10201 bytes 2 files changed, 1184 insertions(+) create mode 100644 games/Card-Match.js create mode 100644 games/img/Card-Match.png diff --git a/games/Card-Match.js b/games/Card-Match.js new file mode 100644 index 0000000000..5d6ba844ea --- /dev/null +++ b/games/Card-Match.js @@ -0,0 +1,1184 @@ +/* +First time? Check out the tutorial game: +https://sprig.hackclub.com/gallery/getting_started + +@title: Card Match +@author: +@tags: [] +@addedOn: 2024-00-00 +*/ + + +var cards_flipped = 0 +var game_started = false +var total_flipped = 0 + +var cards_1_14 = 0 +var cards_2_8 = 0 +var cards_3_9 = 0 +var cards_4_12 = 0 +var cards_5_6 = 0 +var cards_7_13 = 0 +var cards_10_16 = 0 +var cards_11_15 = 0 + +const flip_1 = "!" +const flip_14 = "@" +const flip_2 = "#" +const flip_8 = "$" +const flip_3 = "%" +const flip_9 = "^" +const flip_4 = "&" +const flip_12 = "*" +const flip_5 = "(" +const flip_6 = ")" +const flip_7 = "1" +const flip_13 = "2" +const flip_10 = "3" +const flip_16 = "4" +const flip_11 = "5" +const flip_15 = "6" + +const player = "p" +const card1 = "c" +const card2 = "d" +const card3 = "g" +const card4 = "h" +const card5 = "i" +const card6 = "j" +const card7 = "k" +const card8 = "l" +const card9 = "m" +const card10 = "n" +const card11 = "o" +const card12 = "q" +const card13 = "r" +const card14 = "s" +const card15 = "t" +const card16 = "u" +const edge = "e" + +var prev_card = card1 +var prev_flip = flip_1 +var prev_match = cards_1_14 + +setLegend( + [ player, bitmap` +4444444444444444 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4..............4 +4444444444444444` ], + [ card1, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card2, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card3, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card4, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card5, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card6, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card7, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card8, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card9, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card10, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card11, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card12, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card13, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card14, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card15, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ card16, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HH6HHHH6HH... +...HH6H66H6HH... +...HH666666HH... +...HH666666HH... +...HHHHHHHHHH... +...HHHHHHHHHH... +...HHHHHHHHHH... +................ +................ +................`], + [ edge, bitmap ` +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111 +1111111111111111`], + [ flip_1, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22266222H... +...H22666622H... +...H26600662H... +...H26600662H... +...H22666622H... +...H22266222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_14, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22266222H... +...H22666622H... +...H26600662H... +...H26600662H... +...H22666622H... +...H22266222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_2, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H27222272H... +...H22722722H... +...H22277222H... +...H22277222H... +...H22722722H... +...H27222272H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_8, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H27222272H... +...H22722722H... +...H22277222H... +...H22277222H... +...H22722722H... +...H27222272H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_3, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22233222H... +...H24242242H... +...H24224242H... +...H22442422H... +...H22424422H... +...H22244222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_9, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22233222H... +...H24242242H... +...H24224242H... +...H22442422H... +...H22424422H... +...H22244222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_4, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22822822H... +...H28288282H... +...H28222282H... +...H22822822H... +...H22288222H... +...H22000022H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [ flip_12, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22822822H... +...H28288282H... +...H28222282H... +...H22822822H... +...H22288222H... +...H22000022H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_5, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H222FF222H... +...H222FF222H... +...H2FFFFFF2H... +...H2FFFFFF2H... +...H222FF222H... +...H222FF222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_6, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H222FF222H... +...H222FF222H... +...H2FFFFFF2H... +...H2FFFFFF2H... +...H222FF222H... +...H222FF222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_7, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H27299272H... +...H22799722H... +...H29999992H... +...H29999992H... +...H22799722H... +...H27299272H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_13, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H27299272H... +...H22799722H... +...H29999992H... +...H29999992H... +...H22799722H... +...H27299272H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_10, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H2LLLLLL2H... +...H2LLLLLL2H... +...H222LL222H... +...H222LL222H... +...H222LL222H... +...H222LL222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_16, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H2LLLLLL2H... +...H2LLLLLL2H... +...H222LL222H... +...H222LL222H... +...H222LL222H... +...H222LL222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_11, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22222222H... +...H22266222H... +...H22622622H... +...H26222262H... +...H26666662H... +...H22222222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`], + [flip_15, bitmap ` +................ +................ +................ +...HHHHHHHHHH... +...H22222222H... +...H22222222H... +...H22266222H... +...H22622622H... +...H26222262H... +...H26666662H... +...H22222222H... +...H22222222H... +...HHHHHHHHHH... +................ +................ +................`]) + +setSolids([player, edge]) + +let level = 0 +const levels = [ + map` +eeeeeeee +eecdghee +eeijklee +eemnoqee +eerstuee +eeeeeeee`, + map ` +eeeeeeee +ee!#%*ee +ee((1#ee +ee%35*ee +ee1!53ee +eeeeeeee` +] + + +setMap(levels[level]) + +setPushables({ + [ player ]: [] +}) + +onInput("w", () => { + getFirst(player).y -= 1 +}) +onInput("a", () => { + getFirst(player).x -= 1 +}) +onInput("s", () => { + getFirst(player).y += 1 +}) +onInput("d", () => { + getFirst(player).x += 1 +}) + +onInput("i", () => { + if (!game_started) { + game_started = true + addSprite(2, 1, player) + clearText() + addText("Press 'k' to flip", { + x: 2, + y: 14, + color: color`6` + }) + } +}) + +onInput("k", () => { + if ((getFirst(player).x == 2) & (getFirst(player).y == 1)){ + getFirst(card1).type = flip_1 + cards_1_14 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_1_14 < 2)) { + cards_1_14 = 0 + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_1).type = card1 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_1_14 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card1 + prev_flip = flip_1 + prev_match = cards_1_14 + } + } + if ((getFirst(player).x == 3) & (getFirst(player).y == 4)){ + getFirst(card14).type = flip_14 + cards_1_14 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_1_14 < 2)) { + cards_1_14 = 0 + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_14).type = card14 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_1_14 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card14 + prev_flip = flip_14 + prev_match = cards_1_14 + } + } + if ((getFirst(player).x == 3) & (getFirst(player).y == 1)){ + getFirst(card2).type = flip_2 + cards_2_8 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_2_8 < 2)) { + cards_2_8 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_2).type = card2 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_2_8 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card2 + prev_flip = flip_2 + prev_match = cards_2_8 + } + } + if ((getFirst(player).x == 5) & (getFirst(player).y == 2)) { + getFirst(card8).type = flip_8 + cards_2_8 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_2_8 < 2)) { + cards_2_8 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_8).type = card8 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_2_8 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card8 + prev_flip = flip_8 + prev_match = cards_2_8 + } + } + if ((getFirst(player).x == 4) & (getFirst(player).y == 1)) { + getFirst(card3).type = flip_3 + cards_3_9 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_3_9 < 2)) { + cards_3_9 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_3).type = card3 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_3_9 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card3 + prev_flip = flip_3 + prev_match = cards_3_9 + } + } + if ((getFirst(player).x == 2) & (getFirst(player).y == 3)) { + getFirst(card9).type = flip_9 + cards_3_9 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_3_9 < 2)) { + cards_3_9 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_9).type = card9 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_3_9 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card9 + prev_flip = flip_9 + prev_match = cards_3_9 + } + } + if ((getFirst(player).x == 5) & (getFirst(player).y == 1)) { + getFirst(card4).type = flip_4 + cards_4_12 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_4_12 < 2)) { + cards_4_12 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_4).type = card4 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_4_12 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card4 + prev_flip = flip_4 + prev_match = cards_4_12 + } + } + if ((getFirst(player).x == 5) & (getFirst(player).y == 3)) { + getFirst(card12).type = flip_12 + cards_4_12 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_4_12 < 2)) { + cards_4_12 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_12).type = card12 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_4_12 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card12 + prev_flip = flip_12 + prev_match = cards_4_12 + } + } + if ((getFirst(player).x == 2) & (getFirst(player).y == 2)) { + getFirst(card5).type = flip_5 + cards_5_6 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_5_6 < 2)) { + cards_5_6 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_5).type = card5 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_5_6 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card5 + prev_flip = flip_5 + prev_match = cards_5_6 + } + } + if ((getFirst(player).x == 3) & (getFirst(player).y == 2)) { + getFirst(card6).type = flip_6 + cards_5_6 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_5_6 < 2)) { + cards_5_6 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_6).type = card6 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_5_6 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card6 + prev_flip = flip_6 + prev_match = cards_5_6 + } + } + if ((getFirst(player).x == 4) & (getFirst(player).y == 2)) { + getFirst(card7).type = flip_7 + cards_7_13 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_7_13 < 2)) { + cards_7_13 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_7).type = card7 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_7_13 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card7 + prev_flip = flip_7 + prev_match = cards_7_13 + } + } + if ((getFirst(player).x == 2) & (getFirst(player).y == 4)) { + getFirst(card13).type = flip_13 + cards_7_13 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_7_13 < 2)) { + cards_7_13 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_13).type = card13 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_7_13 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card13 + prev_flip = flip_13 + prev_match = cards_7_13 + } + } + if ((getFirst(player).x == 3) & (getFirst(player).y == 3)) { + getFirst(card10).type = flip_10 + cards_10_16 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_10_16 < 2)) { + cards_10_16 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_10).type = card10 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_10_16 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card10 + prev_flip = flip_10 + prev_match = cards_10_16 + } + } + if ((getFirst(player).x == 5) & (getFirst(player).y == 4)) { + getFirst(card16).type = flip_16 + cards_10_16 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_10_16 < 2)) { + cards_10_16 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_11_15) {cards_11_15 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_16).type = card16 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_10_16 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card16 + prev_flip = flip_16 + prev_match = cards_10_16 + } + } + if ((getFirst(player).x == 4) & (getFirst(player).y == 3)) { + getFirst(card11).type = flip_11 + cards_11_15 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_11_15 < 2)) { + cards_11_15 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_11).type = card11 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_11_15 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card11 + prev_flip = flip_11 + prev_match = cards_11_15 + } + } + if ((getFirst(player).x == 4) & (getFirst(player).y == 4)) { + getFirst(card15).type = flip_15 + cards_11_15 += 1 + cards_flipped += 1 + if ((cards_flipped == 2) & (cards_11_15 < 2)) { + cards_11_15 = 0 + if (prev_match == cards_1_14) {cards_1_14 = 0} + if (prev_match == cards_2_8) {cards_2_8 = 0} + if (prev_match == cards_3_9) {cards_3_9 = 0} + if (prev_match == cards_4_12) {cards_4_12 = 0} + if (prev_match == cards_5_6) {cards_5_6 = 0} + if (prev_match == cards_7_13) {cards_7_13 = 0} + if (prev_match == cards_10_16) {cards_10_16 = 0} + setTimeout(() => { + cards_flipped = 0 + getFirst(flip_15).type = card15 + getFirst(prev_flip).type = prev_card + }, 1000) + } + if (cards_11_15 == 2) { + total_flipped += 2 + cards_flipped = 0 + } + if (cards_flipped == 1) { + prev_card = card15 + prev_flip = flip_15 + prev_match = cards_11_15 + } + } + if (total_flipped == 16){ + clearText() + getFirst(player).remove() + level = level + 1 + addText("You Win!", { + x: 6, + y: 1, + color: color`6` + }) + } +}) + +afterInput(() => { + +}) + + +addText("Press 'i' to Start", { + x: 1, + y: 1, + color: color`6` +}) \ No newline at end of file diff --git a/games/img/Card-Match.png b/games/img/Card-Match.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad23d512b42c52606d702742087d4eee2d199a9 GIT binary patch literal 10201 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 k@1>Xie=qQ7E~@o|;@