A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0618张军 中级黑马   /  2015-7-13 22:01  /  779 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学过了模拟斗地主发牌,,因本人不玩斗地主,,所以改了一个三国杀发牌,,一开始就找不到思路,,现在特地分享给大家,一块理解一下思路,,
因为还不会让代码出牌,,所以牌只能一直增加,,
有些人可能没有玩过三国杀,,,在此说一下,,三国杀,每回合每人发两张牌,,出牌结束后到下一个人,,,于是下一个人再得两张牌,,,
另外还有一点必须声明,,,有一个地方还有修改好,,当前这个代码只能发26次牌,,以后学了新知识再改进..

  1. package cn.itcast;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Scanner;

  5. /*模拟三国杀发牌,,
  6. * 1,买牌
  7. * 2,洗牌
  8. * 3,发牌,每次发两张牌,,回合结束,点结束出牌,则发给下一个人两张牌,以此循环。
  9. *
  10. * */
  11. public class sanGuSha2 {
  12. public static void main(String[] args) {
  13.         String[] colors = {"红","方","黑","梅"};
  14.         String[] numbers= {"1杀","2杀","3杀","4闪","5闪","6桃","7闪",
  15.                         "8探囊取物","9釜底抽薪","10烽火狼烟","J万箭齐发","Q刀","K盾"};
  16.                
  17.                 ArrayList<String> array = new ArrayList<String>();
  18.                
  19.                 for (String c : colors) {
  20.                         for (String n : numbers) {
  21.                                 array.add(c.concat(n));
  22.                         }
  23.                 }
  24.                 Collections.shuffle(array);
  25.                 ArrayList<String> zhangfei = new ArrayList<String>();
  26.                 ArrayList<String> guanyu = new ArrayList<String>();
  27.                 int j=0;
  28.                 int x = 0;
  29.                 System.out.println("开始");
  30.                 String string = "结束出牌";
  31.                
  32.                 while(j<=array.size()&& string.equals("结束出牌")){
  33.                        
  34.                        
  35.                         if(x%2==0){
  36.                                 for (int i = j; i <= j+1; i++) {
  37.                                         zhangfei.add(array.get(i));
  38.                                 }
  39.                                 System.out.println("zhangfei"+zhangfei);       
  40.                         }else{
  41.                                 for (int i = j; i <= j+1; i++) {
  42.                                         guanyu.add(array.get(i));
  43.                                 }
  44.                                 System.out.println("guanyu"+guanyu);
  45.                         }
  46.                         j+=2;
  47.                         x++;
  48.                         System.out.println("是否结束出牌");
  49.                         Scanner scc = new Scanner(System.in);
  50.                         string = scc.next();
  51.                         System.out.println("下一回合");
  52.                 }
  53.                 }
  54. }

复制代码

2 个回复

倒序浏览
真是屌,大神膜拜
回复 使用道具 举报
膜拜啊大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马