人机猜拳小游戏

合集下载

人机猜拳小游戏

人机猜拳小游戏

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. 游戏继续进行,直到达到预定的胜利分数或时间,以确定最终的胜利者。

术语和技巧:
- 猜拳小游戏中的术语包括“剪刀”、“石头”和“布”,玩家需要根据对手的可能动作来做出最佳选择。

- 技巧包括观察对手的习惯动作、随机选择手势以及尝试预测对手的心理。

创造性和想象力:
玩家可以尝试不同的策略,如心理战术、变换手势顺序、以及观察对手的眼神和动作来预测对手的手势。

此外,可以尝试与多个玩家一起玩,增加游戏的挑
战性和乐趣。

总之,猜拳小游戏简单易上手,但也充满了技巧和策略。

通过灵活运用自己的想象力和创造性,玩家可以享受到这个简单而有趣的游戏带来的乐趣和挑战。

JAVA人机猜拳小游戏代码

JAVA人机猜拳小游戏代码

JAVA人机猜拳小游戏代码//JAVA人机猜拳小游戏代码 import java.util.Scanner; public class guess{public static void main(String[] args){Scanner in=new Scanner(System.in);System.out.println("-----猜拳游戏-------"); System.out.println("请出拳(1.剪刀 2.石头 3.布)"); int person=in.nextInt();int computer=(int)(Math.random()*3)+1;String Marks="拳头";//这是给人做一个标记;String Marks2="拳头";//这是给电脑做一个标记;switch(person){case 1:Marks="拳头";break;case 2:Marks="石头";break;case 3:Marks="布";break;}switch(computer){case 1:Marks2="拳头";break;case 2:Marks2="石头";break;case 3:Marks2="布";break;}if(person==computer){System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"---平局");}elseif(person==1&&computer==2||person==2&&computer==3||person==3&&computer==1){System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"—_—你输了~");}else{System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"^_^你赢了~");}}}//应用说明:只要把代码复制到TXT写字板再把扩展名改为JAVA就行了;。

人机猜拳小游戏

人机猜拳小游戏

Java程序设计基础实验报告班级:学号:姓名:实验题目:猜拳小游戏实验要求:用java编写一个人机对战的猜拳小游戏。

人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。

有基本的UI界面。

实验内容:1、问题分析过程:实验针对java的具体应用,设计了猜拳小游戏。

根据游戏的规则,玩家可以和电脑进行对战。

成学的主要功能是使用标准的JDK进行编译和运行。

定义玩家自己选择性出拳,电脑随机出拳,赢的记10分,输的记0分,平局都记10分。

本程序设计了Game、Person、Player、等多个类,通过程序设定的规则来实现游戏。

<登陆界面)(初始界面)<游戏界面)2、主要实现代码:******************************// LoginFramepackage com.hsj.client。

import javax.swing.SwingUtilities。

import java.awt.BorderLayout。

import javax.swing.JPanel。

import javax.swing.JFrame。

import javax.swing.JLabel。

import java.awt.Rectangle。

import javax.swing.JComboBox。

import javax.swing.JScrollPane。

import javax.swing.JButton。

import com.hsj.domain.Game。

