源代码 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. MODBUS_RTU通信协议

    Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表.Modbus已经成为工业领域通信协议 ...

  2. SpringBoot 集成Shiro之使用Redis缓存授权认证信息

    因为用户认证与授权需要从数据库中查询并验证信息,但是对于权限很少改变的情况,这样不断从数据库中查询角色验证权限,对整个系统的开销很大,对数据库压力也随之增大.因此可以将用户认证和授权信息都缓存起来,第 ...

  3. appium识别工具介绍

  4. 解决Tengine健康检查引起的TIME_WAIT堆积问题

    简介: 解决Tengine健康检查引起的TIME_WAIT堆积问题 一. 问题背景 "服务上云后,我们的TCP端口基本上都处于TIME_WAIT的状态"."这个问题在线下 ...

  5. 【Vue】Vue开发环境搭建

    Vue前置学习环境 文章目录 Vue前置学习环境 IDE Node.js 调试环境 工程环境 小结 IDE WebStorm 官网下载:https://www.jetbrains.com/websto ...

  6. freopen函数总结

    函数原型: freopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode,FILE * __restrict_ ...

  7. cts project的创建修改和删除

    事务码:SPRO_ADMIN进入 项目管理界面,点击工具栏创建项目(F5),弹出对话框,输入项目名称,回车确定. 标题中输入项目的描述.点击保存.如图: 点击图片放大 注:要想此项目在CTS建立请求的 ...

  8. 图解 ECDHE 密钥交换算法

    HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法. 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的.而 ECDHE 算法具有前向安全 ...

  9. scrapy框架的中间件

    中间件的使用 作用:拦截所有的请求和响应 拦截请求:process_request拦截正常的请求,process_exception拦截异常的请求 篡改请求的头信息 def process_reque ...

  10. php artisan db:seed 报错

    在laravel 5中执行,要执行数据填充时报如下错误 php artisan db:seed 错误: [ReflectionException]                        Cla ...