用typeScript 生成一个3*5的slot游戏,要求判断每一行的内容是否一致
时间: 2023-06-17 17:07:01 浏览: 55
以下是一个 TypeScript 实现的 3x5 的 Slot 游戏,可以判断每一行的内容是否一致:
```typescript
type SlotSymbol = 'cherry' | 'lemon' | 'orange' | 'plum' | 'bell' | 'bar';
class SlotMachine {
private grid: SlotSymbol[][];
constructor() {
this.grid = [];
for (let i = 0; i < 3; i++) {
const row: SlotSymbol[] = [];
for (let j = 0; j < 5; j++) {
row.push(this.getRandomSymbol());
}
this.grid.push(row);
}
}
private getRandomSymbol(): SlotSymbol {
const symbols: SlotSymbol[] = ['cherry', 'lemon', 'orange', 'plum', 'bell', 'bar'];
return symbols[Math.floor(Math.random() * symbols.length)];
}
public spin(): void {
for (let i = 0; i < 3; i++) {
const row = this.grid[i];
const isMatch = row.every((symbol) => symbol === row[0]);
console.log(`Row ${i + 1}: ${row.join(' | ')} - ${isMatch ? 'Match!' : 'No match'}`);
}
}
}
const slotMachine = new SlotMachine();
slotMachine.spin();
```
该实现采用了 TypeScript 中的类型别名 `SlotSymbol` 来定义符号类型,然后定义了 `SlotMachine` 类来表示整个 Slot 游戏,其中 `grid` 属性用于存储游戏的矩阵,`getRandomSymbol()` 方法用于随机生成符号,`spin()` 方法用于启动游戏并输出每一行的结果。其中,在 `spin()` 方法中,使用了 `Array.every()` 方法来判断每一行的符号是否一致。