从零开始学java(小游戏 石头剪刀布)
Game.java
package com.java;
import java.util.Scanner;
public class Game {
private Player player;
public Game(Player player){
this.player=player;
}
public void start(){
System.out.println("开始游戏");
System.out.println(player.getName()+"进入游戏,初始积分为:"+player.getScore());
String[] arr=new String[]{"剪刀","石头","布"};
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入剪刀、石头、布其中个之一");
String s1=sc.next();//玩家输入
if(!filter(s1)){
System.out.println("您输入的命令有误,请重新输入");
continue;
}
if(s1.equals("exit")){
break;
}
int count=(int)(Math.random()*3);
String s2=arr[count];
int flag=rule(s1,s2);
System.out.println("您出的是:"+s1+",系统出的是:"+s2);
if(flag>0){
System.out.println("恭喜"+player.getName()+"赢了,奖励10积分");
player.setScore(player.getScore()+10);
}else if(flag<0){
System.out.println("对不起"+player.getName()+"输了,扣除10积分");
player.setScore(player.getScore()-10);
}else{
System.out.println("打平了");
}
System.out.println(player);
}
System.out.println(player.getName()+"退出游戏,当前积分为:"+player.getScore());
}
public boolean filter(String s){
if("剪刀".equals(s)||"石头".equals(s)
||"布".equals(s)||"exit".equals(s)){
return true;}
else{ return false;
}
}
/**
* 游戏规则
* @return
*/
public int rule(String s1,String s2){
if(s1.equals(s2)){
return 0;
}
if(s1.equals("剪刀")){
if(s2.equals("石头")){
return -1;
}
if(s2.equals("布")){
return 1;
}
}
if(s1.equals("石头")){
if(s2.equals("剪刀")){
return 1;
}
if(s2.equals("布")){
return -1;
}
}
if(s1.equals("布")){
if(s2.equals("剪刀")){
return -1;
}
if(s2.equals("石头")){
return 1;
}
return 0;
}
return 0;
}
}
Player.java
package com.java;
public class Player {
private String name;//玩家姓名
private int score;//积分
public Player(String name, int score) {
super();
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String toString(){
return this.getName()+":"+this.getScore();
}
}
Test.java
package com.java;
public class test {
public static void main(String[] args){
Player p=new Player("王**",100);
Game g=new Game(p);
g.start();
}
}
这个小游戏和我上个写到的猜数字游戏核心思想一样都是用到了Math.random,这个可以说是其的加深应用。。。你们也可以试试看!
博主在分享个免费FQ软件
从零开始学java(小游戏 石头剪刀布)的更多相关文章
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)
你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)
硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...
- 从零开始学 Java - 利用 Nginx 负载均衡实现 Web 服务器更新不影响访问
还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见 ...
- 寒假答辩作品:Java小游戏
目录 java入门小游戏[test] 游戏界面 前言 (可直接跳到程序介绍) 前期入门小项目 前期收获 后期自创关卡 后续 java入门小游戏[test] 游戏界面 github地址: https:/ ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- 从零开始学 Java - 我放弃了 .NET ?
这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...
- 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)
从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...
- 从零开始学 Java - log4j 项目中的详细配置
你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...
- 从零开始学 Java - Spring 支持 CORS 请求踩的坑
谁没掉进过几个大坑 记得好久之前,总能时不时在某个地方看到一些标语,往往都是上面一个伟人的头像,然后不管是不是他说的话,下面总是有看起来很政治正确且没卵用的屁话,我活到目前为止,最令我笑的肚子痛得是下 ...
- 从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求
论职业的重要性 问:为什么所有家长都希望自己的孩子成为公务员? 答:体面.有权.有钱又悠闲. 问:为什么所有家长都希望自己的孩子成为律师或医生? 答:体面.有钱.有技能. 问:为什么所有家长都不怎么知 ...
随机推荐
- C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)
原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...
- java根据本地Ip获取mac地址
import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; impo ...
- ikely()与unlikely() 都等同于if, 此处只是做编译优化
ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢? 首先明确: if (likely(value))等价于if (value)if (likely( ...
- HDU 5501 背包问题
需要按照B/C的值从大到小排序. #include<cstdio> #include<cstring> #include<iostream> #include< ...
- 【模拟】NEERC15 E Easy Problemset (2015-2016 ACM-ICPC)(Codeforces GYM 100851)
题目链接: http://codeforces.com/gym/100851 题目大意: N个人,每个人有pi个物品,每个物品价值为0~49.每次从1~n顺序选当前这个人的物品,如果这个物品的价值&g ...
- cache的工作原理
http://www.360doc.com/content/11/0307/21/3791508_99049437.shtml TLB(Translation Lookaside Buffer,也称快 ...
- HDOJ(HDU) 2113 Secret Number(遍历数字位数的每个数字)
Problem Description 有一天, KIKI 收到一张奇怪的信, 信上要KIKI 计算出给定数各个位上数字为偶数的和. eg. 5548 结果为12 , 等于 4 + 8 KIKI 很苦 ...
- bzoj 1264 [AHOI2006]基因匹配Match(DP+树状数组)
1264: [AHOI2006]基因匹配Match Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 793 Solved: 503[Submit][S ...
- 《Mathematical Olympiad——数论》——整除
数论这个东西吧,虽说也是高中IMOer玩的数学游戏,颇具美学性的证明比较多.就目前所知,它在算法里是一些加密技术的基础,不多言,开始具体题目的分析. 问题一:已知数列{an},且a0 = 2 , a1 ...
- Java实现人民币大写代码解析
想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...