用JAVA做一个剪刀,石头,布的人机猜拳游戏。

小游戏,是人和电脑对战,你输入石头或剪子或布后,电脑会说“你赢了”,“你输了”或“平”。请用javaSE定义玩家类和方法,计算机类和方法游戏类和方法玩家类名是Person... 小游戏,是人和电脑对战,你输入石头或剪子或布后,电脑会说“你赢了”,“你输了”或“平”。请用javaSE 定义玩家类和方法,计算机类和方法 游戏类和方法
玩家类名是 Person 计算机类名为 Computer 游戏类名 Game
小弟在此谢谢各位大虾了。
不要用数组哦 。。。 用三个类 是因为才学类和方法 增加对类和方法的印象和实际操作
展开
 我来答
123啊啊二
推荐于2019-08-01
知道答主
回答量:41
采纳率:0%
帮助的人:2.3万
展开全部

编写这个小游戏 我们需要几个类 

1、第一个 Person 类

import java.util.Scanner;

/**

* @copyright 2018 sugarsLab.com All rights reserved.

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @ClassName Person

* @description 用户类 用来计算用户输入

*/

public class Person {

public static final Person me = new Person();

private int n = 0;

/**

* @copyright 2018 sugarsLab.com All rights reserved.

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @description 用户输入的 指令

* @return

*/

public int input() {

System.out.println("请输入:石头,剪刀,布\n输入:@退出 退出系统");

@SuppressWarnings("resource")

Scanner scanner = new Scanner(System.in);

String s = scanner.next();

// s 里面存着 用户输入的 指令 切记这里不要使用 s.equals() 而是写 "指令".equals() 这么写 是为了避免空指针

if ("石头".equals(s)) {

n = 1;

} else if ("剪刀".equals(s)) {

n = 2;

} else if ("布".equals(s)) {

n = 3;

} else if ("@退出".equals(s)) {

System.out.print("系统退出了");

System.exit(0);

}

return n;

}

}

2、Computer 类

/**

* @copyright 2018 sugarsLab.com All rights reserved.

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @ClassName Computer

* @description 游戏中电脑类 用来产生随机数

*/

public class Computer {

public static final Computer me = new Computer();

/**

* @copyright 2018 sugarsLab.com All rights reserved.

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @description TODO

* @return {int} 返回值为int 类型

*/

public int random() {return (int) (Math.random() * 3 + 1);}

}

3、Game类

/**

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @ClassName Game

* @description 游戏类 用来计算游戏结果

*/

public class Game {

/**

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @description 返回 人机交互结果

* @param n

*            {int} 用户输入 的标识 石头 为 1 剪刀 为 2 布 为 3

* @param m

*            {int} 电脑产生的随机数 石头 为 1 剪刀 为 2 布 为 3

*/

public void result(int n, Integer m) {

String res = "";

if (m.intValue() == 1)

res = "石头";

else if (m.intValue() == 2)

res = "剪刀";

else

res = "布";

if (n == m) {

System.out.println("平了 computer出" + res);

} else {

if (m == 1) {

if (n == 2)

System.out.println("你输了 computer出 " + res);

else if (n == 3)

System.out.println("你赢了 computer出 " + res);

} else if (m == 2) {

if (n == 1)

System.out.println("你赢了 computer出 " + res);

else if (n == 3)

System.out.println("你输了 computer出 " + res);

} else if (m == 3) {

if (n == 1)

System.out.println("你输了 computer出 " + res);

else if (n == 2)

System.out.println("你赢了 computer出 " + res);

}

}

}

public static void main(String[] args) {

while (true) {

Game gamer = new Game();

gamer.result(Person.me.input(), Computer.me.random());

}

}

}

如下是程序运行截图

ydphaha
2009-05-18 · 超过34用户采纳过TA的回答
知道答主
回答量:390
采纳率:0%
帮助的人:0
展开全部
同意一楼的,为什么要高很多类呢?不就是个随机取数的问题么?
把楼下的int h = (int)(Math.random()*10); 改为*3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
25...4@qq.com
推荐于2017-11-27 · TA获得超过662个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:301万
展开全部
闲着没事,改了下,类分好了,随机数产生,修改了。望lz多思考。

import java.util.Scanner;

class Person {
int n = 0;
public int input() {

System.out.println("请输入:石头,剪刀,布");

Scanner sc = new Scanner(System.in);

String s = sc.next();
if(s.equals("石头")){
n = 1;
}else if(s.equals("剪刀")){
n = 2;
}else if(s.equals("布")){
n = 3;
}else if(s.equals("exit")){
System.out.print("系统退出了");
System.exit(0);
}

return n;

}

}

class Computer {
public int random() {
int h = (int)(Math.random()*3+1);
return h;
}

}

public class Game {
public void result(int n,int m){
if(n == m){
System.out.println("平了");
}else{
if(m==1){
if(n==2){
System.out.println("你输了");
}else if(n ==3){
System.out.println("你赢了");
}
}else if(m == 2) {
if(n == 1){
System.out.println("你赢了");
}else if(n ==3){
System.out.println("你输了");
}

}else if( m ==3 ){
if(n==1){
System.out.println("你输了");
}else if(n == 2){
System.out.println("你赢了");
}
}
}

}

public static void main(String[] args) {
while(true){
Person p = new Person();
Computer c = new Computer();
Game g = new Game();
g.result(p.input(), c.random());

}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曷凡
2009-05-18 · TA获得超过936个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:564万
展开全部
太简单~
不过用得着吗?
这么个小功能 定义3个类~
疯了~~~~~~~~~~~~
不超过30行代码能解决的事情~

呵呵 BLUCASTLE 的应该是可以的

还有,楼主,他给你的答案是你想要的,你如果想学好
那就把他的代码试着自己简化到最简单的,执行效率最高的~
我非为分而来,哈哈,为了伟大的共享世界而来!~~~~~~~~~~~~

另外,他的随机是用API实现的,你可以自己实现一个随机的方法嘛~
哈哈~~~~~~~
使用时间作为随机源~~~~~~~~~~

还有这是两个人的人机对战,如果3个人,4个人呢~~~~~
哈哈~~~~~~~~

我太疯狂了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0000zhangbo
2009-05-18 · 超过31用户采纳过TA的回答
知道答主
回答量:194
采纳率:0%
帮助的人:116万
展开全部
不用数组可以用enum啊,嘿嘿,不过搞这么多类我还搞不懂,初学者,体会不什么,等以后有体会了再来给你做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式