石头剪刀布{
输入的手势:0代表石头,1代表剪刀,2代表布
注:程序需要提前打开控制台}
//人机壳输赢,五局三胜
//变量:猜拳次数,人和电脑胜利字数,人和电脑手势
//常量:石头--->0 剪刀--->1 布--->2 胜利的最大局数3
var counter = 0; //猜拳次数
var playerWinCounter = 0;//人胜利次数
var compterWinCounter = 0;//电脑胜利次数
var playSelect = 0;//人的手势
var compterSelect = 0;//电脑手势
const STONE = 0;//石头
const SCISSOR = 1;//剪刀
const PAPER = 2;//布
const MAX_WIN_COUNT = 3;//胜利的最大局数
//当玩家和电脑胜利次数比MAX_WIN_COUNT胜利最大局数大时候:结束
while (playerWinCounter < MAX_WIN_COUNT && compterWinCounter < MAX_WIN_COUNT) {
counter++;
console.log('******第' + counter + '局开始******');
//玩家输入
var input = parseInt(prompt('输入手势对应数字:石头->0 剪刀->1 布->2 ' + '第' + counter + '局'));
playSelect = input;
//playSelect = ~~(Math.random() * (PAPER + 1 - STONE) + STONE);
//电脑随机
compterSelect = ~~(Math.random() * (PAPER + 1 - STONE) + STONE);
//进行提示,告诉玩家和电脑都出的啥
switch (playSelect) {
case STONE:
console.log('玩家出的是石头');
break;
case SCISSOR:
console.log('玩家出的是剪刀');
break;
case PAPER:
console.log('玩家出的是布');
break;
}
switch (compterSelect) {
case STONE:
console.log('电脑出的石头');
break;
case SCISSOR:
console.log('电脑出的是剪刀');
break;
case PAPER:
console.log('电脑出的是布');
break;
}
//进行判断,并打印谁赢,并给某胜利局数+1
//3*3=9 所有可能的结果
switch (playSelect) {
case STONE://玩家石头
if (compterSelect === STONE) {//石头
console.log('平局')
} else if (compterSelect === SCISSOR) {//剪刀
console.log('玩家赢');
playerWinCounter++;
} else {//布
console.log('电脑赢');
compterWinCounter++;
}
break;
case SCISSOR://玩家出剪刀
if (compterSelect === STONE) {//石头
console.log('电脑胜利');
compterWinCounter++;
} else if (compterSelect === SCISSOR) {//剪刀
console.log('平局');
} else {//布
console.log('玩家赢');
playerWinCounter++;
}
break;
case PAPER:
if (compterSelect === STONE) {//石头
console.log('玩家赢');
playerWinCounter++;
} else if (compterSelect === SCISSOR) {//剪刀
console.log('电脑胜利');
compterWinCounter++;
} else {//布
console.log('平局')
}
break;
}
//打印当前一局的分.
console.log(`当前比分【玩家】vs【电脑】==${playerWinCounter}:${compterWinCounter}`);
console.log('******第' + counter + '局结束******')
}
//当while不成立后,打印最终比赛结果
if (playerWinCounter === MAX_WIN_COUNT) {
console.log(`当前比分【玩家】vs【电脑】==${playerWinCounter}:${compterWinCounter}`);
console.log('玩家胜利');
} else {
console.log(`最终比分【电脑】vs【玩家】==${compterWinCounter}:${playerWinCounter}`);
console.log('电脑胜利');
}