初学java小测试 扑克牌游戏

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*H 3个月
模型训练 PAI-DLC,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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
8天前
|
Java 测试技术 Python
《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)
【6月更文挑战第21天】本文介绍了TestNG中测试方法的依赖执行顺序。作者通过一个实际的自动化测试场景展示了如何设计测试用例:依次打开百度、搜索“selenium”、再搜索“selenium+java”。代码示例中,`@Test`注解的`dependsOnMethods`属性用于指定方法间的依赖,确保执行顺序。如果不设置依赖,TestNG会按方法名首字母排序执行。通过运行代码,验证了依赖关系的正确性。
31 4
|
5天前
|
Java 测试技术 Python
《手把手教你》系列基础篇(八十一)-java+ selenium自动化测试-框架设计基础-TestNG如何暂停执行一些case(详解教程)
【6月更文挑战第22天】本文介绍了如何在TestNG中不执行特定测试用例。当部分模块未准备好时,可以通过以下方式暂停测试:③使用`@Test(enabled=false)`注解来禁用测试用例。作者提供了一个Java Selenium自动化测试的示例,展示如何通过修改`enabled`参数控制测试方法的执行。代码中,`testSearch2()`方法被禁用,因此在测试运行时不执行。文章还包含了测试报告和执行过程的截图。
36 7
|
9天前
|
Java 测试技术 Python
《手把手教你》系列基础篇(七十九)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-下篇(详解教程)
【6月更文挑战第20天】TestNG是一个Java测试框架,提供两种测试方法依赖机制:强依赖(所有前置方法成功后才运行)和弱依赖(即使前置方法失败,后置方法仍运行)。文中通过代码示例展示了这两种依赖如何实现,并解释了当依赖方法失败时,如何影响后续方法的执行。文章还包含了TestNG Suite的运行结果截图来辅助说明。
31 8
|
4天前
|
IDE Java 机器人
如何在Java中进行单元测试:JUnit 5的使用指南
如何在Java中进行单元测试:JUnit 5的使用指南
|
5天前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十二)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-上篇(详解教程)
【6月更文挑战第23天】TestNG 是一个用于自动化测试的 Java 框架,它自动生成测试报告,包括 HTML 和 XML 格式。报告可在 `test-output` 文件夹中找到。要创建测试用例,可创建一个实现了 `@Test` 注解的方法。通过 `testng.xml` 配置文件来组织和执行测试。默认报告包括测试结果、失败点和原因。用户还能实现 `ITestListener` 和 `IReporter` 接口来自定义报告和记录器。
22 2
|
10天前
|
XML Web App开发 测试技术
《手把手教你》系列基础篇(七十八)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 中篇(详解教程)
【6月更文挑战第19天】本文介绍了使用TestNG框架配置XML文件来管理测试用例的分组和依赖关系。
37 2
|
1天前
|
Java 测试技术 开发者
Java中的单元测试与集成测试策略
Java中的单元测试与集成测试策略
|
4天前
|
Java 测试技术 数据库
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
12 0
|
4天前
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
11 0
|
4天前
|
IDE Java 机器人
如何在Java中进行单元测试?
如何在Java中进行单元测试?