java应用练习项目之纸牌游戏实例源码。java纸牌项目练习题目要求:

定义纸牌的花色

定义纸牌的大小2A

花色与数字组成一张牌

组成一整副纸牌

构造玩家

发牌

题目 :

创建一副扑克牌,这副牌是标准的包含52张,4种不同花色(方,梅花,红心,黑桃),上面的数字是2到ACE(14|A)的牌。

要求:

1.打乱这副牌

2.发牌给四个玩家.

请通过代码实现这个要求,如果不怎么熟悉Java/C/C++相关的Api的话,可以用伪代码来完成.

1.定义纸牌的花色

//CardsType.java

public class CardsType {

//定义牌的花色

private static final String[] ct = {

”黑桃”,

”红桃”,

”梅花”,

”方块”

};

//获取纸牌的花色

public static String getType(int i){

return ct[i];

}

//判断是否是纸牌成员

private static int find(String s){

int i=-1;

//遍历数组ct的每一个成员

for(String st:ct ){

i++;

if(st.equals(s))

return i;

}

return i;

}

//比较两张纸牌花色是否相同

public static int com(String s, String c){

int s1 = find(s);

int s2 = find(c);

if(s1 == -1)

return 100;

if(s2 == -1)

return -100;

return s2-s1;

}

}

2. 定义纸牌的大小(2——A)

//Num.java

public class Num {

//定义纸牌的号码

private static final String[] n = {

”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″,”10″,”J”,”Q”,”K”,”A”

};

//获得纸牌大小

public static String getN(int i){

if(i<0||i>13)

return null;

return n[i];

}

}

3.  花色与数字组成一张牌

//Cards.java

public class Cards {

private String type;

private int num;

// 构造函数

public Cards() {

}

public Cards(String s, int n) {

this.type = s;

this.num = n;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

public boolean equals(Object o) {

if (!(o instanceof Cards))

return false;

Cards c = (Cards) o;

if (this.num == c.getNum() && this.type.equals(c.getType()))

return true;

return false;

}

public int compareTo1(Object o) {

if (!(o instanceof Cards))

return 1;

Cards c = (Cards) o;

int bjjg;

if ((bjjg = CardsType.com(this.type, c.getType())) != 0)

return bjjg;

return c.getNum() – this.num;

}

public String toString() {

return type + ” : ” + Num.getN(num);

}

}

4. 组成一整副纸牌//Pck.java

public class Pck {

public static Cards[] getNewCards() {

Cards[] nc = new Cards[52];

int k = 0;

for (int i = 0; i < 4; i++) {

String t = CardsType.getType(i);

for (int j = 0; j < 13; j++) {

nc[k++] = new Cards(t, j);

}

}

return nc;

}

}

5.  构造玩家

//Player.java

public class Player {

private Cards[] mCards;

public Cards[] getmCards() {

return mCards;

}

public void setmCards(Cards[] mCards) {

this.mCards = mCards;

}

public Player(Cards[] mCards){

this.mCards = mCards;

}

@Override

public String toString() {

String result;

result = “Player [my card is: \n";

for (int i = 0; i < mCards.length; i++) {

result = result + mCards[i].toString() + “\n”;

}

result = result + “]”;

return result;

}

}

6.  发牌

//Game.java

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class Game {

private Cards[] gc = new Cards[52];

private int[] num = new int[52];

public Game() {

int i = 0;

for (Cards c : Pck.getNewCards()) {

System.out.println(“index: ” + i + “==>card: ” + c.toString() + “”);

gc[i++] = c;

}

for (int j = 0; j < 13; j++)

num[j] = j;

}

// 发牌

public Player[] fp() {

Player[] players = new Player[4];

List wordList = Arrays.asList(gc);

for (int i = 0; i < wordList.size(); i++) {

System.out.println(“wordList.index: ” + i + “==>card: ”

+ wordList.get(i));

}

Collections.shuffle(wordList);

for (int i = 0; i < wordList.size(); i++) {

System.out.println(“wordList.index: ” + i + “==>card: ”

+ wordList.get(i));

}

int k = 0;

for (int i = 0; i < 4; i++) {

Cards[] card = new Cards[13];

for (int j = 0; j < 13; j++) {

card[j] = wordList.get(k);

k++;

}

players[i] = new Player(card);

}

return players;

}

public static void main(String[] args) {

Game g = new Game();

Player[] pf = g.fp();

for (int i = 0; i < pf.length; i++) {

System.out.println(pf[i].toString());

}

}

}

java课程设计纸牌游戏_java练习项目之纸牌游戏实例源码相关推荐

