导航:首页 > 编程语言 > java石头剪刀布

java石头剪刀布

发布时间:2023-05-19 08:03:08

A. java课后作业一~石头剪刀布的问题

importjava.util.Scanner;


publicclassEasyGame或镇{

/**

*关于类及属性的权限问题请自行考虑设置,目前仅供参考

*/

inti;//循环索引

intn;//n轮

intna;//小a出拳周期长度

intnb;//小b出拳周期长度

int[]naArr;//小a出拳规律

int[]nbArr;//小b出拳规律

intwhoWin;//0为平手,大于0小a赢,小于0小b赢

Scanner衫禅粗sc=newScanner(System.in);


publicvoidinit(){

//System.out.ptintln("如有需要可在此自行添加友好提示");

n=sc.nextInt();//初始化出拳轮数

na=sc.nextInt();//初始化小a出拳周期长度

nb=sc.nextInt();//初始化小b出拳周期长度

initA();//初始化小a出拳规律

initB();//初始化小b出拳规律

}


publicvoidinitA(){

//System.out.ptintln("如有需要可在此自行添加友好提示");

naArr=newint[na];

for(i=0;i<na;i++){

naArr[i]=sc.nextInt();

}

}


publicvoidinitB(){

//System.out.ptintln("如有需要可在此自行添加友好提示");

nbArr=newint[nb];

for(i=0;i<nb;i++){

nbArr[i]=sc.nextInt();

}

}


publicvoidshowResult(){

//System.out.ptintln("如有需要可在此自行添加友好提示");

whoWin=0;//默认为平手

for(i=0;i<n;i++){

//System.out.println(naArr[i%na]+","+nbArr[i%nb]+";");

switch(naArr[i%na]-nbArr[i%nb]){

case-5://石头,布

whoWin--;

break;

case-3://剪刀,布

whoWin++;

break;

case-2://石头,剪刀

whoWin++;

break;

case2://剪刀,石头

whoWin--;

break;

case3://布,剪刀

whoWin--;

break;

case5://布,石头

whoWin++;

break;

default:

;

break;

}

}

if(whoWin>0){

System.out.println("A");

}elseif(whoWin==0){

System.out.println("B");

}else{

System.out.println("draw");

}

}


publicstatic袭空voidmain(String[]args){

//若需程序一直运行,可自行添加循环及条件

EasyGameeGame=newEasyGame();

eGame.init();

eGame.showResult();

}

}

试了可以哦,记得采纳

B. 如何用JAVA设计一个游戏,电脑和人玩剪刀石头布游戏,并且能显示游戏结果

写了一下,结果输出到桌面上,你把文件输出路径改成你的桌面路径就可以了,不知道你要不要最终结果

代码:

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

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

1、第一个 Person 类

import java.util.Scanner;

/**

* @right 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;

/**

* @right 2018 sugarsLab.com All rights reserved.

* @author jingfei.wu

* @date 2018年11月16日

* @version 1.0

* @description 用户输入的 指令

* @return

*/

