import java.util.ArrayList;

import java.util.Random;

import java.util.Scanner;

/**

* 21点游戏。

* 1、洗牌

* 2、发牌

* 3、计算点数

* 4、 是否要牌

* 5、计算机发牌

* 6、计算结果

*/

public class TPoint{

private int[] pai = new int[52];//52张牌

private String[] huase= {"黑","红","梅","方"};

private String[] paiM = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//牌面显示

private ArrayList al = new ArrayList();//存储玩家手中的牌

private int currentPoint;

private int computerPoint = 0;

private int currentPage=0;

public TPoint() { super(); xipai();// 洗牌 fapai();//发牌 needPai();//是否要牌 computerPai();//电脑发牌 result(); //计算结果 } private void xipai() { for(int i = 0; i < 52 ;i++ ){ pai[i]=i; //52张牌赋值 } for(int j = 0;j<26;j++){//打乱26次 Random r = new Random(); int i1 = Math.abs(r.nextInt()%52);//在52张中牌中找到第一张 int i2 =Math.abs(r.nextInt()%52);//在52张中牌中找到第二张 int temp = pai[i2]; pai[i2] = pai[i1]; pai[i1] = temp; } } private void fapai() { /*for(int i = 0;i<52;i++){ System.out.print(pai[i]+"\t"); }*/ //先发两张给玩家 al.add(pai[0]); al.add(pai[1]); currentPoint += calPoint(pai[0]); currentPoint+= calPoint(pai[1]); currentPage= 2; } private int calPoint(int i) {//计算牌的点数 int temp = 0; if(i%13+1>10){//JQK都是10 temp = 10; } else{ temp = (i+1)%13; } return temp; } private void needPai() { while(true){ xianshi(); //显示牌面 if(currentPoint>=21){//玩家点数大于21则不能再要牌 break; } System.out.println("是否还要牌,输入N不要!"); Scanner sc = new Scanner(System.in); if(sc.next().equalsIgnoreCase("N")){ break; //输入N则结束 }else { al.add(pai[currentPage]);//继续添加牌 currentPoint+=calPoint(pai[currentPage]);//牌点数+ currentPage++; } } } private void xianshi() { for(Integer in:al){//显示玩家手中的牌 System.out.print(huase[in/13]+" "+paiM[in%13]+"\t");//显示花色 和牌面 } System.out.println("当前总分:"+currentPoint); } private void computerPai() { Random r = new Random(); computerPoint = Math.abs(r.nextInt())%10+16;//电脑的点数在16点到26点 System.out.println("\n电脑 的牌面:"+computerPoint); } private void result() { if(currentPoint>21){//玩家点数大于21则不能再要牌 System.out.println("you lost!"); }else if(currentPoint==computerPoint){ System.out.println("you lost!"); }else if(computerPoint>21){ System.out.println("you Win!"); }else if(currentPoint>computerPoint){ System.out.println("you Win!"); }else{ System.out.println("you Lost!"); } } public static void main(String[] args){ new TPoint(); } }

java21点游戏源代码_21点游戏(java源代码)相关推荐

  1. 教学管理系统java源代码_教学管理系统java源代码.doc

    教学管理系统java源代码 教学管理系统java源代码 篇一:java学生管理系统源代码 import java.io.Serializable; public class Course implem ...

  2. Eclipse:如何附加Java源代码

    在Eclipse中,当您按Ctrl按钮并单击任何类名称时,IDE会将您带到该类的源文件. 这是项目中具有的类的正常行为. 但是,如果您也希望Java核心类具有相同的行为,则可以通过将Java源代码附加 ...

  3. 过山洞java_山洞历险Java源代码JAVA游戏源码下载

    Java游戏岩穴历险源代码,附有资源资料,有兴趣调试运行一下,记得以前有一段打字游戏类似这个. 岩穴历险Java源代码 (1 folders, 2 files, 1.38 KB, 174.36 KB ...

  4. [计算机毕设]基于java的打飞机游戏系统设计与实现(项目报告+源代码)

    基于java的打飞机游戏系统项目说明报告 1.1 手机软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行.但是传统 ...

  5. 果蔬连连看java源代码_《基于Qt的连连看游戏的设计》-毕业论文.doc

    PAGE 精品 摘 要 在现今电子信息高速发展的时代,电子游戏已然成为大众最受欢迎的娱乐消遣方式,经典的连连看是个老少皆宜的小游戏,它实现由各式各样的成对图片组成,然后存储在一个二维的数组中,计算机随 ...

  6. 基于java设计小游戏目的_java小游戏设计

    华北科技学院计算机学院综合性实验 实 验 报 告 课程名称 JA VA A 程序设计 实验学期 20 14 至 20 15 学年 第 1 学期 学生所在院部 计算机学院 年级 专业班级 学生姓名 学号 ...

  7. 用C语言实现扫雷小游戏(附上思路+项目展示+源代码)

    文章目录 前言 一.扫雷小游戏整体思路讲解. 二.game.c各游戏功能函数的讲解 1.InitBoard 初始化数组函数讲解 2.DisplayBoard 打印格子函数讲解 3.Setmine 电脑 ...

  8. Java黑皮书课后题第7章:***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测

    ***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来.当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测 题目 题目描述与运行示例 破题 ...

  9. mfc使用cef源代码实现_如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...

    很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇瑰网小编带大家来了解一下相关的内容吧. 源代码组合包括哪些 ...

最新文章

  1. 新版VIEW CLIENT FOR IPADANDRIOD发布了!
  2. 升余弦滤波器与根升余弦滤波器
  3. 学习 Message(10): WM_CancelMode 消息测试
  4. Java实现算法导论中凸包问题Jarvis步进法
  5. 开源——需要分享共享的无私精神
  6. 【HDU - 5056】Boring count (尺取法)
  7. Python、Java 在线笔试
  8. [转]asp实现数据库导出excel文件
  9. .net 中文语音朗读
  10. 【Python】SyntaxError: Non-ASCII character '\xe8' in file
  11. Three.js实现太阳系八大行星的自转公转
  12. 两部门:禁止从蒙古国输入猪、野猪及其产品
  13. R语言——自定义函数求置信区间
  14. 在大数据认知观和真实性不一样的?
  15. VUE前端应用部署页面访问404问题
  16. yum完全配置及createrepo详解
  17. Android 能让你少走弯路的干货整理
  18. Matlab基于VQ的语者识别系统(GUI界面)
  19. 实现鼠标移入移出显示隐藏元素
  20. WIFI手机可以正常连接但是电脑提示连接受限

热门文章

  1. 高频SQL使用知识点
  2. 女朋友问的那些问题—log.info在测试环境正常打印,上了生产就废?
  3. 2005本地mysql连接不上_SQL Server 2005/2008 连接不上本地数据库引擎的解决方法
  4. Python快速实现PySlowFast视频理解
  5. 【180930】WPF蜘蛛纸牌游戏源码
  6. 官宣 | iPayLinks艾贝盈 跨税云达成合作,为跨境企业健康出海保驾护航
  7. java xmpp smack_如何使用java smack库连接XMPP bosh服务器?
  8. [翻译]2007年Gartner数据仓库DBMS魔法四分区
  9. 开源框架ePump简介
  10. CSS 代码实现烟花绽放