【java】最简单的洗发牌游戏
来源:互联网 发布:fc游戏编程 编辑:程序博客网 时间:2024/04/28 13:06
慕课网-Java入门第三季
——第七章 简易扑克牌游戏
游戏要求:
1.创建一副扑克牌:
包括四种花色:黑桃、红桃、梅花、方片
13种点数:2—10,J,Q,K,A
2.创建两名玩家:
玩家有ID、姓名,手牌为扑克牌集合
3.洗牌:
将之前创建的扑克牌顺序打乱
4.发牌:
将洗牌之后的扑克牌集合,从第一张开始,发给两位玩家,按照一人一张的方式,每人两张
5.游戏:
取两人手中点数最大的牌进行比较,点数大的赢,相同点数按黑红梅方花色比较
1.创建PuKe泛型:
package com.vaniot;public class PuKe {public String style;public String num; public PuKe(String style,String num){ this.style=style; this.num=num; }/** * @param args */ public PuKe(){ }}
2.创建Players泛型:
package com.vaniot;import java.util.HashSet;import java.util.Set;public class Players { public int id; public String name; public Setpu;/** * @param args */ public Players(int id,String name){ this.id=id; this.name=name; this.pu=new HashSet (); }}
3.洗牌、发牌、比较:
package com.vaniot;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.Scanner;public class Give {String[] style={"黑桃","红桃","梅花","方片"};String[] num={"2","3","4","5","6","7","8","9","10","J","Q","K","A"}; public List PuKeAll;public List PeopleTwo;ListPuKeList=new ArrayList (); public Give(){ this.PuKeAll=new ArrayList<>(); this.PeopleTwo=new ArrayList<>(); } public void pukeAdd(){ for(int j=0;j<4;j++){ for(int i=0;i<13;i++){ PuKe pk=new PuKe(style[j],num[i]); PuKeAll.add(pk); } } } public void showAll(){ System.out.println("原始牌序:"); for(int i=0;i<52;i++){ PuKe temp=(PuKe) PuKeAll.get(i); System.out.print(temp.style+temp.num+","); } System.out.println(); } public void xiPai(){ List integerList=new ArrayList (); Random random=new Random(); int k; for(int i=0;i<52;i++){ do{ k=random.nextInt(52); }while(integerList.contains(k)); integerList.add(k); PuKe pkk=(PuKe) PuKeAll.get(k); PuKeList.add(pkk);//洗牌,重新放位置 } System.out.println("洗牌后:"); for(int i=0;i<52;i++){ PuKe temp=(PuKe) PuKeList.get(i); System.out.print(temp.style+temp.num+","); } System.out.println(); } public void showTwoPeople(){ System.out.println("请输入第1位玩家的ID和姓名:"); System.out.print("输入ID:"); Scanner console1=new Scanner(System.in); int id1=console1.nextInt(); System.out.print("输入姓名:"); String name1=console1.next(); Players p1=new Players(id1,name1); PeopleTwo.add(p1); System.out.println("请输入第2位玩家的ID和姓名:"); System.out.print("输入ID:"); Scanner console2=new Scanner(System.in); int id2=console2.nextInt(); System.out.print("输入姓名:"); String name2=console2.next(); Players p2=new Players(id2,name2); PeopleTwo.add(p2); System.out.println("欢迎玩家"+p1.id+":"+p1.name); System.out.println("欢迎玩家"+p2.id+":"+p2.name); //发牌:洗牌后的前4张牌 System.out.println("玩家"+p1.name+"拿牌:"+PuKeList.get(0).style+PuKeList.get(0).num); System.out.println("玩家"+p2.name+"拿牌:"+PuKeList.get(1).style+PuKeList.get(1).num); System.out.println("玩家"+p1.name+"拿牌:"+PuKeList.get(2).style+PuKeList.get(2).num); System.out.println("玩家"+p2.name+"拿牌:"+PuKeList.get(3).style+PuKeList.get(3).num); } public void compareTwo(){ //分别比较两人手中两张中最大的 List pkc1=new ArrayList (); List pkc2=new ArrayList (); //玩家1中最大的 String pn11=PuKeList.get(0).num; String pn12=PuKeList.get(2).num; String ps11=PuKeList.get(0).style; String ps12=PuKeList.get(2).style; if(compareAll(pn11,ps11,pn12,ps12)){ pkc1.add(PuKeList.get(0)); } else{ pkc1.add(PuKeList.get(2)); } System.out.println("玩家1出:"+pkc1.get(0).style+pkc1.get(0).num); //玩家2中最大的 String pn21=PuKeList.get(1).num; String pn22=PuKeList.get(3).num; String ps21=PuKeList.get(1).style; String ps22=PuKeList.get(3).style; if(compareAll(pn21,ps21,pn22,ps22)){ pkc2.add(PuKeList.get(1)); } else{ pkc2.add(PuKeList.get(3)); } System.out.println("玩家2出:"+pkc2.get(0).style+pkc2.get(0).num); //两个人中最大的 if(compareAll(pkc1.get(0).num,pkc1.get(0).style,pkc2.get(0).num,pkc2.get(0).style)){ System.out.println("-----玩家1获胜-----"); } else{ System.out.println("-----玩家2获胜-----"); } } public boolean compareAll(String num1,String style1,String num2,String style2){ int k1=0,k2=0,s1=0,s2=0; for(int i=0;i<13;i++){ if(num1.equals(num[i])){ k1=i; break; } else continue; } for(int i=0;i<13;i++){ if(num2.equals(num[i])){ k2=i; break; } else continue; } if(k1>k2){ return true; } else if(k1 s2){ return true; } else{ return false; } } }/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubGive give=new Give();give.pukeAdd();give.showAll();give.xiPai();give.showTwoPeople();give.compareTwo();}}
0 0
- 【java】最简单的洗发牌游戏
- 最简单的java编程21点牌游戏
- 洗发的幸福
- 洗发牌.txt
- 洗发牌.txt
- 洗发牌系统
- [Java练习]简单的抽牌游戏
- 对洗发扑克牌程序的个人理解
- java 简单的扫雷游戏
- 简单的Java打字游戏
- 最简单逢7杀人游戏java代码
- 最简单的java程序
- 最简单的JAVA程序
- 最简单的Java框架
- 最简单的java输入输出
- 最简单的java GUI
- JAVA最简单的输入输出
- Java 最简单的批处理
- 第七届蓝桥杯省赛c++ A组 方格填数
- 备忘录
- 设计模式(二):结构行模式之组合模式
- 设计模式学习之工厂模式
- JSP内置对象
- 【java】最简单的洗发牌游戏
- 天梯冲刺(第二波)
- netty学习笔记(3)_编解码技术
- Subsequence poj 3061 尺取法
- unp 浅读--学习unix网络编程第一章
- 上传文件扩展名的简单判断(图片为例)
- 关于Python中的引用
- 初识Calcite——使用实例
- DialogFragment总结与封装