/*** 猜拳小游戏的登录界面* @author hsj* @version 1.0**/public class LoginFrame extends JFrame {private static final long serialVersionUID = 1L。

/*** JFrame窗体的内容面板*/private JPanel jContentPane = null。

Java实现人机对战猜拳游戏

Java实现人机对战猜拳游戏

Java实现⼈机对战猜拳游戏本⽂实例为⼤家分享了Java实现⼈机对战猜拳游戏的具体代码,供⼤家参考,具体内容如下通过控制台⽅式实现⼀个⼈机对战的猜拳游戏1.⽤户通过输⼊(2.剪⼑ 0.⽯头 5.布)2.机器随机⽣成(2.剪⼑ 0.⽯头 5.布)3.胜者积分4.n 局以后通过积分的多少判定胜负。

开发⼯具:IDEA分析:1.在这个猜拳游戏⾥⾸先要解决的是机器⼈如何出拳?解决:通过预设⼀个字符串,然后通过Random类的nextInt⽅法获取到⼀个随机整数,将这个整数作为字符串的下标,再通过循环的⽅法来组成⼀个随机数。

⽣成对应的出拳情况2.⽣成的随机数如何⽐较?解决:使⽤equals()进⾏⽐较3.如何积分?解决:先给⼈机各初始积分为0分,每⽐较⼀次就记⼀次分,这⾥赢⼀局记10分完整代码如下:import java.util.Random;import java.util.Scanner;public class MoraTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("--- 猜拳游戏 ---");System.out.println("你想和机器⼈玩多少局:请输⼊(1-100)");//输⼊轮数int number = input.nextInt();System.out.println("请输⼊对应数值:\n0-⽯头 2-剪⼑ 5-布");int userIntegral = 0;//⽤户积分int robotIntegral = 0;//机器⼈积分for (int i = 0; i < number; i++) {String num = getRandom(1);//获取随机数String userNum = input.next();//输⼊出拳的值String u = putFist(userNum);//根据⽤户输⼊的值给对应的剪⼑、⽯头、布System.out.println("⽤户的出拳为:"+u);String n = putFist(num);//根据机器类随机⽣成的数值给对应的剪⼑、⽯头、布System.out.println("机器⼈出拳为:"+n);//如果⽤户出⽯头if ("0".equals(userNum)) {if ("2".equals(num)) {//如果机器⼈出剪⼑,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");} else if ("5".equals(num)) {//如果机器出布,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");} else {//如果机器出⽯头,则平局,不积分System.out.println("平局!");}} else if ("2".equals(userNum)) {//如果⽤户出剪⼑if ("2".equals(num)) {//如果机器⼈也出剪⼑,则平局System.out.println("平局!");} else if ("5".equals(num)) {//如果机器出布,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");} else {//如果机器出⽯头,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");}} else {//如果⽤户出布if ("2".equals(num)) {//如果机器⼈出剪⼑,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");} else if ("5".equals(num)) {//如果机器出布,则平局System.out.println("平局!");} else { //如果机器出⽯头,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");}}num = null;}System.out.println("****************");System.out.println("战⽃结束,查看分数:");System.out.println("⽤户总积分:"+userIntegral+"分");System.out.println("机器⼈总积分:"+robotIntegral+"分");if (userIntegral > robotIntegral){System.out.println("经过"+number+ "局后,最终的胜利者是:⽤户!");} else if (userIntegral == robotIntegral) {System.out.println("经过"+number+ "局后,你们打成了平局");} else {System.out.println("经过"+number+ "局后,最终的胜利者是:机器⼈!");}}public static String putFist(String s){String fist = null;if ("0".equals(s)){fist = "拳头";} else if ("2".equals(s)) {fist = "剪⼑";} else if ("5".equals(s)){fist = "布";} else {System.err.println("你输⼊的不对!");return null;}return fist;}//拳头属性//0-⽯头 2-剪⼑ 5-布public static String getRandom(int length) {String fistNum = "520";//创建⼀个新的随机数⽣成器。

人机猜拳游戏课程设计JAVA

人机猜拳游戏课程设计JAVA

人机猜拳游戏课程设计 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.教学进度:按照教材的章节顺序进行教学,确保每个章节都有足够的学习时间。

java人机猜拳-石头剪刀布

java人机猜拳-石头剪刀布

java人机猜拳1.首先定义一个用户类:代码如下package mypackage;import java.util.*;public class Person {String name="";int score;public int showFist(){System.out.println("请出拳:1.剪刀2.石头3.布(输入相应数字)");Scanner input =new Scanner(System.in);int number=input.nextInt();switch(number){case 1:System.out.println("玩家出:剪刀");return number;case 2:System.out.println("玩家出:石头");return number;case 3:System.out.println("玩家出:布");return number;default:System.out.println("你出拳:剪刀");return number;}}}2.定义一个计算机类package mypackage;public class Computer {int max =3;int min =1;int number= (int)(Math.random()*(max-min))+min;int score;String name="电脑";public int showcomputer(){switch(number){case 1:System.out.println("电脑出:剪刀");return number;case 2:System.out.println("电脑出;石头");return number;case 3:System.out.println("电脑出:布");return number;default:System.out.println("电脑出:剪刀");return number;}}}3.创建一个游戏类package mypackage;import java.util.*;public class StartGame{public int Initial(){System.out.println("----------欢迎进入游戏世界----------");System.out.println("");System.out.println("\t****************");System.out.println("\t** 猜拳,开始**\t\t");System.out.println("\t****************");System.out.println("");System.out.println("出拳规则:1.剪刀2.石头3.布");System.out.println("请选择对方角色(1.刘备2.孙权3.曹操):");Scanner input =new Scanner(System.in);int number=input.nextInt();switch(number){case 1:System.out.print("刘备");return number;case 2:System.out.print("孙权");return number;case 3:System.out.print("曹操");return number;default:System.out.print("你选择了刘备作战");return number;}}public static void main(String[] args){//完善游戏类的startGame()方法,实现一局对战Computer computer =new Computer();Person player =new Person();StartGame come =new StartGame();Scanner input =new Scanner(System.in);come.Initial();System.out.println("");System.out.println("要开始么?y/n\n\n");String con =input.next();int count=0;while(con.equalsIgnoreCase("y")){int perFist=player.showFist();int compFist=computer.showcomputer();System.out.println("双方对战次数:" + count);if((perFist==1&&compFist==1)||(perFist==2&&compFist==2)||(perFist==3&&com pFist==3)){System.out.println("结果:平局,真衰!");count++;}elseif((perFist==1&&compFist==3)||(perFist==2&&compFist==1)||(perFist==3&&compFist ==2)){System.out.println("结果:恭喜,你赢了!");player.score++;}else{System.out.println("结果说,你输了,真笨!\n");count++;computer.score++;}System.out.println(+ "积分为:" + player.score+ "\t\t" + + "积分为:" + computer.score);System.out.println("是否继续?y/n");con =input.next();}while(con.equals("n")){if(player.score > computer.score) {System.out.println("最终结果:" + + "在" + count + "回合中战胜了" + );break;}else if(player.score < computer.score) {System.out.println("最终结果:" + + "在" + count + "回合中战胜了" + );break;}else {System.out.println("最终结果:" + + "在" + count + "回合中和" + + "战平");break;}}}}本代码归武汉市江岸区百步亭50号熊盼所有,未经武汉市江岸区百步亭50号熊盼允许,不得转载、复制。

猜拳小游戏

猜拳小游戏

猜拳小游戏
游戏规则很简单:石头胜剪刀,剪刀胜布,布胜石头。

玩家们轮流
出手,同时展示出他们选择的手势。

根据两个玩家的手势,确定胜负,然后重新开始新的一轮。

玩家在进行游戏时,需要注意一些技巧和策略。

首先,可以尝试观
察对手的习惯,然后选择能够击败对手的手势。

其次,可以尝试随
机选择手势,以防对手猜测自己的下一步动作。

另外,可以尝试在
出手前制造一些干扰,让对手分心,从而获得优势。

为了增加游戏的乐趣和挑战,玩家可以尝试添加一些变化和规则。

例如,可以设定时间限制,让玩家在规定的时间内做出决定,增加
游戏的紧张感。

另外,可以增加更多的手势选项,如火、水、风等,从而增加游戏的变数和策略性。

总的来说,猜拳小游戏是一种简单而有趣的游戏,通过简单的规则
和策略,玩家可以享受到其中的乐趣和挑战。

希望玩家们可以尝试
不同的策略和方法,从而让游戏更加丰富多彩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南华大学计算机科学与技术学院实验报告(2013 ~ 2014 学年度第一学期)面向对象程序设课程名称实验名称人机猜拳游戏姓名唐龙学号*********** 专业船山软件班级13级1班地点8—410 教师夏石莹一、实验目的本课程设计所要求达到的目的:通过Java程序设计的一些重要理论基础来实现“人机猜拳小游戏”的功能。

通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果,逐步建立正确的全局观念。

二、实验设计与要求问题定义:创建小游戏,实现电脑与玩家之间互动猜拳这主要功能,并能显示设置的图片,增加美观。

研究意义:通过本次程序设计,我掌握了Java语言的基本运用,提高了理论结合实际能力。

设计要求:1)界面的左侧是电脑或者玩家的名字,让界面看起来一目了然。

2)系统界面的中间是电脑或者玩家出拳的图片。

图片可以生动形象得表示出电脑或者玩家出的拳,显示的图片在对话框中也相得益彰。

在图片的下方会显示,人机猜拳以后的输赢。

3)界面的右侧是三个剪刀石头布的按钮。

