人机猜拳思路
- 格式:docx
- 大小:12.86 KB
- 文档页数:5
十五二十猜拳怎么玩
十五二十猜拳怎么玩
每人两只手,两个人加起来最多是20,双方每次出没有(双手握拳伸出为没有),5(一手握拳一手伸直为5),10(双手伸直为10)这三种数字,同时报一个比自己手上出的数字大或相同的数字,如果双方出的加起来等于自己报的数字,自己就赢。
推算一下,报的最小数字是0,因为双方都可能出没有。
最大是20,因为双方都可能出10。
举例:如果你出没有并报没有,那如果对方也出没有,你就赢了。
而如果你出没有报没有,对方出几报几,对方就赢。
总之大规则就是双方手上加起来总和等于哪方嘴里喊的,哪方就赢。
如果双方手上加起来不等于双方任何一方嘴上喊的,哪就没有输赢,继续猜。
一般来说,这种猜拳赢的几率是比较大的,因为包含的数字只有5个。
所以大多是三盘两负的才喝,如果每赢一次输家都喝,那猜不了十分钟就会有人醉倒在地上。
我国最普及的喝酒猜拳跟这个差不多,不过包含的数字可多了,从2到10。
而且是单手。
很不容易猜中,一般在中原及北方各地比较盛行。
十五二十则是东南方甚至港澳台比较流行的。
Java程序设计基础实验报告班级:学号:姓名:实验题目:猜拳小游戏实验要求:用java编写一个人机对战的猜拳小游戏。
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
有基本的UI界面。
实验内容:1、问题分析过程:实验针对java的具体应用,设计了猜拳小游戏。
根据游戏的规则,玩家可以和电脑进行对战。
成学的主要功能是使用标准的JDK进行编译和运行。
定义玩家自己选择性出拳,电脑随机出拳,赢的记10分,输的记0分,平局都记10分。
本程序设计了Game、Person、Player、等多个类,通过程序设定的规则来实现游戏。
(登陆界面)(初始界面)(游戏界面)2、主要实现代码:******************************oString();"="+playerName);etName());etName());造函数的特点:* A:函数名和类名相同* B:函数没有返回类型,即使void也不行* 2.构造函数什么时候被执行:在用户实例化对象时编译器自动调用的,用户无法调用* 3.构造函数完成什么样的工作:在用户实例化对象时完成实例变量(被static的变量)的初始化工作**/public LoginFrame() {etScreenSize();etResource[index]);return new ImageIcon(url);}/*** 根据选手索引的猜拳状态创建ImageIcon对象* @param player_index 选手索引* @param state 猜拳状态,0:初始状态,1:赢状态;2:平局;3:输状态* @return ImageIcon对象*/public ImageIcon getPlayerIcon(int player_index,int state){URL url=getClass().getResource[player_index][state]);return new ImageIcon(url);}public static String getResult(Player userPlayer,Player computerPlayer){count++;int differ=()();int state=0;etPlayerIcon, 0));jContentPane = new JPanel();(null);etMorraIcon (new Game().getMorraIcon ;(new Game().getPlayerIcon(img_index, + "");+ "");+ "");}/*** 恢复游戏初始状态*/private void setInit() {=false;=0;本类型的默认值: byte(1) 0 short(2) 0 int(4) 0 long(8) 0 * char(2) '\0' boolean(2) false* float(4) double* 2.引用类型的默认值:null** 基本类型和引用类型的区别:* 基本类型是在栈内存中存放数据值* 引用类型是在栈内存中存放引用地址,在堆内存中存放数据值的* @author hsj* @version**/public class Person {private String name;private int age;public Person(String name, int age) {super();= name;= age;}public Person() {例化Person类型的对象Person p1=new Person("张三",20);用display()函数完成成员变量的输出工作//段落注释的快捷键:ctrl+shift+o/*();();*/}}3、实验心得体会:通过这次java实验。
猜拳的使用技巧
1. 观察对方:观察对方出拳的习惯和规律,有助于预测下一次出拳的可能性。
2. 节奏变化:尝试改变出拳的速度和节奏,创造出意想不到的出拳方式,使对手难以预测。
3. 心理战术:可以通过言语或肢体语言激怒对手或干扰其思维,从而达到取胜的目的。
4. 策略:可以在前几局中示弱,让对手看出自己的出拳规律或状态,然后在后几局中反击取胜。
5. 集中注意力:不要分散注意力,专注于对手的出拳和身体语言,以及自己的出拳速度和节奏等因素。
6. 短期记忆:试着记住对手的出拳次数和规律,以此为基础进行反应和下一步的出拳。
7. 调整状态:处理好心理和情绪上的问题,以保持最佳状态进行比赛。
猜拳技巧有哪些猜拳技巧有哪些猜拳技巧有哪些 1首先,需要区分1V1(一对一)还是1VN(和一群人一起)情景。
1V1取胜逻辑第一次出拳,正常情况下大部分人的手在落下的时候一般是握着的,也就是和石头一样。
猜拳中石头和剪刀布是不一样的,因为石头是把拇指都收拢在一起,普通人的心理(潜意识)是出拳时手的形态应该有一定改变,也就是说第一次出拳大概率会选择剪刀或者布。
而在普通人思维当中剪刀相对于布更具攻击性也更顺手(回想一下各种照片上的剪刀手造型),尤其是女生,据我观察,90%的女生第一次出拳都会选择出剪刀。
所以,针对1V1的情况,第一次出拳建议使用石头来针对众多的剪刀们。
1VN取胜逻辑在对多人猜拳时,第一次千万别出石头!和1V1情况不同,因为多人参与情况下,知道出石头胜率高的人出现的几率会增大,这个时候大概率会出现前几盘剪刀石头布同出不分胜负的情况,参与人员会不断调整自己的出拳策略,但是一般最后都是出布的胜利。
直到最后变成1V1,又可以回到出石头的策略上来。
最后,如果你完全不知道我在说些什么的话,就记住下面两点就可以了:1.1V1的时候出石头;2.1VN的时候出布。
猜拳技巧有哪些 2之所以说“公平”,是因为从表面上来看,出石头、剪刀和布的概率均为1/3,因此每局游戏胜负平的概率也各为1/3,所以看起来,对阵双方的赢面是一样的。
然而,人毕竟不是机器,我们的决策,会受到各种因素的干扰,体现在RPS游戏中,便是,我们并不能做到每一个决策都是相同的概率——在单局游戏中,我们对石头、剪刀、布中的某一个决策会有所偏好。
在多局游戏中,我们在某回合的决策会受到上一回合决策以及胜负结果的影响。
那么,我们究竟更喜欢石头、剪刀、布中的哪一个呢? 上局游戏的胜负,又是如何影响我们对下局游戏的决策的呢?也巧,还真有人正儿八经地研究过这个问题——浙江大学实验社会科学实验室王志坚研究员、浙江工商大学公共管理学院许彬教授和中国科学院理论物理研究所周海军研究员对曾对这个问题进行了长达4年的研究,他们的成果 Socialcycling and conditional responses in the Rock-Paper-Scissors Game 在2014年12月24日入选了《麻省理工科技评论》2014年度最佳成果(Best of 2014)。
四选项猜拳必胜法
秘笈一:闭着眼睛出拳
因为猜拳规则简单,所以要想赢对手,运气和心理因素就显得非常重要。
这其中,运气是我们所不能控制。
剩下的,就只有好好地利用心理战术了。
秘笈二:让对手以为你要出剪刀
当然这个“剪刀”只是例子而已,你也可以让对手以为你要出“石头”或“布”。
如果对手以为你会出剪刀,那么他一定会出石头,因此你出布的话就赢定了。
秘笈三:直接出布
有统计数据显示,猜拳游戏中,出布的概率是29.6%,出剪刀的概率是35%,出石头的概率是35.4%。
因为出石头的概率要稍微高出那么一点,所以出布的话,能赢的概率也会稍微高出那么一点。
Java程序设计实验报告班级:11060341X 学号:50 姓名:马一桃实验题目:猜拳小游戏实验要求:用java编写一个人机对战的猜拳小游戏。
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
有简单的操作界面。
实验内容:1、问题分析过程:人机猜拳:人可以通过选择出拳,通过键盘输入相应数字来实现。
电脑那么随机性出拳,由电脑产生随即数来实现。
通过游戏规那么判断双方的输赢,显示当局的输赢情况,并记录当局的分数,并各方的输赢情况。
游戏完毕时显示双方的分数以及输赢情况。
面向的对象有人、电脑以及游戏规那么。
人、电脑都有实现自己出拳的方法,同时还要有判断各方输赢的方法。
2、主要实现代码:〔要求有必要的注释〕:import java.util.Scanner; //通过import语句引入Scanner类public class Game{public static void main(String args[]){int x=0; //用户的初始分数为0int y=0; //电脑的初始分数为0int z=0; //开场时决战次数为0System.out.println("\n");System.out.println("猜拳游戏现在开场,准备好了吗?");System.out.println("===========游戏规那么===========");System.out.println(" 胜利加一分,否那么不加分 ");System.out.println(" 当游戏完毕时分高者为胜 ");System.out.println("==============================");Scanner shuzi = new Scanner(System.in); //用户通过键盘输入System.out.println("是否要开场游戏?"+"\n"+" y/n");String m = shuzi.next();while(m.equals("y")) {System.out.println("请选择数字出拳:");System.out.println("1 石头 2 剪刀 3 布");int A = shuzi.nextInt(); //利用switch语句,用户实现出拳switch(A){case 1:System.out.println("我出拳: 石头");break;case 2:System.out.println("我出拳: 剪刀");break;case 3:System.out.println("我出拳: 布");break;}int B = (int)((Math.random()*10)%3 + 1); //电脑产生随机数,进展出拳 switch(B){case 1:System.out.println("电脑出拳: 石头");break;case 2:System.out.println("电脑出拳: 剪刀");break;case 3:System.out.println("电脑出拳: 布");break;}if(A==B){ //一局游戏判断输赢的过程System.out.println("哎呦,平局!再努力! ");z++;}else if(((A==1)&(B!=3))||((A==2)&(B!=1))||((A==3)&(B!=2))){System.out.println("不错嘛,赢了!");x++;z++;}else{System.out.println("唉,输了,得加油啊!");y++;z++;}System.out.println("\n");System.out.println("有种再来一局"+"\n"+"y/n");m = shuzi.next();}System.out.println("游戏完毕" );System.out.println("对战的次数为"+z);System.out.println("你的分数:" +x);System.out.println("电脑的分数:"+y);if(x>y){ //最终比游戏结果的判断System.out.println("噢耶!完胜电脑!");}else if(x==y){System.out.println("彼此彼此,水平相当么~");}else{System.out.println("不幸输了,改日再和你比赛!");}}}开场界面进展一局游戏结果游戏最终结果的判断3、实验心得体会:3.1出现的问题及解决方案〔1〕在编译源文件时,出现了这么个问题这是一个编码的问题。
人机猜拳游戏课程设计 JAVA一、教学目标本课程旨在通过学习Java编程语言,让学生掌握人机猜拳游戏的基本原理和实现方法。
具体目标如下:知识目标:使学生了解Java编程语言的基本语法和结构;理解人机猜拳游戏的规则和逻辑。
技能目标:培养学生使用Java编程语言实现简单程序的能力;培养学生分析问题、解决问题的能力。
情感态度价值观目标:培养学生对计算机科学的兴趣和好奇心;培养学生勇于尝试、不断探索的精神。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法和结构、人机猜拳游戏的规则和逻辑。
具体安排如下:第1-2课时:Java编程语言的基本语法和结构第3-4课时:人机猜拳游戏的规则和逻辑第5-6课时:使用Java编程语言实现人机猜拳游戏三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:第1-2课时:采用讲授法,介绍Java编程语言的基本语法和结构。
第3-4课时:采用讨论法,引导学生探讨人机猜拳游戏的规则和逻辑。
第5-6课时:采用实验法,让学生动手实践,使用Java编程语言实现人机猜拳游戏。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:教材:《Java编程语言》参考书:《Java核心技术》多媒体资料:相关教学视频、案例分析实验设备:计算机、网络设备以上是本课程的教学设计,我们将根据实际情况进行调整和优化,以达到最佳教学效果。
五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:包括课堂参与度、提问回答、团队合作等,占总成绩的30%。
2.作业:包括编程练习、课后作业等,占总成绩的30%。
3.考试:包括期中和期末考试,占总成绩的40%。
以上评估方式将根据学生的实际表现进行调整,确保评估结果能够真实反映学生的学习成果。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有足够的学习时间。
ktv手指猜拳游戏教案KTV手指猜拳游戏教案。
一、游戏介绍。
KTV手指猜拳游戏是一款简单有趣的休闲游戏,适合朋友之间或者家庭成员之间进行。
游戏规则简单,玩法多样,能够增进亲情、友情和团队合作,是一款非常受欢迎的游戏。
二、游戏准备。
1. 参与游戏的人数,2人或以上。
2. 准备一张桌子或者一块平整的地面作为游戏区域。
3. 确定游戏的胜负规则。
三、游戏规则。
1. 确定出拳方式,每个玩家将手掌伸开,用手指代表石头、剪刀和布,分别用拇指、食指和中指代表。
其他手指握拳,不参与游戏。
2. 确定胜负关系,可以根据常规的猜拳规则,即石头胜剪刀、剪刀胜布、布胜石头;也可以根据自己喜好设定其他的胜负关系,比如石头胜布、布胜剪刀、剪刀胜石头等。
3. 开始游戏,所有玩家一起伸出手指,同时喊出“猜拳!”的口号,然后展示自己的手指姿势。
4. 判断胜负,根据玩家展示的手指姿势,判断胜负关系,确定胜者和败者。
5. 继续游戏,胜者可以继续和其他玩家进行猜拳,直到确定最终的胜者。
四、游戏技巧。
1. 观察对手,在游戏过程中,要学会观察对手的习惯和动作,尽量猜测对方下一步的出拳方式。
2. 灵活变通,可以在游戏过程中变换自己的出拳方式,不要固守一种模式,增加游戏的趣味性。
3. 注意配合,如果是团队游戏,要和队友进行配合,制定出拳策略,互相帮助取得胜利。
五、游戏收获。
1. 增进友情,通过游戏,可以增进朋友之间的情感交流,加深友谊。
2. 锻炼思维,在游戏中需要不断观察、思考和判断,可以锻炼自己的思维能力。
3. 培养团队意识,在团队游戏中,可以培养团队合作意识,学会和队友配合取得胜利。
六、游戏注意事项。
1. 注意安全,在游戏过程中要注意手指不要受伤,避免过于激烈的动作。
2. 尊重规则,在游戏中要尊重规则,不要作弊或者违规操作。
3. 注意情绪控制,游戏是为了增进友情和娱乐,不要因为输赢而影响情绪,要保持愉快的心情参与游戏。
总结,KTV手指猜拳游戏是一款简单有趣的休闲游戏,适合朋友之间或者家庭成员之间进行。
python实现⼈机猜拳⼩游戏今天的这篇⽂章呢是对⼈机猜拳⼩游戏——⽯头剪⼑布的⼀个描述以及代码展现⽯头剪⼑布游戏代码的简介:关于⽯头剪⼑布这个⼩游戏,⼤致得到思路就是,玩家出⼀个⼿势,然后电脑再随机出⼀个⼿势,最后再判断是玩家获胜还是电脑获胜。
最简单的思路就是将这三个⼿势是三个代号来表⽰,然后再去判断代号之间的关系,最后输出胜⽅。
最⼀般情况下,最先想到的就是使⽤1、2、3数字来对三个⼿势进⾏代号化,然后再通过代号的⼤⼩去判断,如下是对这个⽅式的简述:⽯头代号⽤1来表⽰剪⼑代号⽤2来表⽰布代号⽤3来表⽰⽯头 > 剪⼑剪⼑ > 布布 > ⽯头站在玩家的⾓度考虑玩家胜利的情况(分析电脑胜利也是⼀样的):如果玩家出的是⽯头,只有电脑出剪⼑时玩家才可以胜利,⽯头代号为1 ,剪⼑代号为2,⽯头代号<剪⼑代号,同时⽯头代号也<布的代号;如果玩家出的是剪⼑,只有电脑出布时玩家才可以胜利,剪⼑代号为2 ,布代号为3,剪⼑代号<布代号;如果玩家出的是布,只有电脑出⽯头是玩家才可以胜利,布的代号为3,⽯头代号为1,布的代号>⽯头的代号。
由这三条分析可以看出,单纯⽤这三个数字来⽐较⼤⼩的⽅式(即玩家⼿势代号⼤于或者⼩于电脑⼿势代号的⽅式)⽐较复杂。
1. 本代码思路,使⽤三种分类⽅式:玩家赢,平局,玩家输来进⾏三种判断,当玩家出⽯头(1)并且电脑出剪⼑(2)或者玩家出剪⼑(2)并且电脑出布(3)或者玩家出布(3)并且电脑出⽯头(1)这三种情况时,玩家赢;当玩家和电脑的⼿势代号⼀致时,平局;其他情况玩家输。
代码如下:import random #导包print("********欢迎来到猜拳⼩游戏********")while True:key = int(input("请输⼊您的出拳选项:1,剪⼑。
2,⽯头。
3,布:")) #从键盘上得到⼿势代号while (key not in [1, 2, 3]): #判断当输⼊的⼿势代号是否符合要求,不符合要求时,重新输⼊print("您的输⼊有误,请重新输⼊")key = int(input("请输⼊您的出拳选项:1,剪⼑。
Android人机互动猜拳游戏设计作者:熊传文学号:x2011230444时间:2012-6-20业务描述游戏实现人与计算机进行锥子剪刀布的猜拳竞赛,输出每一局比赛的结果,最后输出总的比赛结果。
功能描述玩家通过界面按钮来表达出拳,选择了剪刀的按钮,说明玩家出了剪刀;选择了石头,说明出了石头;选择了布,说明出了布。
计算机通过产生1-3的随机数来代表出拳,1代表出剪刀,2代表出石头,3代表出布。
游戏规则:剪刀赢布,输石头,平剪刀;石头赢剪刀,输布,平石头;布赢石头,输剪刀,平布。
游戏界面设计游戏启动界面游戏主界面单局比赛界面完成游戏界面游戏设计逻辑Main对象用于显示游戏开始界面和游戏比赛结果数据,同时通过Main对象启动游戏规则实现对象Game对象。
Game对象实现了游戏比赛界面的输出和猜拳游戏规则的主要功能,完成游戏过后把数据传递回Main对象。
Main对象和Game对象之间的数据通过Intent对象完成。
程序执行主过程:Main对象->调用super.onCreate(savedInstanceState)来实现初始化数据的操作->调用setContentView(yout.main)实现游戏开始页面布局->调用setupViewComponent()取得启动按钮和显示结果文本的组件信息,同时设置启动按钮的事件处理程序->玩家通过点击触发启动按钮程序,程序处理过程中创建Intent对象,通过Main对象启动Game对象,并通过调用startActivtyForResult发送Itenet对象和请求代码。
Game对象->调用super.onCreate(savedInstanceState)来实现初始化数据的操作->调用setContentView(yout.main)实现游戏开始页面布局->调用setupViewComponent()取得剪刀按钮,石头按钮,布按钮,完成游戏按钮,取消按钮的组件信息,同时设置它们的事件处理程序->用户通过点击剪刀按钮来代表他出了剪刀,同事调用计算机的随机数出拳,进行比较,同时对比较次数,比赛结果进行统计,并显示单击比赛结果。
剪⼑⽯头布,猜拳必胜秘诀
法则1:⾸先出布
⼀局决胜负的时候,⼀般对⼿都很紧张,很少出剪⼑。
调查证明,最初局,⼥性喜欢出⽯头,男性喜欢出布。
上来就出剪⼑的⼈相对较少,所以第⼀局出布,不输的概率最⼤。
法则2:平局时下次出在该局下输的。
因为很少有⼈会连续两局出相同的,如果出现平局的时候,下⼀次要出该局输的。
例如布平局的时候,下次要出⽯头;⽯头平的时候下次要出剪⼑;剪⼑平的时,下次要出布。
法则3:
对⽅连续三次出剪⼑,第四次⼀定要出布。
连续四次出同样的⼈⼏乎没有。
对⽅如果最初出的是⽯头,下次出剪⼑的可能性会⾮常⾼。
⽤左⼿的⼈⼤多出剪⼑。
另外请参考,世界猜拳协会的7条法则
1.对⼿是新⼿,⾸先出布。
2.对⼿是⽼⼿,⾸先出剪⼑。
3.平局时下次出在该局下输的,参见规则2。
4.对多疑的对⼿,要说出下次出的然后真出。
5.不要给对⽅留下考虑的时间。
6.迷惑对⽅,出拳时说出:⽯头,剪⼑,布。
对⽅的思维会陷⼊这种顺序模式。
7.不知出什么好时,出布。
数字系统设计实验--猜拳游戏的设计与实现编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(数字系统设计实验--猜拳游戏的设计与实现)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为数字系统设计实验--猜拳游戏的设计与实现的全部内容。
数字系统设计实验报告实验名称:猜拳游戏的设计与实现学院:班级:姓名:学号:日期: 2019年12月指导老师:目录一、设计课题的任务要求........................................................................................基本要求:........................................................................................................提高要求:........................................................................................................模块电路要求:………………………………………………………………………………….1、设计思路......................................................................................................2、总体框图......................................................................................................3、分块设计......................................................................................................1:分频模块..................................................................................................................2:按键、防抖模块.................................................................................................3:判断模块..................................................................................................................4:点阵显示模块.....................................................................................................5: 计分模块 ..............................................................................................................6:数码管显示模块.................................................................................................7:蜂鸣器模块…………………………………………………………………。
第12章指导学习:人机猜拳◇本章工作任务完成人机互动版猜拳游戏的开发◇本章技能目标会定义类,描述类的属性和方法会创建和使用对象会使用包组织Java工程12.1 复习串讲12.1.1 难点突破表12-1中列出了本学习阶段的难点,这些技能你都掌握了吗?表12-1 难点突破记录难点感到疑惑的地方突破方法是否掌握二重循环结构类和对象之间的差异方法定义方法的返回值如果还存在疑惑,请写下你对这个技能感到疑惑的地方。
我们可以通过教材复习,或者从网上查找资料学习,或者和同学探讨,或者向老师请教等方法突破这些难点。
知道这个技能已经掌握,在“是否掌握”一栏中画上“√”。
这些技能是学习后面技能的基础,一定要在继续学习前全部突破。
如果在学习中遇到其他难点,也请填写在表中。
12.1.2 知识梳理下面我们对技能点做一梳理,以知识体系图的形式给出。
在下面的知识体系图中,?图标表示我们已经学过的知识;?图标表示部分学过或者学过相关知识,但需要巩固和深化;?图标是需要通过自学学习或了解的知识;?图标表示将在后续章节学习的知识。
1.知识梳理:二重循环图12.1展示了二重循环的知识体系图对于二重循环,我们主要学习了几种循环结构单一的二重嵌套使用,如while结构中套whille结构,for结构中套for结构,相互之间的嵌套循环在实际工作中也是常见的。
关于跳转语句continue和break在二重循环中的应用,continue跳出当前循环的当次循环,break跳出当前循环,进入到上级循环。
图12.1 二重循环的知识体系图2.知识梳理,初始Java的类图12.2展示了初学者应该理解的类的知识体系图图12.2 初始类的概念对象是存在的具体实体,对应于现实世界的实物,具有明确的状态和行为。
类是对具有相同状态和行为的对象的抽象,对象的状态和行为被封装在类中,在OOP中,状态称为属性,行为称为方法。
定义类的方法,首先要考虑方法的数据类型,其次就是方法的返回值,return语句后的数据类型一定与方法的类型相符合。
先建立个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、printin("您出拳石头”);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="文U备";}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、printin("结果:与局,真衰!嘿嘿,等着瞧吧!\n"); //平局}elseif((perFist==1&&compFist==3)||(perFist==2&&compFist==1)||(perFist==3&&compFist==2)){ Sys tem、out、printin(" 结果:恭喜,您赢了!"); //用户赢person、score++;}eise{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();}}然后编译执行就0K 了希望能帮到您。