如何使用 Node 将 process.stdin 作为 Javascript 传递?
How to pass in process.stdin as Javascript with Node?
我正在 Javascript 中编写一个扑克游戏,它应该采用如下标准输入:
输入的第一行将包含一个表示玩家数量的整数。此数字将始终大于 0 且小于 8。
接下来的 n 行,其中 n 是玩家的数量,将包含一个表示玩家 ID 的整数,后跟三张 space 分隔的卡片,表示属于玩家的手牌。
打印到标准输出的输出将是获胜玩家的 ID。
但我的函数在 Javascript 中,所以...如何将此标准输入转换为整数和对象,如下所示:
function playPoker(n, cardsDealt){
// functionality
}
const num = 3;
const hands = {
'0': ['4c,', '5c', '6c'],
'1': ['Kd', '5d,', '6d'],
'2': ['Jc', 'Qd,', 'Ks'],
}
playPoker(num, hands);
我像这样玩 process.stdin 但不确定如何将输入解释为 Javascript:
将传入的整数传递给您的 playPoker
函数,然后使用计数循环遍历您的手生成逻辑,将其保存到数组,将数组传回,并使用它生成格式化字符串并确定你的赢家。
const playPoker = num => {
let i = 1;
let hands = [];
if (!isNan(parseInt(num))) {
while (i <= parseInt(num)) {
let hand = [];
// generate your hand
hands.push(hand);
i++;
}
return hands;
} else {
return 'Not a valid number';
}
}
process.stdin.on('data', data => {
const hands = playPoker(data);
const handsOut = hands.map(h => `${hands.indexOf(h)}: ${h[0]} ${h[1]} ${h[2]}`);
process.stdout.write(handsOut.toString().replace(',', '\n'));
let winner;
// decide winner
process.stdout.write(winner);
});
我正在 Javascript 中编写一个扑克游戏,它应该采用如下标准输入:
输入的第一行将包含一个表示玩家数量的整数。此数字将始终大于 0 且小于 8。
接下来的 n 行,其中 n 是玩家的数量,将包含一个表示玩家 ID 的整数,后跟三张 space 分隔的卡片,表示属于玩家的手牌。
打印到标准输出的输出将是获胜玩家的 ID。
但我的函数在 Javascript 中,所以...如何将此标准输入转换为整数和对象,如下所示:
function playPoker(n, cardsDealt){
// functionality
}
const num = 3;
const hands = {
'0': ['4c,', '5c', '6c'],
'1': ['Kd', '5d,', '6d'],
'2': ['Jc', 'Qd,', 'Ks'],
}
playPoker(num, hands);
我像这样玩 process.stdin 但不确定如何将输入解释为 Javascript:
将传入的整数传递给您的 playPoker
函数,然后使用计数循环遍历您的手生成逻辑,将其保存到数组,将数组传回,并使用它生成格式化字符串并确定你的赢家。
const playPoker = num => {
let i = 1;
let hands = [];
if (!isNan(parseInt(num))) {
while (i <= parseInt(num)) {
let hand = [];
// generate your hand
hands.push(hand);
i++;
}
return hands;
} else {
return 'Not a valid number';
}
}
process.stdin.on('data', data => {
const hands = playPoker(data);
const handsOut = hands.map(h => `${hands.indexOf(h)}: ${h[0]} ${h[1]} ${h[2]}`);
process.stdout.write(handsOut.toString().replace(',', '\n'));
let winner;
// decide winner
process.stdout.write(winner);
});