初学java小测试 扑克牌游戏

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 初学java小测试 扑克牌游戏
package game;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Game {
  static int vu = 0;
  static int wgold = 100;
  static int dgold = 100;
  public static void Hs(int hs){//计算花色
    hs/=13;
    if(hs==4){
      hs=3;
    }
    switch (hs) {
    case 0:
      System.out.print("黑桃");
      break;
    case 1:
      System.out.print("梅花");
      break;
    case 2:
      System.out.print("方块");
      break;
    case 3:
      System.out.print("红桃");
      break;
    }
  }
  public static void Enter() throws IOException  {//停顿
      System.out.println("按回车继续");
      new BufferedReader(new InputStreamReader(System.in)).readLine();
  }
  private static void Pai(int pai) {
    switch (pai) {
    case 1:
      System.out.println("A");
      break;
    case 11:
      System.out.println("J");
      break;
    case 12:
      System.out.println("Q");
      break;
    case 13:
      System.out.println("K");
      break;
    default:
      System.out.println(pai);
      break;
    }
  }
  public static void main(String[] args) throws IOException {
    Scanner input = new Scanner(System.in);
    System.out.println("                   抽牌游戏                                                     ");
    System.out.println("游戏规则");
    System.out.println("比大小,A最大  。牌大小一样比花色,黑桃最大,其次是梅花,方块,红桃");
    System.out.println("初始金币  玩家 100 电脑金币 100\n开始自动下注10金币");
    while(wgold>0){
      while(dgold>0){
        Enter();
        wgold-=10;
        dgold-=10;
        System.out.println("玩家金币 "+wgold+"\n电脑金币 "+dgold);
        System.out.println("玩家抽牌");
        Enter();
        int hs,pai;//玩家牌花色,牌数
        int dhs,dpai;//电脑牌花色,牌数
        hs=(int)(1+Math.random()*52);//玩家抽的花色
        pai=(int)(1+Math.random()*13);//玩家抽的牌
        Hs(hs);
        Pai(pai);
        System.out.println("请问是否加注  加注输入加注金币数(不能超过现有金币数)  不加注输入0   电脑自动跟");
        jwvu();
        if(pai==1){
          pai=14;//A最大
        }
        Enter();
        System.out.println("电脑抽牌");
        dhs=(int)(1+Math.random()*52);
        dpai=(int)(1+Math.random()*13);
        Hs(dhs);
        Pai(dpai);
        if(pai>dpai){
          System.out.println("玩家胜利");
          if(vu==0){
            wgold+=10*2;
          }else{
            wgold+=10*2+vu*2;
          }
          System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
          Enter();
        }else if(pai<dpai){
          System.out.println("电脑胜利");
          if(vu==0){
            dgold+=10*2;
          }else{
            dgold+=10*2+vu*2;
          }
          System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
          Enter();
        }else if(pai==dpai){
          if(hs<dhs){
            System.out.println("玩家胜利");
            if(vu==0){
              wgold+=10*2;
            }else{
              wgold+=10*2+vu*2;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }else if(hs>dhs){
            System.out.println("电脑胜利");
            if(vu==0){
              dgold+=10*2;
            }else{
              dgold+=10*2+vu*2;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }else{
            System.out.println("平局");
            if(vu==0){
              dgold+=10;
              wgold+=10;
            }else{
              dgold+=10+vu;
              wgold+=10+vu;
            }
            System.out.println("玩家金币"+wgold+"电脑金币"+dgold);
            Enter();
          }
        }
        if(wgold==0 || dgold==0)break;
      }
      if(wgold==0 || dgold==0)break;
    }
    if(wgold<=0)System.out.println("!!!电脑最终获胜!!!");
    if(dgold<=0)System.out.println("!!!玩家最终获胜!!!");
  }
  public static void jwvu(){//控制加注数输入
    while(true){
      Scanner input = new Scanner(System.in);
      if(input.hasNextInt()){
        vu = input.nextInt();
        }else{
        System.out.println("... 金币用整数计算  重新输入");
        jwvu();
        break;
        }
      if(vu==0){
        break;
      }else if(vu>0 && vu<=wgold){
        System.out.println("已加注");
        wgold-=vu;
        if(dgold>vu){
          dgold-=vu;
        }else{
          dgold-=dgold;
        }break;
      }else{
        System.out.println("输入错误 重新输入");
        continue;
      }
    }
  }
}
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3天前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
12 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
5天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
20 1
java制作游戏,如何使用libgdx,入门级别教学
|
2天前
|
XML Java Maven
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
19 7
|
1天前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
9 0
|
6天前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
9 0
|
1月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
56 6
|
1月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
56 4
|
2月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
53 2
|
2月前
|
XML Java 测试技术
Selenium WebDriver自动化测试(基础篇):不得不掌握的Java基础
关于Selenium WebDriver自动化测试的Java基础篇,涵盖了Java的变量、数据类型、字符串操作、运算符、流程控制、面向对象编程、关键字用法、权限修饰符、异常处理和IO流等基础知识点,为进行自动化测试提供了必要的Java语言基础。
52 1
|
2月前
|
Java 测试技术 API
Java 新手入门:Java单元测试利器,Mock详解
Java 新手入门:Java单元测试利器,Mock详解
110 1