Java入门案列:三人斗地主的代码实现

需求分析: 1.准备牌,准备一组牌,四组花色,每组花色公有13张牌,外加大小王 2.洗牌,将准备好的牌组随机打乱 3.发牌,给每个人平均分发17张牌,最后三张牌存放到底牌之中 4.看牌,直接输出打印

Java入门案列:三人斗地主的代码实现需求分析:
1.准备牌,准备一组牌,四组花色,每组花色公有13张牌,外加大小王
2.洗牌,将准备好的牌组随机打乱
3.发牌,给每个人平均分发17张牌,最后三张牌存放到底牌之中
4.看牌,直接输出打印

代码实现:

$pattern = ‘/www..*.com/’;
$replacement = ‘www.test.com’;
$subject = [
‘www.baidu.com’,
‘www.google.com’,
];

$result = preg_replace($pattern,$replacement,$subject);
var_dump($result);
//array(3) {
// [0] =>
// string(12) "www.test.com"
// [1] =>
// string(12) "www.test.com"
// [2] =>
// string(15) "coding.test.com"
//}

$result1 = preg_filter($pattern,$replacement,$subject);
var_dump($result1);
//array(2) {
// [0] =>
// string(12) "www.test.com"
// [1] =>
// string(12) "www.test.com"
//}

正则搜索并使用回调替换

package cn.itcast.demo10;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

/*
1.准备牌
2.洗牌
3.发牌
4.看牌

*/
public class DouDIZhu {
public static void main(String[] args) {
//1.准备牌
//准备一个存储54张牌的ArrayList集合
ArrayList<String> poker = new ArrayList<>();
//定义两个数组,一个存储花色,一个存储数字
String[] colors = {"♥", "♦", "♠", "♣"};
String[] numbers = {"2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};
//把大小王存储到集合之中
poker.add("大王");
poker.add("小王");
//循环嵌套组装这两个数组,组装52张牌
for (String number : numbers) {
for (String color : colors) {
//System.out.println(color+number);
//将组装好的牌放入集合中
poker.add(color + number);

}
}
// System.out.println(poker);
/2.洗牌
使用集合的工具类Collections中的方法
static void shuffle(List<?> list, Random rnd)使用指定的随机源对指定列表进行置换 。
/
Collections.shuffle(poker);
//System.out.println(poker);

/
3.发牌
定义4个集合来存储3个玩家和一份底牌
/
ArrayList<String> play1 = new ArrayList<>();
ArrayList<String> play2 = new ArrayList<>();
ArrayList<String> play3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();

/
遍历集合poker
使用集合的索引%3给三个玩家发牌
注意:
先判断底牌是否i<51),否则没牌给底牌发了
当(i>=51)时,给底牌发三张
注意:集合是从0开始遍历所以时小于51
/

for (int i = 0; i < poker.size(); i++) {
String s = poker.get(i);
if (i >= 51) {
//给底牌发牌
dipai.add(s);
} else if (i % 3 == 0) {
play1.add(s);
} else if (i % 3 == 1) {
play2.add(s);
} else if (i % 3 == 2) {
play3.add(s);
}
}
/
4.看牌
直接输出打印
/
System.out.println("玩家1的牌时:" + play1);
System.out.println("玩家2的牌是:" + play2);
System.out.println("玩家3的牌是:" + play3);
System.out.println("底牌:" + dipai);

}
}

主题测试文章,只做测试使用。发布者:mairyexu,转转请注明出处:http://www.it201314.com/64/

发表评论

邮箱地址不会被公开。 必填项已用*标注