java编程人机猜拳类和对象做求代码

Python015

java编程人机猜拳类和对象做求代码,第1张

先建立个Game包

然后我做的是分了5个类来做的

TestStartGuess 类

package com.game.guess

public class TestStartGuess {

/**

* 人机互动版猜拳游戏

* 程序入口

*/

public static void main(String[] args) {

Game game=new Game()

game.initial()

game.startGame()

}

}

2.Person 类

package com.game.guess

import java.util.Scanner

/**

* 用户类

*阶段1完成

* @param <Scanner>

*/

public class Person {

String name ="匿名"//名字

int score =0//积分

/**

* 出拳

*@return出拳结果:1.剪刀 2.石头 3.布

*/

public int showFist(){

//接收用户的选择

Scanner input =new Scanner(System.in)

System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字):")

int show=input.nextInt()

//输出出拳结果,并返回

switch(show){

case 1:

System.out.println("你出拳:剪刀")

break

case 2:

System.out.println("你出拳:石头")

break

case 3:

System.out.println("你出拳:布")

break

}

return show

}

}

3.Computer 类

package com.game.guess

/**

*计算机类

*阶段2完成

*/

public class Computer{

  String name="电脑"//名字

  int score = 0//积分

  /**

  *出拳

  *@return 出拳结果:1.剪刀 2.石头 3.布

  */

  public int showFist(){

           //产生随机数

           int show =(int)(Math.random()*10)%3+1//产生随机数,表示电脑出拳

           //输出出拳结果并返回

    switch(show){

case 1:

System.out.println(name+"你出拳:剪刀")

break

case 2:

System.out.println(name+"你出拳:石头")

break

case 3:

System.out.println(name+"你出拳:布")

break

}

return show

}

}

4.Game 类

package com.game.guess

import java.util.Scanner

/**

* 游戏类类完全版

* 阶段7:功能扩展

* @param <computer>

*

*/

public class Game<computer>{

Person person//甲方

Computer computer //乙方

int count//对战次数

/**

* 初始化

*/

public void initial(){

person=new Person()

computer=new Computer()

count=0

}

/**

* 开始游戏

*/

@SuppressWarnings("resource")

public void startGame(){

System.out.println("-------欢迎进入游戏世界-------\n")

System.out.println("\n\t\t***************")

System.out.println("\t\t**猜拳,开始 **")

System.out.println("\t\t***************")

System.out.println("\n\n出拳规则:1.剪刀,2.石头,3.布")

Scanner input=new Scanner(System.in)

String exit="n"//退出系统

do{

initial()//初始化

/*选择对方角色*/

System.out.print("请选择对方角色:(1:刘备,2:孙权,3:曹操):")

int role=input.nextInt()

if(role==1){

computer.name="刘备"

}else if(role==2){

computer.name="孙权"

}else if(role==3){

computer.name="曹操"

}

//扩展功能1:输入用户姓名

/*输入用户姓名*/

System.out.print("请输入你的姓名:")

person.name=input.next()

System.out.println(person.name+"VS"+computer.name+"对战\n")

//扩展功能1结束

System.out.print("要开始吗?(y/n)")

String start=input.next()//开始每一局游戏

int perFist//用户出的拳

int compFist//计算机出的拳

while(start.equals("y")){

/*出拳*/

   perFist=person.showFist()

   compFist=computer.showFist()

   /*裁决*/

   if((perFist==1&&compFist==1)||(perFist==2&&compFist==2)||(perFist==3&&compFist==3)){

       System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!\n") //平局

              }else if((perFist==1&&compFist==3)||(perFist==2&&compFist==1)||(perFist==3&&compFist==2)){

           System.out.println("结果:恭喜,你赢了!") //用户赢

                    person.score++

              }else{

                System.out.println("结果说:^_^,你输了,真笨!\n") //计算机赢

                computer.score++

              }

              count++

              System.out.println("\n是否开始下一轮(y/n):")

              start=input.next()

              }

/*显示结果*/

showResult()

//扩展功能3:循环游戏,知道退出系统

System.out.print("\n要开始下一局吗?(y/n):")

exit=input.next()

       System.out.println()

       //扩展功能3结束

}while(!exit.equals("n"))

System.out.println("系统退出!")

}

/**

* 显示比赛结果

*/

public void showResult(){

/*显示对战次数*/

System.out.println("-------------------------------")

          System.out.println(computer.name+"VS"+person.name)

          System.out.println("对战次数:"+count)

       

          //扩展功能2:显示最终的得分

          System.out.println("\n姓名\t得分")

          System.out.println(person.name+"\t"+person.score)

System.out.println(computer.name+"\t"+computer.score+"\n")

   //扩展功能2结束

          /*显示对战结果*/

          int result=calcResult()

          if(result==1){

          System.out.println("结果:打成平手,下次再和你一分高下!")

          }else if(result==2){

          System.out.println("结果:恭喜恭喜!") //用户获胜

          }else{

          System.out.println("结果:呵呵,笨笨,下次加油啊!") //计算机获胜

          }

System.out.println("--------------------------------")

}

/**

* 计算比赛结果

* @return1:战平; 2:用户赢; 3:电脑赢

*/

public int calcResult(){

if(person.score==computer.score){

return 1//战平

}else if(person.score>computer.score){

return 2//用户赢

}else{

return 3//电脑赢

}

}

}

