Source Feed: Walrus
Author: The Walrus Staff
Publication Date: April 17, 2025 - 14:00
Play Election Debate Bingo with The Walrus!
April 17, 2025

There have been few certainties in the 2025 federal election, except perhaps the slogans and talking points that the party leaders are glued to. Heading into the English debate, we might not be confident of the overall outcome of the evening—or even the final vote tally on April 28—but we are pretty sure that Pierre Poilievre will raise the spectre of wokeness, Mark Carney will likely be in good-for-the-economy banker mode, Jagmeet Singh will look dapper and bring up housing, Trump will haunt the proceedings, and everyone will try to prove their uber-Canadian patriotism. Well, maybe not Yves-François Blanchet.
And so we’ve created debate-night Bingo. Will anyone throw out an “elbows up”? Will Alberta separatism crash the conversation? Follow along and see how quickly you can fill a row.
#page {
overflow: scroll;
}
.hm-related-posts {
padding-top: 80px;
}
@media only screen and (max-width: 768px) {
.hm-related-posts {
display: none;
}
.sidebar-above-footer {
margin-top: 60px;
}
}
@media only screen and (max-width: 744px) {
.sidebar-above-footer {
margin-top: 120px;
}
}
@media only screen and (max-width: 658px) {
.sidebar-above-footer {
margin-top: 160px;
}
}
@media only screen and (max-width: 637px) {
.sidebar-above-footer {
margin-top: 160px;
}
}
.entry-content {
height: 2200px;
}
.code-block-2,
#bingo_container > br,
#bingo_container--mobile > br,
#bingo_container > p,
#bingo_container--mobile > p,
#bingo_overlay > p,
#bingo_overlay--mobile > p,
#bingo_overlay > br,
#bingo_overlay--mobile > br,
.code-block-1,
.bingo_top > p,
.bingo_top--mobile > p,
.bingo_top > br,
.bingo_top--mobile > br,
.bingo_top__header > p,
.bingo_top__header--mobile > p,
.bingo_top__buttons > br,
.bingo_top__buttons--mobile > br,
.bingo_top__buttons button > br,
.bingo_top__buttons--mobile button > br,
.bingo_overlay__close > br,
.bingo_overlay__close--mobile > br,
.bingos > br,
.bingos--mobile > br,
.code-block-4 {
display: none !important;
}
#bingo_container,
#bingo_container--mobile {
display: block;
position: relative;
width: 100%;
max-width: 1000px;
height: 950px;
background-color: black;
}
#bingo_container--mobile {
border: 0;
height: 1300px;
}
#bingo_overlay,
#bingo_overlay--mobile {
position: absolute;
width: 100%;
height: 100%;
z-index: 101;
justify-content: center;
align-items: center;
background-color: #ffffff9c;
backdrop-filter: blur(2px);
display: none;
top: 0;
height: 735px;
}
#bingo_overlay--mobile {
height: 1130px;
}
#bingo_overlay--mobile div img {
width: 80%;
display: block;
margin: 0 auto;
}
.bingo_overlay__close {
position: absolute;
color: black;
top: 0;
right: 0;
font-size: 32px;
font-weight: bold;
margin: 12px 21px 0;
cursor: pointer;
background: none;
border: 0;
padding: 0;
text-decoration: none;
}
button.bingo_overlay__close:hover {
padding: 0;
text-decoration: none;
background: none;
color: black;
}
.bingo_card {
display: grid;
width: 100%;
position: absolute;
border: 3px black solid;
box-sizing: border-box;
}
.bingos {
display: grid;
grid-template-columns: 20% 20% 20% 20% 20%;
grid-template-rows: 5;
width: 100%;
position: absolute;
padding: 16px;
box-sizing: border-box;
}
.bingos--mobile {
grid-template-columns: 33% 33% 33%;
grid-template-rows: 7;
}
.bingo {
width: 100%;
height: 147px;
border: 1px black solid;
background-color: #f2f0eb !important;
cursor: pointer;
font-family: "Poppins", sans-serif;
font-weight: bold;
font-size: 16px;
letter-spacing: 0.5px;
border: 3px black solid;
box-sizing: border-box;
color: black;
text-transform: uppercase;
display: flex;
align-items: center;
justify-content: center;
}
.bingo--mobile {
grid-template-columns: 33% 34% 33%;
width: 100%;
font-size: 14px;
letter-spacing: 0.7px;
padding: 2px;
}
.bingo--mobile img {
max-width: 80%;
max-height: 60px;
}
.bingo label {
cursor: pointer;
white-space: pre-wrap;
}
.bingo:active,
.bingo:hover {
background: #fb5954 !important;
background-color: #fb5954 !important;
color: white;
text-decoration: none !important;
}
.bingo.checked {
background-color: #f05053 !important;
color: white;
}
#bingo-13,
#bingo-11-mobile {
cursor: initial;
background-color: black !important;
padding: 21px;
}
.bingo_top {
width: 100%;
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
padding: 16px;
box-sizing: border-box;
}
.bingo_top--mobile {
padding: 16px;
flex-flow: column nowrap;
gap: 32px;
box-sizing: border-box;
}
.bingo_top__header {
font-family: "PT Serif", serif;
font-size: 46px;
color: white;
letter-spacing: 5.5px;
margin-left: 12px;
line-height: 160%;
font-weight: bold;
}
.bingo_top__header--mobile {
font-size: 24px;
letter-spacing: 2.4px;
}
.bingo_top__header span {
font-size: 80px;
display: flex;
align-items: center;
gap: 12px;
letter-spacing: 9.5px;
}
.bingo_top__header--mobile span {
font-size: 48px;
letter-spacing: 4.8px;
}
.bingo_top__header img {
width: 30px;
height: 30px;
}
.bingo_top__buttons {
display: flex;
flex-flow: column nowrap;
justify-content: flex-end;
gap: 20px;
padding-bottom: 12px;
margin-right: 12px;
}
.bingo_top__buttons--mobile {
margin-left: 12px;
}
.bingo_top__buttons button,
.bingo_top__buttons button:visited {
width: 130px;
height: 36px;
border-radius: 18px;
font-family: "Poppins", serif;
font-size: 14px;
letter-spacing: 0.7px;
font-weight: bold;
background-color: black;
color: white;
border: 2px white solid;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
text-decoration: none !important;
}
.bingo_top__buttons button:hover {
background-color: white;
color: black;
}
.bingo input {
width: 100%;
height: 100%;
display: none;
}
@media print {
html,
body {
height: 100vh;
margin: 0 !important;
padding: 0 !important;
overflow: hidden;
visibility: hidden;
}
#bingo_container {
visibility: visible;
display: block !important;
background-color: white;
border-color: white;
position: absolute;
top: -140px;
left: 0;
width: 100%;
height: 100%;
}
.bingo_card {
border: 0;
}
.bingo_top__buttons {
display: none;
}
.bingo_top__header {
color: black !important;
print-color-adjust: exact;
-webkit-print-color-adjust: exact;
}
#bingo_container * {
print-color-adjust: exact;
-webkit-print-color-adjust: exact;
}
}
#bingo_container {
display: block;
min-width: 675px;
}
#bingo_container--mobile {
display: none;
}
DEBATE NIGHT
BINGO
NEW CARD
PRINT
✕
DEBATE NIGHT
BINGO
NEW CARD
✕
let data = JSON.parse(localStorage.getItem("bingoData"));
const possibleAnswers = [
"Carbon tax",
"Elbows up",
"Housing",
"Capital gains",
"Security clearance",
"Crime",
"Quebec",
"Cost of living",
"Economy",
"Trump",
"Trade",
"Tariffs",
"Prices",
"Alberta",
"Deficit",
"Common sense",
"Border",
"Armed forces",
"Arctic",
"Sovereign",
"Ready for better",
"Brookfield",
"Woke",
"CBC",
];
const bingoArrays = [
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[1, 6, 11, 16, 21],
[2, 7, 12, 17, 22],
[3, 8, 18, 23],
[4, 9, 14, 19, 24],
[5, 10, 15, 20, 25],
[1, 7, 19, 25],
[5, 9, 17, 21],
];
const arrayLength = possibleAnswers.length;
if (data !== null) {
fillCard(data);
} else {
fillCard(newCard());
}
function Bingo(val, checked) {
this.val = val;
this.checked = checked;
}
function newCard() {
let finalArray = [...possibleAnswers];
for (let n = finalArray.length - 1; n > 0; n--) {
var j = Math.floor(Math.random() * (n + 1));
var temp = finalArray[n];
finalArray[n] = finalArray[j];
finalArray[j] = temp;
}
for (let n = 0; n < finalArray.length; n++) {
finalArray[n] = new Bingo(finalArray[n], false);
console.log(finalArray);
}
finalArray.splice(12, 0, new Bingo("CENTER", null));
console.log(finalArray);
for (let n = 0; n < 25; n++) {
if (n == 12) {
continue;
} else {
const elem = document.getElementById(
`bingo-` + (n + 1)
);
document.getElementById(
`bingo-` + (n + 1) + `-checkbox`
).checked = false;
elem.classList.remove("checked");
}
}
document.getElementById("bingo_overlay").style.display = "none";
checkBingos();
data = finalArray;
localStorage.setItem("bingoData", JSON.stringify(finalArray));
return finalArray;
}
function fillCard(data) {
for (let n = 0; n < 25; n++) {
if (n == 12) {
continue;
} else {
const elem = document.getElementById(
`bingo-` + (n + 1)
);
elem.getElementsByTagName("label")[0].innerHTML =
data[n].val;
document.getElementById(
`bingo-` + (n + 1) + `-checkbox`
).checked = data[n].checked;
if (data[n].checked) {
elem.classList.toggle("checked");
}
}
}
checkBingos();
}
function checkBingos() {
let checkedArray = [];
for (let n = 0; n < 25; n++) {
if (n == 12) {
continue;
} else {
if (
document.getElementById(
`bingo-` + (n + 1) + `-checkbox`
).checked
) {
checkedArray.push(n + 1);
}
}
}
let bingo;
for (let i = 0; i < bingoArrays.length; i++) {
bingo = bingoArrays[i].every((n) =>
checkedArray.includes(n)
);
if (bingo) {
document.getElementById("bingo_overlay").style.display =
"flex";
}
}
}
function clickBingoHandler(id) {
const element = document.getElementById(id);
element.classList.toggle("checked");
const checkbox = document.getElementById(id + "-checkbox");
checkbox.checked = !checkbox.checked;
const arrayPosition =
id[id.length - 2] == "-" ? id.slice(-1) : id.slice(-2);
data[arrayPosition - 1].checked =
!data[arrayPosition - 1].checked;
localStorage.setItem("bingoData", JSON.stringify(data));
checkBingos();
}
let dataMobile = JSON.parse(
localStorage.getItem("bingoDataMobile")
);
const possibleAnswersMobile = [
"Carbon tax",
"Elbows up",
"Housing",
"Capital gains",
"Security clearance",
"Crime",
"Quebec",
"Cost of living",
"Economy",
"Trump",
"Trade",
"Tariffs",
"Prices",
"Alberta",
"Deficit",
"Common sense",
"Border",
"Armed forces",
"Arctic",
"Sovereign",
"Ready for better",
"Brookfield",
"Woke",
"CBC",
];
const bingoArraysMobile = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 12],
[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[1, 4, 7, 10, 13, 16, 19],
[2, 5, 8, 14, 17, 20],
[3, 6, 9, 12, 15, 18, 21],
];
const arrayLengthMobile = possibleAnswersMobile.length;
if (dataMobile !== null) {
console.log("mobile not null");
fillCardMobile(dataMobile);
} else {
console.log("mobile null");
fillCardMobile(newCardMobile());
}
function Bingo(val, checked) {
this.val = val;
this.checked = checked;
}
function newCardMobile() {
let finalArray = [...possibleAnswersMobile];
for (let n = finalArray.length - 1; n > 0; n--) {
var j = Math.floor(Math.random() * (n + 1));
var temp = finalArray[n];
finalArray[n] = finalArray[j];
finalArray[j] = temp;
}
for (let n = 0; n < finalArray.length; n++) {
finalArray[n] = new Bingo(finalArray[n], false);
console.log(finalArray);
}
finalArray.splice(12, 0, new Bingo("CENTER", null));
console.log(finalArray);
for (let n = 0; n < 21; n++) {
if (n == 10) {
continue;
} else {
const elem = document.getElementById(
`bingo-` + (n + 1) + `-mobile`
);
console.log(
"elem",
elem,
`bingo-` + (n + 1) + `-mobile`
);
document.getElementById(
`bingo-` + (n + 1) + `-checkbox-mobile`
).checked = false;
elem.classList.remove("checked");
}
}
document.getElementById("bingo_overlay--mobile").style.display =
"none";
checkBingos();
data = finalArray;
localStorage.setItem(
"bingoDataMobile",
JSON.stringify(finalArray)
);
return finalArray;
}
function fillCardMobile(data) {
for (let n = 0; n < 21; n++) {
if (n == 10) {
continue;
} else {
const elem = document.getElementById(
`bingo-` + (n + 1) + `-mobile`
);
elem.getElementsByTagName("label")[0].innerHTML =
data[n].val;
document.getElementById(
`bingo-` + (n + 1) + `-checkbox-mobile`
).checked = data[n].checked;
if (data[n].checked) {
elem.classList.toggle("checked");
}
}
}
checkBingosMobile();
}
function checkBingosMobile() {
let checkedArray = [];
for (let n = 0; n < 21; n++) {
if (n == 10) {
continue;
} else {
if (
document.getElementById(
`bingo-` + (n + 1) + `-checkbox-mobile`
).checked
) {
checkedArray.push(n + 1);
}
}
}
let bingo;
for (let i = 0; i < bingoArraysMobile.length; i++) {
bingo = bingoArraysMobile[i].every((n) =>
checkedArray.includes(n)
);
if (bingo) {
document.getElementById(
"bingo_overlay--mobile"
).style.display = "flex";
}
}
}
function clickBingoHandlerMobile(id) {
const element = document.getElementById(id);
element.classList.toggle("checked");
const idMobile = id.slice(0, -7);
console.log("idMob", idMobile);
const checkbox = document.getElementById(
idMobile + "-checkbox-mobile"
);
console.log("checkbox", checkbox.id, checkbox.checked);
checkbox.checked = !checkbox.checked;
const arrayPosition =
id[7] == "-" ? id.slice(6, 7) : id.slice(6, 8);
data[arrayPosition - 1].checked =
!data[arrayPosition - 1].checked;
localStorage.setItem("bingoDataMobile", JSON.stringify(data));
checkBingosMobile();
}
The post Play Election Debate Bingo with The Walrus! first appeared on The Walrus.
An official with Elections Canada says the seat for a Quebec riding has flipped from the Bloc Québécois to the Liberals by a single vote after a judicial recount was completed.Elections Canada says the seat for the Montreal-area riding of Terrebonne has now gone to Tatiana Auguste, bringing the Liberals to 170 seats in the House of Commons.Elections Canada had said the difference between Auguste and incumbent Bloc Québécois MP Nathalie Sinclair-Desgagne was 44 votes following an earlier count.
May 10, 2025 - 20:55 | | The Globe and Mail
People exiting the United States by vehicle could be photographed at the border crossings,
WIRED reported on Friday.
No timeline was provided for when this system comes into effect.
The photographs taken at the border crossings will be matched to commuters’ travel documents such as passports, green cards and visas to verify identity. When implemented, the system will impact outbound lanes going to Canada and Mexico.
This will be an expansion to the...
May 10, 2025 - 20:50 | National Post Staff | National Post
Moose Jaw's recent point-in-time homeless count shows the number of people experiencing homelessness in the city has doubled within the last year.
May 10, 2025 - 20:25 | Kat Ludwig | Global News - Canada
Comments
Be the first to comment