public class Game {
private Scanner scan = new Scanner(System.in)
private String rule[] = {"","剪刀","石头","布"}
private String role[] = {"","刘备","孙权","曹 *** "}
private Computer computer
private User user
private int roundCount
private Game(){
roundCount = 0
}
public static void main(String[] args) {
Game game = new Game()
game.start()
}
public void start(){
computer = new Computer()
System.out.println("- - 欢迎进入游戏世界 - -")
System.out.println("** ******************")
System.out.println("** 猜拳,开始 **")
System.out.println("** ******************")
System.out.println()
System.out.println("出拳规则:1.剪刀 2.石头 3.布")
System.out.print("请选择角色(1:刘备 2.孙权 3.曹 *** )")
int userRole = scan.nextInt()
if(userRole >=1 && userRole <=3){
user = new User(role[userRole])
System.out.println()
System.out.print("要开始吗?(y/n) ")
String start = scan.next()
if(start.equals("y")){
round()
}
else if(start.equals("n")){
}
}
}
private void round(){
roundCount ++
System.out.println()
System.out.print("请出拳:1.剪刀 2.石头 3.布 (输入相应数字): ")
int userRule = user.round()
if(userRule >= 1 && userRule <= 3){
int computerRule = computer.round()
judge(userRule,computerRule)
System.out.println()
System.out.print("是否开始下一轮(y/n): ")
String next = scan.next()
if(next.equals("y")){
round()
}
else if(next.equals("n")){
end()
}
}
}
private void judge(int ur,int cr){
System.out.println("你出拳:"+ rule[ur])
System.out.println("电脑出拳:"+ rule[cr])
if(ur == cr){
System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!")
}
else if((ur == 1 && cr== 3)||
(ur == 2 && cr == 1)||
(ur == 3 && cr == 2)){
System.out.println("结果:你赢了!")
user.win()
}
else{
System.out.println("结果:你输了!")
computer.win()
}
}
private void end(){
System.out.println("- -------------------------------------")
System.out.println(user.getName() + "VS" + computer.getName())
System.out.println("对战次数:" + roundCount)
if(computer.getWin() == user.getWin()){
System.out.println("结果:打成平手,下次再和你一分高下!")
}
else if(computer.getWin() > user.getWin()){
System.out.println("结果:你输了!电脑赢了" + computer.getWin()+"次!")
}
else{
System.out.println("结果:你赢了!你赢了" + user.getWin()+"次!")
}
System.out.println("- -------------------------------------")
}
class Computer{
private int win
private String name
public Computer(){
win = 0
name = "匿名"
}
public int round(){
return (int)(System.currentTimeMillis() % 3) + 1//随机返回1、2、3
}
public String getName(){
return name
}
public void win(){
win ++
}
public int getWin(){
return win
}
}
class User{
private int win
private String name = ""
public User(String name){
this.name = name
win = 0
}
public int round(){
return scan.nextInt()
}
public String getName(){
return name
}
public void win(){
win ++
}
public int getWin(){
return win
}
}
}
刚刚写好的,应该满足你的题目要求。赢了和输了的提示信息题目里没有是我自己随便写的。
package Demoimport java.util.Random
import java.util.Scanner
public class Demo12 {
public static void main(String[] args) {
String[] str = { "石头", "剪刀", "布" }
Random ram = new Random()
int y, n, i
while (true) {
System.out.println("菜单:\n1、开始猜拳 \n9、退出")
Scanner scan = new Scanner(System.in)
System.out.print("请选择:")
String s = scan.nextLine()
if ("1".equals(s.trim())) {
y = 0
n = 0
i = 0
while (true) {
try {
System.out.println("请出拳:1、石头 2、剪刀 3、布")
int s1 = Integer.parseInt(scan.nextLine())
if (s1 > 0 && s1 < 4) {
System.out.println("你 出:" + str[s1 - 1])
int s2 = ram.nextInt(3)
System.out.println("我 出:" + str[s2])
if (s1 == (s2 + 1)) {
System.out.println("这次是平局")
} else if ((s1 == 1 && s2 == 1)
|| (s1 == 2 && s2 == 2)
|| (s1 == 3 && s2 == 0)) {
System.out.println("这次你赢了!")
y++
} else if ((s1 == 1 && s2 == 2)
|| (s1 == 2 && s2 == 0)
|| (s1 == 3 && s2 == 1)) {
System.out.println("这次你输了!")
n++
}
if (i == 2) {
if (y > n) {
System.out.println("你赢了 " + y + ":" + n)
} else if (y < n) {
System.out.println("你输了 " + y + ":" + n)
} else {
System.out.println("平局 " + y + ":" + n)
}
break
}
i++
} else {
System.out.println("输入有误!")
}
} catch (Exception ex) {
System.out.println("输入有误!")
}
}
} else if ("9".equals(s.trim())) {
System.out.println("退出成功")
return
} else {
System.out.println("指令错误~")
}
}
}
}
菜单:
1、开始猜拳
9、退出
请选择:2
指令错误~
菜单:
1、开始猜拳
9、退出
请选择:1
请出拳:1、石头 2、剪刀 3、布
2
你 出:剪刀
我 出:布
这次你赢了!
请出拳:1、石头 2、剪刀 3、布
4
输入有误!
请出拳:1、石头 2、剪刀 3、布
3
你 出:布
我 出:布
这次是平局
请出拳:1、石头 2、剪刀 3、布
1
你 出:石头
我 出:石头
这次是平局
你赢了 1:0
菜单:
1、开始猜拳
9、退出
请选择:9
退出成功
大哥,刚刚看到你的就开始写了。各种功能都有,包括判断你输入的字符是否正确,假如不符合的字符就提示。不玩了就可以直接按0退出。
然后,只要是赢三次,输三次都自动退出,并输出你输赢,还可以自动共玩多少局,输赢局数统计!希望能帮到您。
/*
猜拳游戏思路
1、定义输入函数
2、提示用户输入猜拳数值
3、定义随机一个数作为电脑数值
4、判断[用户输入数值]与 [电脑随机数值]
5、能够相等就是打平,不能相等就利用&&、||逻辑符判断输赢
6、设定数值1-石头 2-剪刀 3-布
*/
import java.util.*//嵌入Java.util包所有
public class Cq{
public static void main(String[] args){
int win=0//赢的记录
int lose=0//输的记录
int all=1//计数总的局数
int a=1//控制循环条件使用
System.out.println("--------------猜拳游戏---------------")
System.out.println("游戏规则:赢三次便赢,输三次便输。")
while(a>0){//假如a=0的话就不用继续玩
Scanner in=new Scanner(System.in)//定义输入函数in,Scanner包功能,输入数值用的
System.out.println("请输入一个数值:1、石头 2、剪刀 3、布 0、退出游戏")//提示输入数值
System.out.println(" ")//空行
int x=in.nextInt()//让用户输入X的数值
Random on=new Random()//定义电脑的随机数值的函数on
int y=on.nextInt(3)+1//定义y随机函数数值范围(1--3)
if(x>=4){ //判断用户是否输入非1--3范围
System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x)
}else if(x==0){
a=0
System.out.println("欢迎再次玩“猜拳游戏”!")
return
}
else{
/*下面是判断用户输入x的数值 嵌套if*/
if(x==y){
if(x==1){ //判断打平的情况
System.out.println("你:石头------电脑:石头 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}
else if(x==2){
System.out.println("你:剪刀------电脑:剪刀 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}else {
System.out.println("你:布------电脑:布 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}
/* 打平手的判断END*/
}else if(x==1&&y==2||x==2&&y==3||x==3&&y==1){ //开始判断赢的情况
if(x==1&&y==2){
win++//win1
System.out.println("[你]:石头---VS---[电脑]:剪刀 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}else if(x==2&&y==3){
win++//win2
System.out.println("[你]:剪刀---VS---[电脑]:布 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}else {
win++//win3
System.out.println("[你]:布---VS---[电脑]:石头 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}
//判断赢的情况END
}else {//开始判断输的情况
if(x==1&&y==3){
lose++
System.out.println("[你]:石头---VS---[电脑]:布 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}else if(x==2&&y==1){
lose++
System.out.println("[你]:剪刀---VS---[电脑]:石头 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}else {
lose++
System.out.println("[你]:布---VS---[电脑]:剪刀 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
all++
}
}//判断输的情况END
if(win==3){
System.out.println("")
System.out.println("")
System.out.println("游戏结束:恭喜您!你已经赢了[电脑]三局!!!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
a=1
return
}else if (lose==3) {
a=1
System.out.println("")
System.out.println("")
System.out.println("游戏结束:很遗憾,电脑赢了你三盘!继续加油!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose)
return
}
else{continue}
}//判断是否输入数值1-3范围,如果不是1-3会提醒重新输入 END
}//while
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)