5.Start 类

package com.game.guess

public class StartGuess {

public static void main (String[] args){

Game c = new Game()

c.initial()

c.startGame()

}

}

然后编译执行就OK了

希望能帮到你

Java实现猜拳游戏的核心在于电脑随机数的生成,Java中的随机数生成方法是:

首先引入包   import java.util.*  然后   int r=new Random().nextInt(3)  (nextInt中的数字三代表随机数生成的个数,从零开始)

所以在猜拳的输入中需要有0、1、2三个数字代替,如果要输入汉字,则用if进行相应判断即可。

在实现的游戏中实现①猜拳;②记录胜负;③玩家决定游戏局数;④输出获胜、失败及平局;⑤统计总共的胜负结果(根据获胜次数判断)

①猜拳基础功能:该部分代码可以放到一个方法中,减少主函数代码量。

电脑出拳即  int r=new Random().nextInt(3)  注意:该部分一定要写在for循环内部,否则无法实现每次不同的随机数。

通过if判断双方出拳是否相等   if(a==0&&r==0)  else if(a==0&&r==1)  else if(a==0&&r==2)   即可实现猜拳,if内直接输出相关语句即可

②记录胜负:  定义猜拳方法为int ,通过返回值记录相关比赛的胜负情况  ,可以用0--失败;1--获胜;2--平局 进行记录,在主函数中对相应抛出的数字记录即可

if(a==0&&r==0){

System.out.println("The computer comes out with cloth,it was a draw. ")

return 2

}

h=comp.compare(a,r) if (h==1)j++

登录后复制

③玩家决定局数: 定义一个数,在循环中不大于该数即可

④输出获胜、失败及平局: j、k即胜利和失败,平局数即n-j-k。

⑤统计结果,直接用if比较i、j的数字结果即可。

主函数部分:

package SS2_5

import java.util.*

public class Main {

public static void main(String args[]){

Scanner scanner=new Scanner(System.in)

Compare comp=new Compare()

int h=0,j=0,k=0

System.out.println("rules:0--cloth1--stone2--scissors.\nU can choose how many times you want to play:")

int n=scanner.nextInt()

for(int i=1i<=ni++){

System.out.print("It's the "+i+" round,your turn:")

int a=scanner.nextInt()

int r=new Random().nextInt(3)

switch (a){

case 0:

h=comp.compare(a,r)

break

case 1:

h=comp.compare(a,r)

break

case 2:

h=comp.compare(a,r)

break

default:

System.out.println("Wrong number!")

break

}

if (h==1)

j++

else if(h==0)

k++

}

System.out.println("The total times you won are "+j+",The draw times are "+(n-j-k)+".")

if(j>k)

System.out.println("You are the final winner")

else if(k>j)

System.out.println("The computer is the winner.")

if(j==k)

System.out.println("The final result is draw")

}

}

登录后复制

compare方法部分

package SS2_5

