最初の種類
色に応じて、同じ色を並べて、同じ色を並べ替えます
最初の並べ替えは、コード内のall()メソッドを参照します
2番目のソート
実際の大家さんゲームの並べ替え方法は、王様(こちらはジョーカー)の順番で並べ替えるジョーカー2AKQJ109876543で、スーツの順番は自分で調整できます。
2番目の並べ替えは、コード内のall2()メソッドを参照します
特定のコードの実装は次のとおりです。関数を切り替えると、パラメーターなしのコンストラクターで呼び出しの特定のメソッドを変更し、all2()メソッドをall()メソッドに変更して切り替えることができます。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class ThreeDemo2 {
static List<Integer> list = new ArrayList<Integer>();
static List<String> list1 = new ArrayList<String>();
static List<String> list2 = new ArrayList<String>();
static List<Integer> player1 = new ArrayList<Integer>();
static List<Integer> player2 = new ArrayList<Integer>();
static List<Integer> player3 = new ArrayList<Integer>();
static List<Integer> diPai = new ArrayList<Integer>();
static int index = 0;
static int spe;
static Map<Integer, String> map = new HashMap<Integer, String>();
public static void main(String[] args) {
new ThreeDemo2();
}
public ThreeDemo2() {
list1.add("♠");
list1.add("♥");
list1.add("♣");
list1.add("♦");
list2.add("2");
list2.add("3");
list2.add("4");
list2.add("5");
list2.add("6");
list2.add("7");
list2.add("8");
list2.add("9");
list2.add("10");
list2.add("J");
list2.add("Q");
list2.add("K");
list2.add("A");
all2();
pecialPai();
threePlayer();
look("赌神", player1, map);
look("赌圣", player2, map);
look("赌王", player3, map);
look("底牌", diPai, map);
System.out.print("地主牌为:");
System.out.println(map.get(spe));
}
public static void all() {
map.put(index, "JOKER");
list.add(index);
index++;
map.put(index, "joker");
list.add(index);
index++;
for (String color : list1) {
for (String num : list2) {
map.put(index, color+num);
list.add(index);
index++;
}
}
}
public static void all2() {
map.put(index, "JOKER");
list.add(index);
index++;
map.put(index, "joker");
list.add(index);
index++;
for (int i = 0; i < list1.size(); i++) {
map.put(index, list1.get(i)+list2.get(0));
list.add(index);
index++;
}
for (int i = list2.size()-1; i >= 1; i--) {
for (int j = 0; j < list1.size(); j++) {
map.put(index, list1.get(j)+list2.get(i));
list.add(index);
index++;
}
}
}
public static void pecialPai() {
Random random = new Random();
spe = random.nextInt(51);
}
public static void threePlayer() {
Collections.shuffle(list);
diPai.add(list.get(51));
diPai.add(list.get(52));
diPai.add(list.get(53));
for (int i = 0; i < list.size()-3; i++) {
if (i%3 == 0) {
player1.add(list.get(i));
}
if (i%3 == 1) {
player2.add(list.get(i));
}
if (i%3 == 2) {
player3.add(list.get(i));
}
}
for (int i = 0; i < player1.size(); i++) {
if (player1.get(i) == spe) {
player1.addAll(diPai);
}
}
for (int i = 0; i < player2.size(); i++) {
if (player2.get(i) == spe) {
player2.addAll(diPai);
}
}
for (int i = 0; i < player3.size(); i++) {
if (player3.get(i) == spe) {
player3.addAll(diPai);
}
}
Collections.sort(player1);
Collections.sort(player2);
Collections.sort(player3);
Collections.sort(diPai);
}
public static void look(String name,List<Integer> player,Map<Integer,String> allPai) {
System.out.print(name + ":");
for (Integer key : player) {
String value = allPai.get(key);
System.out.print(value+" ");
}
System.out.println();
}
}
var foo = 'bar';
具体的な実装図は次のとおりです。
スイッチングメソッドがall()になった後の実装図は次のとおりです。
古いルールは何ですか?バグがある場合や理解できない場合は、私と個人的にチャットできますqq:1638580498