使用typeScript实现:1、A、B两人比较手牌大小,A有40%概率赢,60%概率输;B有60%概率赢,40%概率输;2、根据输赢类型,从cardCompareArr = { "0" : [ 11,12,14], "1" : [ 11,13,15], "2" : [ 13,14,16], "3" : [ 14,14,15], "4" : [ 15,15,15], "5" : [ 16,16,16] }各随机一组数据给A、B
时间: 2024-03-09 09:46:56 浏览: 24
以下是使用 TypeScript 实现的代码:
```typescript
const cardCompareArr: {[key: string]: number[]} = {
"0" : [ 11,12,14],
"1" : [ 11,13,15],
"2" : [ 13,14,16],
"3" : [ 14,14,15],
"4" : [ 15,15,15],
"5" : [ 16,16,16]
};
// A和B比较手牌大小,返回值为1表示A赢,为-1表示B赢,为0表示平局
function compareCards(cardA: number[], cardB: number[]): number {
let sumA = cardA.reduce((acc, cur) => acc + cur, 0);
let sumB = cardB.reduce((acc, cur) => acc + cur, 0);
if (sumA > sumB) {
return 1;
} else if (sumA < sumB) {
return -1;
} else {
return 0;
}
}
// 返回一个布尔值,表示A是否赢得比赛
function playGame(): boolean {
let winA = Math.random() < 0.4;
let winB = Math.random() < 0.6;
if (winA && !winB) {
return true;
} else if (!winA && winB) {
return false;
} else {
let randA = Math.floor(Math.random() * 6);
let randB = Math.floor(Math.random() * 6);
let cardA = cardCompareArr[randA];
let cardB = cardCompareArr[randB];
let result = compareCards(cardA, cardB);
if (result === 1) {
return true;
} else if (result === -1) {
return false;
} else {
// 平局重新开始比赛
return playGame();
}
}
}
// 测试代码
let winCountA = 0;
let winCountB = 0;
for (let i = 0; i < 10000; i++) {
if (playGame()) {
winCountA++;
} else {
winCountB++;
}
}
console.log(`A赢得比赛的概率为${winCountA / 100}%`);
console.log(`B赢得比赛的概率为${winCountB / 100}%`);
```
在这个代码中,我们定义了一个 `cardCompareArr` 对象,其中包含了六组手牌数据,每组手牌数据都是一个包含三个元素的数组。我们还定义了 `compareCards` 函数,用于比较两个手牌的大小。最后,我们定义了一个 `playGame` 函数,用于模拟比赛的过程,并返回一个布尔值,表示A是否赢得比赛。最后,我们使用一个循环来测试 `playGame` 函数,模拟10000次比赛,并统计A和B分别赢得比赛的次数,计算出胜率。