Java自制人机小游戏——————————剪刀、石头、布
package com.hello.test; import java.util.Scanner; public class TestGame { public static void main(String[] args)
{
Player p = new Player() ; //实例化玩家对象 Game g = new Game(p) ;//实例化游戏对象 g.startGame();//调用方法
} } //游戏类
class Game
{
private Player p ; //设置玩家 public Game(Player p)
{
this.p =p ;
} //制定游戏规则
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;
} public boolean panduan(String s)
{
if("剪刀".equals(s)||"布".equals(s)||"石头".equals(s)||"esc".equals(s))
{
return true ;
}
else
{
return false ;
}
} //游戏开始方法
public void startGame()
{
System.out.println("开始游戏"); System.out.println("请输入您的游戏昵称:"); Scanner s = new Scanner(System.in) ; String sg = s.nextLine() ; p.setName(sg); p.setScore(100); System.out.println("恭喜您注册成功,您的初始积分为100"); System.out.println(p.getName()+"进入游戏"); while(true)
{
String[ ] array = new String[ ] {"剪刀","石头","布"} ; System.out.println("请输入剪刀、石头或布,结束请输入esc"); Scanner sc = new Scanner(System.in) ; //提供输入窗口 String s1 = sc.nextLine() ; if(!panduan(s1))
{
System.out.println("输入有误,重新输入!");
continue ;
} if(s1.equals("esc"))
{
break ;
} int a = (int)(Math.random()*3) ; //随机0,1,2作为索引 String s2 = array[a] ; int it = rule(s1,s2) ; if(it>0)
{
System.out.println("您出的是"+s1+"电脑出的是"+s2);
System.out.println("恭喜"+p.getName()+"赢了,奖励10积分");
p.setScore(p.getScore()+10);
}
else if(it<0)
{
System.out.println("您出的是"+s1+"电脑出的是"+s2);
System.out.println("对不起"+p.getName()+"您输了,扣除10积分为");
p.setScore(p.getScore()-10);
}
else
{
System.out.println("您出的是"+s1+"电脑出的是"+s2);
System.out.println("打平了");
p.setScore(p.getScore());
}
System.out.println(p);
}
System.out.println(p.getName()+"退出了游戏,当前积分为:"+p.getScore());
} } //玩家类
class Player
{
private String name ; //玩家姓名 private int score ; //玩家积分 //setting、getting
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;
} @Override
public String toString() {
return "玩家:" + name + ", 当前积分:" + score;
} }
Java自制人机小游戏——————————剪刀、石头、布的更多相关文章
- 自己写的一个小的剪刀——石头——布游戏的GUI程序
很简单的一个程序,建议各位初学Java的同学可以试试写写这个程序: import javax.swing.JOptionPane; public class Game { public static ...
- 自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药
自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- 自制Unity小游戏TankHero-2D(3)开始玩起来
自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅 ...
- 自制Unity小游戏TankHero-2D(2)制作敌方坦克
自制Unity小游戏TankHero-2D(2)制作敌方坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...
- 自制Unity小游戏TankHero-2D(1)制作主角坦克
自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...
- java猜数字小游戏
/* * * 猜数字小游戏 * * 先由系统生成一个2-100之间的随机数字, * * 然后捕获用户从控制台中输入的数字是否与系统生成的随机数字相同, * * 如果相同则统计用户所猜的次数,并给出相应 ...
- Java打飞机小游戏(附完整源码)
写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码写的很 ...
- 软件设计之基于Java的连连看小游戏(一)——开题及游戏首页的制作
原本计划紧张忙碌的考试月在图书馆和实验室度过,结果突如其来为期两周的软件设计把课余时间几乎捆绑在了机房.软设没有太多知识上的要求,只要成品简洁美观.实用准确即可.考虑了很久决定要用Java swing ...
随机推荐
- OpenStack 计算节点关机,虚拟机状态解决办法
检查服务正常化 1 nova-manage service list 发现很多nova服务没有启动. 全部启动,直到nova-manage service list所有服务都是:)而不是XXX. 虚拟 ...
- rqnoj-342-最不听话的机器人-dp
dp[i][j][k][[l]: 执行第i步,执行到点(j,k),方向为l时,用的最大步数. 状态转移根据step[i]转移. #include<stdio.h> #include< ...
- s3c2440 lcd 显示图片裸机程序
因为前面的裸机程序非常的简单,就不写博了. 程序的流程: 1,初始化C SP 2,关看门狗 3,初始化SDRAM 4,读出 NAND FLASH 中的 包含图片的程式放到SDRAM里面 5,跳转到SD ...
- linux设备驱动归纳总结(八):2.总线、设备和驱动的关系【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-110295.html linux设备驱动归纳总结(八):2.总线.设备和驱动的关系 xxxxxxxxx ...
- A4纸网页打印——宽高设置
一.在公制长度单位与屏幕分辨率进行换算时,必须用到一个DPI(Dot Per Inch)指标. 经过我仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi . A4纸张的尺寸是2 ...
- linux设备树笔记__dts基本概念及语法【转】
转自:http://www.360doc.com/content/15/1113/11/15700426_512794532.shtml 设备树手册(Device Tree Usage)原文地址:ht ...
- java笔试题整理
exit()是system类的方法,如system.exit(); 如果某个方法是静态的,它的行为就不具有多态性. 类后面没有括号,方法必须要有返回值.如果没有返回值,要写void 构造函数不具有多态 ...
- oracle监听服务无法打开
原因: 修改了主机名,但没有修改监听文件listener.ora里面的配置. 解决办法:修改HOST与主机名相同 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION ...
- Git的搭建和使用技巧完整精华版
[Git使用技巧] 1.把一个已经存在于版本库中的文件加入忽略提交文件(.gitignore)中,需要如下代码: git rm --cached [文件路径] 例如: git rm --cached ...
- 【转】SVN提示:由于目标机器积极拒绝,无法连接 的解决方法
转载地址:http://wxiaolei.blog.163.com/blog/static/1038760120133108180596/ 安装完TSVN之后,checkout时报错,并且后来在cmd ...