纸牌博弈算法java代码
时间: 2023-11-10 19:53:31 浏览: 49
以下是一个简单的纸牌博弈算法Java代码示例:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class CardGame {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Integer> a = new ArrayList<>();
List<Integer> b = new ArrayList<>();
for (int i = 0; i < n; i++) {
a.add(sc.nextInt());
}
for (int i = 0; i < n; i++) {
b.add(sc.nextInt());
}
Collections.sort(a);
Collections.sort(b);
int scoreA = 0;
int scoreB = 0;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
if (a.get(n - i - 1) > b.get(n - i - 1)) {
scoreA += a.get(n - i - 1);
} else {
scoreB += b.get(n - i - 1);
}
} else {
if (b.get(n - i - 1) > a.get(n - i - 1)) {
scoreB += b.get(n - i - 1);
} else {
scoreA += a.get(n - i - 1);
}
}
}
System.out.println(scoreA + " " + scoreB);
}
}
```
该代码实现了一个基于简单排序的纸牌博弈算法,其中输入参数`n`为纸牌数量,`a`和`b`为两个玩家的纸牌序列。首先对两个序列进行排序,然后分别计算每个玩家的得分,并输出最终得分。在计算得分时,每个玩家按照顺序取出一张纸牌进行比较,得分规则为:如果当前轮到偶数次取牌的玩家的纸牌大于奇数次取牌的玩家的纸牌,则偶数次取牌的玩家得分,否则奇数次取牌的玩家得分。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)