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.
May 15, 2025 - 22:56 | | CBC News - Canada
The country’s chief public health officer says the spread of measles could continue for a year and she is urging all Canadians to make sure their vaccinations are up to date.Theresa Tam, whose term will come to an end next month, told The Globe and Mail in an interview this week that if cases extend beyond October, the country will lose its measles elimination status and the virus will be considered endemic. This means the virus will continue to circulate domestically.
May 15, 2025 - 21:21 | Kristy Kirkup | The Globe and Mail
An investigation by Ontario‘s ethics watchdog has found that a former top aide to Premier Doug Ford violated lobbying rules more than two years ago.According to a notice on the Integrity Commissioner of Ontario website posted Thursday, Amin Massoudi failed to register when he lobbied a public office holder about a client’s request during a phone call. Mr. Massoudi knowingly placed the person in a position of potential conflict of interest, Integrity Commissioner Cathryn Motherwell’s office said, because Mr. Massoudi had offered the public office holder a ticket to a Toronto Raptors...
May 15, 2025 - 20:45 | Laura Stone | The Globe and Mail
Comments
Be the first to comment