玩家通过按钮出拳,电脑随机出拳,猜拳的输赢结果在下方显示。

三、系统的主要功能1.可以通过按钮的方式,与电脑进行猜拳游戏,电脑随机出拳;2.可以显示出拳图片。

四、实验工具Windows 7;jdk1.6.0_21;eclipse五、项目实现首先建立一个Test类,如下:import java.awt.Color;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.AbstractButton;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class Test extends JFrame {JLabel jl,jl1;final JLabel jl2,jl3;JLabel jl4;public String person;public String m;int j;int i;final String[] arr = new String[3];public void Win(String person) {arr[0] = "石头";arr[1] = "剪刀";arr[2] = "布";person = arr[j];i = (int) (Math.random() * 3);String c = arr[i];//判断输赢if (c.equals(person)) {jl4.setText("平手");} else if (c.equals("剪刀") && person.equals("石头") || c.equals("石头")&& person.equals("布") || c.equals("布") && person.equals("剪刀")) {jl4.setText("你赢了");} else {jl4.setText("你输了");}}public Test() {JFrame jf = new JFrame();this.setSize(400, 300);this.setTitle("猜拳游戏");this.setLayout(null);jl = new JLabel("电脑出的是:");jl.setBounds(50, 50, 100, 50);this.add(jl);jl1 = new JLabel("你出的是:");jl1.setBounds(50, 120, 100, 50);this.add(jl1);// 电脑的出的拳标签jl2 = new JLabel();jl2.setBounds(150, 50, 100, 50);this.add(jl2);//我出的拳的标签jl3 = new JLabel();jl3.setBounds(150, 120, 100, 60);this.add(jl3);jl4 = new JLabel("");jl4.setBounds(150, 200, 100, 50);this.add(jl4);// 按钮final JButton btn = new JButton("石头");btn.setBounds(280, 50, 60, 40);this.add(btn);final JButton btn1 = new JButton("剪刀");btn1.setBounds(280, 105, 60, 40);this.add(btn1);final JButton btn2 = new JButton("布");btn2.setBounds(280, 160, 60, 40);this.add(btn2);//按钮事件监听btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //如果你鼠标点击的是石头按钮j = 0;String b = btn.getActionCommand();jl3.setText(b);jl3.setIcon(newImageIcon(MyImg.class.getResource(j+".jpg")));Win(person);Test.this.jl2.setIcon(newImageIcon(MyImg.class.getResource (i+".jpg")));Test.this.jl2.setText(arr[i]);System.out.println(arr[i]);}});btn1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) { j = 1;String b1 = btn1.getActionCommand();jl3.setText(b1);jl3.setIcon(newImageIcon(MyImg.class.getResource(j+".jpg")));Win(person);Test.this.jl2.setIcon(newImageIcon(MyImg.class.getResource (i+".jpg")));Test.this.jl2.setText(arr[i]);System.out.println(arr[i]);// System.out.println(b);}});btn2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) { j = 2;String b2 = btn2.getActionCommand();jl3.setText(b2);jl3.setIcon(newImageIcon(MyImg.class.getResource(j+".jpg")));Win(person);Test.this.jl2.setText(arr[i]);System.out.println(arr[i]);Test.this.jl2.setIcon(newImageIcon(MyImg.class.getResource (i+".jpg")));// System.out.println(b);}});this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setLocationRelativeTo(null);this.setResizable(false);}public static void main(String[] args) {Test t = new Test();}}再建立一个名为MyImg的类,把下面几张图片放到该类下图片名称自左向右依次为布、石头、剪刀。

六、运行结果图1 开始界面图2 游戏过程图3 游戏过程图4 游戏过程七、实验总结从这次设计中,首先我发现了自己有很多不足的地方,根本满足不了平时编写程序的需要。

此外,我对课程设计的要求与方法不够熟练。

所以,我们要在以后的学习中,要养成好的实践习惯。

对以后的学习有很大的帮助。

这个游戏虽然很小,但是所用的专业知识很多,更全面。

相关文档
最新文档