源代码 StoneGame.java

 1 import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.io.InputStreamReader;
4 import java.util.Random;
5
6 public class StoneGame {
7 private static int playerScores = 0;
8 private static int computerScores = 0;
9 private static boolean playing = true;
10 private static String[] playerSkills = {"石头", "剪子", "布"};
11
12 public static void main(String[] args) {
13 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
14 try {
15 System.out.println("输入:石头[1] 剪子[2] 布[3] 退出[4]");
16 while (playing) {
17 int playerSkill = Integer.parseInt(bufferedReader.readLine());
18 Random random = new Random();
19 int computerSkill = random.nextInt(3) + 1;
20 if (playerSkill == 4) {
21 System.out.println("Bye.");
22 playing = false;
23 break;
24 }
25 if (playerSkill > 0 && playerSkill < 4) {
26 System.out.println("玩家: " + playerSkills[playerSkill - 1]);
27 System.out.println("电脑: " + playerSkills[computerSkill - 1]);
28 compare(playerSkill, computerSkill);
29 System.out.println("玩家分数: " + playerScores + " " + "电脑分数: " + computerScores);
30 } else {
31 System.out.println("请重试.");
32 }
33 }
34 } catch (IOException e) {
35 e.printStackTrace();
36 } catch (NumberFormatException e) {
37 System.out.println("请输入正确的数字!");
38 }
39 }
40
41 private static void compare(int playerSkill, int computerSkill) {
42 if (playerSkill == computerSkill) {
43 System.out.println("平局.");
44 return;
45 }
46 if (playerSkill == 1) { // player skill is stone.
47 if (computerSkill == 2) {
48 System.out.println("玩家胜利.");
49 playerScores++;
50 } else {
51 System.out.println("电脑胜利.");
52 computerScores++;
53 }
54 }
55 if (playerSkill == 2) { // player skill is scissor.
56 if (computerSkill == 3) {
57 System.out.println("玩家胜利.");
58 playerScores++;
59 } else {
60 System.out.println("电脑胜利.");
61 computerScores++;
62 }
63 }
64
65 if (playerSkill == 3) { // player skill is cloth.
66 if (computerSkill == 1) {
67 System.out.println("玩家胜利.");
68 playerScores++;
69 } else {
70 System.out.println("电脑胜利.");
71 computerScores++;
72 }
73 }
74 }
75 }

java 石头剪子布游戏的更多相关文章

  1. AC日记——石头剪子布 openjudge 1.7 04

    04:石头剪子布 总时间限制:  1000ms 内存限制:  65536kB 描述 石头剪子布,是一种猜拳游戏.起源于中国,然后传到日本.朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风 ...

  2. Java练习 SDUT-2733_小鑫の日常系列故事(二)——石头剪子布

    小鑫の日常系列故事(二)--石头剪子布 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小鑫在上幼儿园的时候,喜欢跟小伙 ...

  3. hdu 4115 石头剪子布(2-sat问题)

    /* 意甲冠军:石头剪子布,目前已知n周围bob会有什么,对alice限制.供u,v,w:设w=0说明a,b回合必须出的一样 否则,必须不一样.alice假设输一回合就输了,否则就赢了 解: 2-sa ...

  4. ACwing 258. 石头剪子布

    258. 石头剪子布 题目传送门 题意挺好理解,但是当我看样例的时候就傻了.不是说好的只有一个裁判的吗?出现矛盾的时候该怎么判定裁判? 分析 观察这个数据量就会发觉是有猫腻的,直接从正面求出裁判并不是 ...

  5. [luogu1327][生活大爆炸石头剪子布]

    题目地址 https://www.luogu.org/problemnew/show/P1328 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负. ...

  6. Wikioi 3776 生活大爆炸版石头剪子布

    题目描述 Description 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏 ...

  7. 疯狂java实战演义 弹球游戏代码

    package org.crazyit.ball; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; ...

  8. 用Micro:bit做剪刀、石头、布游戏

    剪刀.石头.布游戏大家都玩过,今天我们用Micro:bit建一个剪刀.石头.布游戏! 第一步,起始 当你摇动它时,我们希望the micro:bit选择剪刀.石头.布.尝试创建一个on shake b ...

  9. Java -- 乒乓球 乒乓弹球游戏

    <疯狂Java讲义> 练习游戏 import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; impo ...

随机推荐

  1. 第14章节 BJROBOT karto 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】

    建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...

  2. 【C++】《C++ Primer 》第十章

    第十章 泛型算法 一.概述 因为它们实现共同的操作,所以称之为"算法".而"泛型",指的是它们可以操作在多种容器类型上. 泛型算法并不直接操作容器,而是遍历由两 ...

  3. Centos 打开ssh 密码验证 和 root 登录

    # 1 打开系统的密码验证功能: vim /etc/ssh/sshd_config #允许使用密码登录(注释此行 就是允许证书登录) PasswordAuthentication yes # 2 打开 ...

  4. 【Oracle】下载11.2.0.4的地址

    https://updates.oracle.com/download/13390677.html 这个地址就是下载Oracle 11.2.0.4版本的地址,需要有metalink账号才可以下载

  5. buuctf—web—高明的黑客

    打开靶机,看到如下界面 于是打开www.tar.gz 下载后发现是一个放有大量php文件的文件夹 看了大佬的wp后明白了是fuzzing 附上大佬的脚本 import os import re imp ...

  6. 【JAVA并发第三篇】线程间通信

    线程间的通信 JVM在运行时会将自己管理的内存区域,划分为不同的数据区,称为运行时数据区.每个线程都有自己私有的内存空间,如下图示: Java线程按照自己虚拟机栈中的方法代码一步一步的执行下去,在这一 ...

  7. 使用.net中的API网关模式封装微服务

    在本文中,我们将了解如何使用API网关模式来封装微服务并抽象出底层实现细节,从而允许使用者拥有进入我们系统的一致入口点. 为了构建和测试我们的应用程序,我们需要: 1.Visual Studio 20 ...

  8. Kubernetes 开船记-脚踏两只船:用 master 服务器镜像克隆出新集群

    自从2020年2月23日 园子全站登船 之后,我们一边感叹"不上船不知道,一上船吓一跳" -- kubernetes 比 docker swarm 强大太多,一边有一个杞人忧天的担 ...

  9. CodeMonkey少儿编程第2章 turnTo对象

    目标 了解对象的概念 了解方法与对象的关系 掌握turnTo指令的用法 在开始本章的学习之前,我们先来复习一下上一章的知识点. 在第1章中,我们学会了在这个游戏中最简单的两个指令. step x 其中 ...

  10. Redis 实战 —— 03. Redis 简单实践 - Web应用

    需求 功能: P23 登录 cookie 购物车 cookie 缓存生成的网页 缓存数据库行 分析网页访问记录 高层次角度下的 Web 应用 P23 从高层次的角度来看, Web 应用就是通过 HTT ...