用java编写一个猜拳游戏

用java编写一个猜拳游戏,第1张

import java.util.Scanner

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 Demo

import 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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12111485.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存