  1. java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw

    java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw java毕业生设计晨光文具店进销存系统设计与开发计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  2. java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw

    java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目 ...

  3. java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw

    java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  4. java课程设计指导记录表_JAVA课程设计指导书ofr2012级.doc

    JAVA课程设计指导书ofr2012级 <Java面向对象程序设计> 课程设计指导书 专 业: XXX软服XX班 指导教师: XXXX 计算机与信息工程学院 2013年12月26日 一.目 ...

  5. java课程设计atm机_java课程设计报告-自动取款机模拟程序.doc

    java课程设计报告-自动取款机模拟程序.doc 还剩 53页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: } ...

  6. java课程设计总结迷宫_Java课程设计走迷宫详解.doc

    Java语言与面向对象技术 课程设计报告 ( 2014 -- 2015年度第 1 学期) 走迷宫 目 录 目 录2 1 概 述1 1.1 课程设计目的1 1.2 课程设计内容1 2 系统需求分析2 2 ...

  7. java课程设计学生信息管理_JAVA课程设计---学生基本信息管理系统

    1.团队课程设计博客链接 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方式,一种是按条件查找,另一种是组合条件查找 CombineSearch 组合查找的函数 ...

  8. java课程设计总结迷宫_java课设走迷宫(含代码)#优质参考

    java课设走迷宫(含代码)#优质参考 目录1设计目的1.1课程设计的目的2总体设计2.1设计思路2.2设计方法3关键技术4程序流程5主要源代码6. 运行结果及结论7.参考文献1.设计目的1.1课程设 ...

  9. Java课程设计简易绘图板_Java课程设计:高级绘画板的多功能实现(多种颜色图形)...

    课程题目描述 利用GUI方法实现一个较为简单的绘图应用程序.用户可以选择要画的图形(如线,椭圆或圆,矩形),选择方式不限,例如单选按钮.下拉框.菜单等方式,可以选择画笔颜色和画笔粗细,用鼠标单击和拖曳 ...

最新文章

  1. Cache 与Memory架构及数据交互
  2. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]
  3. 字符串数组-获取两个字符串中最大的相同子串(最大相同子串有且只有一个)
  4. java反射 基本知识
  5. 浪潮NF5270M3 刷uefi_新零售浪潮中,开为科技利用刷脸支付帮门店“运营”人
  6. Web框架之Django_10 重要组件(Auth模块)
  7. Kruskal重构树
  8. HDU 3264 Open-air shopping malls
  9. 【iVX 初级工程师培训教程 10篇文拿证】05 画布及飞机大战游戏制作
  10. Nacos(四)之安装
  11. gpu编程如何一步步学习_如何学习贴片机编程
  12. HDU 2222- Keywords Search
  13. C++程序设计-第十周循环结构程序设计上机实践项目
  14. java判断数组值类型,判断(1分) Java语言中的数组元素只能是基本数据类型而不能为对象类型。...
  15. delphi 热部署_DelphiWebMVC微信公众号开发
  16. Java简单猜数字游戏
  17. RustScan(端口扫描器)
  18. 鸿蒙纪元1.1正式版隐藏,毁灭纪元1.1.1官方版附隐藏英雄密码
  19. Js实现Flash播放效果[带源码]
  20. 搭建DVWA出现错误:DVWA System error - config file not found.

热门文章

  1. Rocky Linux更换yum源为国内源
  2. CAD打开多个文档只启动一个程序
  3. Edraw Max(亿图图示)新手福音:教你思维导图的简单画法! 1
  4. iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码
  5. 【Uva 10118】Free Candies
  6. 国开计算机专业英语答案,2021国开河北《计算机专业英语阅读》形考任务1-4题库.docx...
  7. 通过调用Word模板(Doc、dot)直接打印 z
  8. ImageNet 1000个类 具体内容
  9. 【NLP】详聊NLP中的阅读理解(MRC)
  10. Invalid byte tag in constant pool: 18