public class Compare {

public int compare(int a,int r){

int counter=0

if(a==0&&r==0){

System.out.println("The computer comes out with cloth,it was a draw. ")

return 2

}

else if(a==0&&r==1){

System.out.println("The computer comes out with stone, you won. ")

return 1

}

else if(a==0&&r==2){

System.out.println("The computer comes out with scissor,you lost. ")

return 0

}

else if(a==1&&r==0){

System.out.println("The computer comes out with cloth,you lost. ")

return 0

}

else if(a==1&&r==1){

System.out.println("The computer comes out with stone,it was a draw. ")

return 2

}

else if(a==1&&r==2){

System.out.println("The computer comes out with scissors,you won. ")

return 1

}

else if(a==2&&r==0){

System.out.println("The computer comes out with cloth,you won. ")

return 1

}

else if(a==2&&r==1){

System.out.println("The computer comes out with stone,you lost. ")

return 0

}

else if(a==2&&r==2){

System.out.println("The computer comes out with scissors,it was a draw. ")

return 2

}

else

return 0

}

}

登录后复制

java

704拖拉机

精选推荐

广告

java写简单的猜拳游戏

2下载·0评论

2016年7月27日

用Java编写的猜拳小游戏

2029阅读·0评论·0点赞

2021年3月7日

Java猜拳游戏和Random的应用

21阅读·0评论·0点赞

2022年10月24日

java实现完整版猜拳小游戏

25下载·0评论

2018年11月22日

用python实现功能猜拳

1137阅读·2评论·3点赞

2022年7月14日

java猜拳switch计分制_java----猜拳(10局分胜负)

117阅读·0评论·1点赞

2021年3月15日

二手拖拉机交易市场,你还在高价买吗?

精选推荐

广告

利用Java编写简单的猜拳游戏

911阅读·0评论·1点赞

2022年9月8日

Java简单实现猜拳游戏

1.1W阅读·1评论·2点赞

2022年1月23日

java猜拳游戏代码_Java实现简单猜拳游戏

4496阅读·0评论·0点赞

2021年3月1日

用java来写一个简单的猜拳小游戏

890阅读·1评论·1点赞

2022年7月26日

java实现猜拳游戏

3180阅读·2评论·1点赞

2022年5月4日

JAVA编写猜拳游戏

3037阅读·3评论·3点赞

2021年3月16日

[Java教程]17.实战,趣味猜拳小游戏

8040阅读·2评论·3点赞

2020年6月24日

怎么用java实现人机猜拳?

1959阅读·6评论·9点赞

2021年7月22日

Java Random经典例子【猜拳游戏】

4318阅读·0评论·0点赞

2014年3月22日

java的人机猜拳代码_Java实现人机猜拳游戏

702阅读·0评论·2点赞

2021年3月12日

Java基础练习之猜拳游戏

363阅读·1评论·1点赞

2021年8月19日

用java写猜拳小游戏

1096阅读·0评论·1点赞

2021年9月1日

Java猜拳小游戏

97阅读·0评论·0点赞

2022年8月23日

java猜拳小游戏

500阅读·1评论·0点赞

2022年7月14日

我之前写了个猜拳游戏的源代码,不过没你想的这么精彩。你才给5分就给你你自己修改了,应该很简单的。要多给点分我可以帮你修改。

import java.util.Scanner

import java.util.Random

public class caiquan

{

final int jiandao=0

final int shitou=1

final int bu=2

public static void main(String[] args)

{

String yn=y

while (yn.equals(y))

{

Scanner scanner = new Scanner(System.in)

System.out.println(欢迎玩猜拳游戏。请输入0,1,2:0表示剪刀,1表示石头,2表示布)

int a = scanner.nextInt()

Random rd = new Random()

int b = rd.nextInt(3)

switch (b)

{

case 0:

{

System.out.println(系统出的是剪刀)

switch(a)

{

case 0:System.out.println(平)break

case 1:System.out.println(赢)break

case 2:System.out.println(输)break

}

}

break

case 1:

{

System.out.println(系统出的是石头)

switch(a)

{

case 0:System.out.println(输)break

case 1:System.out.println(平)break

case 2:System.out.println(赢)break

}

}

break

case 2:

{

System.out.println(系统出的是布)

switch(a)

{

case 0:System.out.println(赢)break

case 1:System.out.println(输)break

case 2:System.out.println(平)break

}

}

}

Scanner ynn = new Scanner(System.in)

System.out.println(是否继续?是请输入y,否则输入n。)

yn=ynn.next()

}

}

}