创建扑克测试(二)

1.Main

import java.util.List;
public class Main {
	/**
	 * 1.面向对象思维(一张扑克)
	 * 抽取共性属性
	 *   花色	int
	 *   牌值	int
	 *   花色符号	String
	 *   牌值符号	String
	 * 抽取共性方法
	 * 
	 * 2.面向对象思维(一副扑克)
	 * 抽取共性属性
	 *   花色数量	int 
	 *   牌的张数	int
	 *   所有牌	List
	 * 抽取共性方法
	 *   创建扑克
	 *   洗牌
	 *   抽取一张
	 *   分组
	 *   排序
	 * 1(多)--对--2(一)
	 * */
	public static void main(String[] args) {
		/**
		 * 6.创建一副扑克对象
		 * */
		Pukes p=new Pukes(); // 这是一副空盒
		List<Apuke> list=p.createPuke();
		//System.out.println(list);

		/**
		 * 7.洗牌
		 * */
		List<Apuke> list2=p.shufferPuke();
		//System.out.println(list2);

		/**
		 * 8.随机抽取一张牌
		 * */
		Apuke a=p.getRandomPuke();
		//System.out.println(a);

		/**
		 * 10.洗牌后,重新排序牌
		 * */
		List<Apuke> list3=p.sortPuke();
		System.out.println(list3);
	}

}

2.Apuke

//一张扑克类
public class Apuke implements Comparable<Apuke>{
	/**
	 * 1.定义属性
	 * */
	private int    color;      // 花色值
	private String colorText;  // 花色符号
	private int    value;      // 牌值
	private String valueText;  // 牌值符号

	/**
	 * 2.创建构造方法和setter、getter方法、toString方法
	 * */
	public Apuke(int color, String colorText, int value, String valueText) {
		super();
		this.color = color;
		this.colorText = colorText;
		this.value = value;
		this.valueText = valueText;
	}
	public int getColor() {
		return color;
	}
	public void setColor(int color) {
		this.color = color;
	}
	public String getColorText() {
		return colorText;
	}
	public void setColorText(String colorText) {
		this.colorText = colorText;
	}
	public int getValue() {
		return value;
	}
	public void setValue(int value) {
		this.value = value;
	}
	public String getValueText() {
		return valueText;
	}
	public void setValueText(String valueText) {
		this.valueText = valueText;
	}

	@Override
	public String toString() {
		return "Apuke [color=" + color + ", colorText=" + colorText + ", value=" + value + ", valueText=" + valueText
				+ "]\n";
	}

	/**
	 * 9.单张扑克牌比较大小,需要实现Comparable排序接口的compareTo方法
	 * */
	@Override
	public int compareTo(Apuke o) {
		int val=0;
		// 先根据花色比较
		val=this.color-o.color;
		if(val==0) {
			// 在根据大小比较
			val=this.value-o.value;
		}
		return val;
	}

}

3.Pukes

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

// 一副扑克
public class Pukes {
	/**
	 * 3.定义属性
	 * */
	private int         pukesCount;  // 扑克张数
	private int         colorCount;  // 花色数量
	private List<Apuke> aList;       // 扑克牌的集合

	/**
	 * 12.创建一个大的组,放花色组的集合
	 * */
	private List<ColorGroup> cgl;

	public List<ColorGroup> getCgl() {
		return cgl;
	}
	public void setCgl(List<ColorGroup> cgl) {
		this.cgl = cgl;
	}

	/**
	 * 4.创建setter、getter方法、toString方法
	 * */

	public int getPukesCount() {
		return pukesCount;
	}

	public void setPukesCount(int pukesCount) {
		this.pukesCount = pukesCount;
	}
	public int getColorCount() {
		return colorCount;
	}
	public void setColorCount(int colorCount) {
		this.colorCount = colorCount;
	}
	public List<Apuke> getaList() {
		return aList;
	}
	public void setaList(List<Apuke> aList) {
		this.aList = aList;
	}

	@Override
	public String toString() {
		return "Pukes [pukesCount=" + pukesCount + ", colorCount=" + colorCount + ", aList=" + aList + "]";
	}

	/**
	 * 5.先把业务方法定义出来,可以先搭个架子
	 * */
	// 5.1.创建一副扑克牌的方法
	public List<Apuke> createPuke(){

		pukesCount=54;                // 初始化扑克牌数量
		colorCount=5 ;                // 初始化花色数量(包含王)
		aList=new ArrayList<Apuke>(); // 初始化扑克牌集合
		/*王   ?   ■    ?   ▲
		  1  2 3  4 5
		  A  2 3  4 5 6 7 8 9 10 J  Q  K  小王     大王
		  1  2 3  4 5 6 7 8 9 10 11 12 13 14   15*/
		//先创建4种花色牌
		for(int i=2;i<=5;i++) {
			for(int j=1;j<=13;j++) {
				String colorText=null; // 定义花色符号
				String valueText=null; // 定义牌值符号
				// 给花色符号赋值
				switch (i) {
					case 2:colorText="?";break;
					case 3:colorText="■";break;
					case 4:colorText="?";break;
					case 5:colorText="▲";break;
				}
				// 给牌值符号赋值
				switch(j) {
					case 1  : valueText="A"; break;
					case 2  : valueText="2"; break;
					case 3  : valueText="3"; break;
					case 4  : valueText="4"; break;
					case 5  : valueText="5"; break;
					case 6  : valueText="6"; break;
					case 7  : valueText="7"; break;
					case 8  : valueText="8"; break;
					case 9  : valueText="9"; break;
					case 10 : valueText="10";break;
					case 11 : valueText="J"; break;
					case 12 : valueText="Q"; break;
					case 13 : valueText="K"; break;
				}
				// 创建一张扑克对象,让后扔到扑克盒里
				Apuke ap=new Apuke(i, colorText, j, valueText);
				aList.add(ap);
			}
		}
		//创建小王、大王扑克牌
		Apuke ap_xiaowang=new Apuke(1, "★", 14, "♂");
		aList.add(ap_xiaowang);
		Apuke ap_dawang=new Apuke(1, "★", 15, "♀");
		aList.add(ap_dawang);

		return aList;
	}