public int input() {

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

@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 类

/**

* @right 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();

/**

* @right 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());

}

}

}

如下是程序运行截图

D. Java问题问一下,以下代码错在哪,拍拖大仙在eclipse运行下,帮忙找错,是个猜石头剪刀布化简的代码

1、29 行疑似中文输入法的括号

2、大括号需要成对出坦团返现, 图中明显缺少括号

※让饥或首 注: 仅供参考!

E. 在百度知道上找到了网友的java石头剪刀布游戏的代码,但是理解不来,希望大神能帮我把程序每句话都注释

public class Test {
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = { "剪刀", "石头", "布" };
private static int win = 0, loose = 0, draw = 0;

public static void main(String[] args) {
// 捕获用户输入类
sc = new Scanner(System.in);
//产生随机数的类
rad = new Random();

//一进来就让用户输入开始游戏,直到输入E, 退出游戏。
while (true) {
System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以隐猜退出~~~~~~~~~~~");
System.out.println("请选择你要出什么?Z——剪刀,灶岁型X——石头,C——布");

//获取用户输入的字符
String command = sc.nextLine();

//输入字符转换 手势没发比较大小 就把雀模字符转换成数字比较大小
int playerFinger = getValue(command);
if (playerFinger == -1) {//用户输入的是E ==> -1 表示退出
break;
}
else if (playerFinger == 3) {//用户输入的是 E Z X C 之外的字符 ==> 3 表示输入的不是合法的,然后继续让用户重新输入
System.out.println("输入错误,请参考说明!");
continue;
}
//当用户输入 ZXC 中的字符时才会到这一步
//用户的输入转换成了 0,1,2
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("你出的是" + FINGERS[playerFinger]);
//生成随机整数 3以内的(1,2,3)
int cpuFinger = rad.nextInt(3);
//finger[0]="剪刀" finger[1]="石头" finger[2]="布" 程序第一行定义好的
System.out.println("计算机出的是" + FINGERS[cpuFinger]);
//比较两个数字,你可以理解 0 就是剪刀,1是石头 2 是布
int result = playerFinger - cpuFinger;
if (0 == result) {//结果等于零说明两个数字一样
System.out.println("平局!");
draw++;
}
else if (-1 == result || 2 == result) {// 0-1=-1,1-2=-1,2-0=2 表示你输的三种情况 ;0 就是剪刀,1是石头 2 是布
System.out.println("你输了!");
loose++;
}
else {//剩下的情况除了平局,输局 肯定就是你赢了
System.out.println("你赢了!");
win++;
}
}

System.out.println("游戏结束!\r\n游戏统计次数");
System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));
}

/**
* 用户输入字符进行转换
* 输入字符 E 就返回-1 作为后续判断,表示退出程序
* 输入字符 Z 返回 0 代表剪刀
* 输入字符 X 返回 1 代表石头
* 输入字符 C 返回 2 代表布
* 输入其他字符 返回3 ,表明输入的不是符合规则的手势(0,1,2)
*
* @param command
* @return
*/
private static int getValue(String command) {
if (command.equalsIgnoreCase("E")) {
return -1;
}
if (command.equalsIgnoreCase("Z")) {
return 0;
}
if (command.equalsIgnoreCase("X")) {
return 1;
}
if (command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
}

F. 做一个java剪刀石头

java剪刀石头游戏,可以使用scanner类接收控制端输入的数值,利用if-else语句进行判断,实例如下:

importjava.util.Scanner;

classPerson{
intn=0;
publicintinput(){

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

Scannersc=newScanner(System.in);

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

returnn;

}

}

classComputer{
publicintrandom(){
inth=(int)(Math.random()*3+1);
returnh;
}

}

publicclassGame{
publicvoidresult(intn,intm){
if(n==m){
System.out.println("平了");
}else{
if(m==1){
if(n==2){
System.out.println("你输了");
}elseif(n==3){
System.out.println("你赢了");
}
}elseif(m==2){
if(n==1){
System.out.println("你赢了");
}elseif(n==3){
System.out.println("你输了");
}

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

}

publicstatic返胡搜voidmain(String[]args){
while(true){
Personp=newPerson();
Computerc=newComputer();
Gameg=newGame();
g.result(p.input(),c.random());

}
}
}

G. 用java编一个程序,实现两个人玩“石头、剪刀、布”,要求用枚举类型定义石头、剪刀、布

publicclassTest{
publicenumHand{//猜拳枚举
ROCK,SCISSORS,PAPER;
publicstaticHandgetHand(intindex){
Handhand=null;
switch(index){
case0:
hand=Hand.ROCK;
break;
case1:
hand=Hand.SCISSORS;
break;
case2:
hand=Hand.PAPER;
break;
default:
hand=Hand.ROCK;
break;
}
returnhand;
}
}

publicstaticvoidmain(String[]args){
//两个人猜拳5次
for(inti=0;i<5;i++){
Handhand1=Hand.getHand((int)(Math.random()*3));
Handhand2=Hand.getHand((int)(Math.random()*3));
judge(hand1,hand2);
}

}

privatestaticvoidjudge(Handhand1,Handhand2){
if(hand1==Hand.ROCK){
if(hand2==Hand.ROCK){
System.out.println("第一个出拳头,第二个出拳头,平局");
}elseif(hand2==Hand.SCISSORS){
System.out.println("第一个出拳头,第二个出剪刀,第一个赢");
}elseif(hand2==Hand.PAPER){
System.out.println("第一个出拳头,第二个出布,第二个赢");
}
}elseif(hand1==弊谨Hand.SCISSORS){
if(hand2==Hand.ROCK){
System.out.println("第一个出剪刀,第二个出拳头,第二个赢");
}elseif(hand2==Hand.SCISSORS){
System.out.println("第一个出剪刀,第二个出剪刀,平局");
}elseif(hand2==Hand.PAPER){
System.out.println("第一个出剪刀,第二个出布,第一个赢");
}
}elseif(hand1==Hand.PAPER){
if(hand2==Hand.ROCK){
System.out.println("第一个租迟基出布,第二个出拳头,第一个赢");
}elseif(hand2==Hand.SCISSORS){
System.out.println("第一个出布,第二个出剪刀,第二个赢");
}elseif(hand2==Hand.PAPER){
System.out.println("第一个出布,第二个出布,平局");
}
}
}
}

应该不是最优解决办法,先旦侍这么着把

阅读全文

与java石头剪刀布相关的资料

热点内容
把文件夹设锁 浏览:570
命令行语句 浏览:218
企友3e财务如何连接服务器 浏览:984
华为手机如何删除卸载app残留数据 浏览:543
rpm的命令作用 浏览:365
如何查看网站的服务器时间 浏览:850
编译局和人民出版社 浏览:652
java泛型extends 浏览:326
头条程序员教学 浏览:772
安卓合并什么意思 浏览:530
linux在光盘引导 浏览:537
imap服务器地址怎么查 浏览:654
作曲教程pdf 浏览:506
pr怎么压缩文件大小 浏览:863
查看oracle字符集命令 浏览:179
锂电池增加密度 浏览:661
linux用户密码忘记 浏览:242
gb压缩天然气 浏览:635
图片拼接不压缩app 浏览:670
我的世界如何编程 浏览:86