黑马程序员技术交流社区

标题: 模拟三国杀发牌 [打印本页]

作者: 0618张军    时间: 2015-7-13 22:01
标题: 模拟三国杀发牌
学过了模拟斗地主发牌,,因本人不玩斗地主,,所以改了一个三国杀发牌,,一开始就找不到思路,,现在特地分享给大家,一块理解一下思路,,
因为还不会让代码出牌,,所以牌只能一直增加,,
有些人可能没有玩过三国杀,,,在此说一下,,三国杀,每回合每人发两张牌,,出牌结束后到下一个人,,,于是下一个人再得两张牌,,,
另外还有一点必须声明,,,有一个地方还有修改好,,当前这个代码只能发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. }

复制代码

作者: 惜爱上缘    时间: 2015-7-13 22:21
真是屌,大神膜拜
作者: 钟志军zzj    时间: 2015-7-13 22:22
膜拜啊大神




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2