javaの課題でババ抜きの課題が出たのですがカー

Writer: admin Type: booksonline Date: 2019-03-06 00:00
javaの課題でババ抜きの課題が出たのですがカードをプレイヤーに配るまではできたのですが同じカードを捨ててゲームを開始することと相手からカードを引いて捨てる処理ジョーカーが残ったら勝敗が出る処理が全くわかりません…丸投げする形で大変申し訳ありませんがプログラムの訂正をお願いしたいです。public static void main(String[] args) {// Master m = new Master(); CardGame g = new CardGame(); g.setPlayer(); g.start(); }}import java.util.ArrayList;public class Master{ public void start(){ } public void battle(ArrayList<Player> p){ } public void end(Player p){ }}import java.util.*;public class Player { private String name; private ArrayList<String> card = new ArrayList<>(); public Player(String n) { this.name = n; } public String getName(){ return this.name; } public ArrayList<String> getcard(){ return card; } public void setcard(String s){ card.add(s); }}import java.util.ArrayList;public class CardGame { Card c = new Card(); protected ArrayList<Player> player = new ArrayList<>(); public void setPlayer() { System.out.println("人数を入力してください"); int x = new java.util.Scanner(System.in).nextInt(); System.out.println(x + "人で開始します"); for (int i = 0; i < x; i++) { System.out.println("名前を入力してください"); String n = new java.util.Scanner(System.in).nextLine(); player.add(new Player(n)); } } public void start() { System.out.println("カードを配ります。"); c.shuffle(player); } public void end() { }}import java.util.*;public class Card { private ArrayList<String> trump = new ArrayList<>(); public Card() { for (int i = 1; i <= 13; i++) { if (i == 1) { trump.add("HA"); } else if (i == 11) { trump.add("HJ"); } else if (i == 12) { trump.add("HQ"); } else if (i == 13) { trump.add("HK"); } else { trump.add("H" + i); } } for (int i = 1; i <= 13; i++) { if (i == 1) { trump.add("CA"); } else if (i == 11) { trump.add("CJ"); } else if (i == 12) { trump.add("CQ"); } else if (i == 13) { trump.add("CK"); } else { trump.add("C" + i); } } for (int i = 1; i <= 13; i++) { if (i == 1) { trump.add("SA"); } else if (i == 11) { trump.add("SJ"); } else if (i == 12) { trump.add("SQ"); } else if (i == 13) { trump.add("SK"); } else { trump.add("S" + i); } } for (int i = 1; i <= 13; i++) { if (i == 1) { trump.add("DA"); } else if (i == 11) { trump.add("DJ"); } else if (i == 12) { trump.add("DQ"); } else if (i == 13) { trump.add("DK"); } else { trump.add("D" + i); } } trump.add("J"); } public void shuffle(ArrayList<Player> p) { Collections.shuffle(trump); for (int i = 0; i < 26; i++) { p.get(0).setcard(trump.get(i)); } System.out.println("p1の手札"); for (String s : p.get(0).getcard()) { System.out.print(s + " "); } for (int i = 26; i < 53; i++) { p.get(1).setcard(trump.get(i)); } System.out.println(); System.out.println("p2の手札"); for (String s : p.get(1).getcard()) { System.out.print(s + " "); } }}共感した0###同じカードを捨てる手持ちのカードから1つ取ります。そのカードの数字を覚えておき、2つ目のカードを取り数字を比較します。もし同じだった場合、 1つ目のカードと2つ目のカードを捨てます。 一番最初に戻って次のカードを取り同じことを繰り返します。 手持ちカードの残りが1になったら終了です。もし違っていた場合、 1枚目のカードはそのままに、次の2枚めのカードを引きます 以降、繰り返して、最後まで見つからなかった場合 1枚目のカードは唯一のカードなので、手札から確定カードゾーンに移します。9次のカードを1枚目として、ループに戻ります。すべての手札がなくなったら、確定ゾーンから手札戻します。こんな感じでナイス0
###ありがとうございます!頑張ってみようと思います。

 

TAG