	// 5.2.洗牌的方法
	public List<Apuke> shufferPuke(){
		Collections.shuffle(aList);
		return aList;
	}

	// 5.3.随机抽取一张扑克
	public Apuke getRandomPuke() {
		Random r=new Random();
		int index=r.nextInt(this.pukesCount);
		System.out.println(index);
		return aList.get(index);
	}

	// 5.4.排序所有扑克牌(先花色,在大小),所以单张扑克牌类要实现Comparable接口
	public List<Apuke> sortPuke(){
		Collections.sort(aList);
		return aList;
	}

	// 5.5.分组最后做

}

原文地址:http://blog.51cto.com/13634837/2087986

时间: 2024-10-16 21:48:09

创建扑克测试(二)的相关文章

soapui中文操作手册(二)----通过您的WSDL请求创建一个测试

1.通过您的WSDL请求创建一个测试 点击加号旁边的导航拓展项目树的Web服务,并选择请求: 在SoapUI Pro中,所述请求编辑出现在右边.SoapUI Pro有一个编辑器,它简化了XML的层次结构,无论是在请求和响应,并实时可定制. 了解更多关于表单编辑器和大纲编辑器. 如果您正在使用SoapUI免费版,你必须如下所示的代码编辑器中手动输入数据.为了从本教程中充分受益,你应该使用专业版. 2.在请求编辑器中,选择Add This Request to TestCase. soapUI中接受

Android APP压力测试(二)之Monkey信息自动收集脚本

Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息,主要收集Monkey测试日志.手机日志.手机屏幕截图.测试手机信息,自动按次按时间点保存信息.只需轻轻一点,腾出手腾出脑想干吗干吗,执行结束应该有信息的都有收集,一定程序提升了效率,节约了时间.可以偷空看看美图.聊天扯淡...哦不,是学习提高审美观,沟通交流增进同事情感... 转载请注明出处:Find

Eclipse+Maven创建webapp项目&lt;二&gt; (转)

Eclipse+Maven创建webapp项目<二> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显示创建maven项目的窗口,此次不勾选Create a simple project,直接next,如图所示: 3.在Filter中搜索webapp,选择如图所示,并next: 4.输入maven项目的基本信息,如下图所示: 5.完成maven项目的创建,生成相应的webapp项目结构,如下所示,此处有部分结

Sharepoint2013搜索学习笔记之创建搜索服务(二)

第一步,进入管理中心,点击管理服务器上的服务 第二步,在服务器上选择需要承载搜索服务的服务器,并启动服务列表上的sharepoint server search 第三步,从管理中心进入管理服务应用程序 第四步,新建search service application 第五步,在弹出的新建窗口分别填好相应信息点击确定,主要注意的是 应用程序池可以选择已经有的,也可以自己填一个新的名称,选择填写新的之后,程序会在稍后新建一个应用程序池,一般推荐新建应用程序池. 默认情况,爬网组件会用配置好的搜索服务

django之创建第7-5-第二种传值方式(time/1232/xiaodneg)

1.修改views文件 def foo(request,myID,myName): t = loader.get_template("foo.html") user = {"today": datetime.datetime.now(),"id":myID,"name":myName} c = Context(user) return HttpResponse(t.render(c)) 2.创建foo.html文件 <!

Windows中使用MySQL 创建数据库(二)

一.数据库操作 1.查看当前存在的所有数据库 mysql>show databases; 2.切换当前使用数据库 mysql>use test 3.授权 mysql>grant all on 数据库名.* to 用户名@主机名 4.创建数据库 mysql>create database company; 其中:company 为要创建的数据库名 二.创建表 1.查看当前数据库中的所有表 mysql>show tables; 2.创建表 create table employe

DB2创建function(二)

DB2创建function(一),介绍将function内容作为字段值,或做为一个where条件的情况. DB2创建function(二),介绍建立返回的内容为表集合.调用示例如下 ? 1 select * from table(GET_EFFECTIVE_USER_ID(21))--GET_EFFECTIVE_USER_ID为建立的function函数. 建立的function示例如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

lucene3.0+版本中文分词测试+搜索结果+创建索引测试

lucene3.0+版本中文分词测试+搜索结果+创建索引测试 import java.io.File; import java.io.IOException; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.

Java利用zxing创建和读取二维码

一.maven依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/art