基于Java的猜拳小游戏设计

合集下载

Java程序设计实验报告(可打印修改)

Java程序设计实验报告(可打印修改)

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

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

有简单的操作界面。

实验内容:1、问题分析过程:游戏名称:悟空猜拳游戏类型:益智类平台:java编程语言:java操作:鼠标游戏规则:游戏为单人模式,玩家控制己方出拳,对方为电脑随机出拳,有3种胜出模式(三局两胜制、五局三胜制和七局四胜制),双方只要先胜出2、3、4局游戏结束程序框架设计:Menu类,Game类,Npc类,Player类游戏界面设计:登录界面:游戏主界面胜利界面2、主要实现代码:Menu类:package Game_guessFist;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import bel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;public class Menu extends JFrame implements ActionListener{JMenuBar menuBar;JMenu setting;JMenuItem item1,item2,item3;JButton start,about,exit;Label l;int model =2;public Menu(){//窗口super("悟空猜拳");//设置窗口宽高以及位置this.setSize(500,400);this.setLocationRelativeTo(null);//不可修改this.setResizable(false);//设置可见this.setVisible(true);//创建布局FlowLayout f = new FlowLayout();f.setAlignment(FlowLayout.CENTER);f.setHgap(500);f.setVgap(40);//设置布局this.setLayout(f);//菜单//实例化控件menuBar = new JMenuBar();setting = new JMenu("设置");item1 = new JMenuItem("三局两胜制");item2 = new JMenuItem("五局三胜制");item3 = new JMenuItem("七局四胜制");//添加监听器item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);//向窗口添加元素setting.add(item1);setting.add(item2);setting.add(item3);menuBar.add(setting);//按钮start = new JButton("开始游戏");about = new JButton("关于游戏");exit = new JButton("退出游戏");start.addActionListener(this);about.addActionListener(this);exit.addActionListener(this);l = new Label(" 悟空猜拳" +"");Font ff = new Font(null,1, 20);l.setFont(ff);l.setBackground(Color.RED);this.add(l);this.add(start);this.add(about);this.add(exit);this.setJMenuBar(menuBar);this.validate();}public static void main(String[] args){//程序入口new Menu();}// 按钮监听器@Overridepublic void actionPerformed(ActionEvent e){//菜单按钮判断if(e.getSource()==item1){model = 2;}else if(e.getSource()==item2){model = 3;}else if(e.getSource()==item3){model = 4;}//游戏流程按钮判断if(e.getSource()==start){this.dispose();new Game(model);}else if(e.getSource()==about){JOptionPane.showMessageDialog(null, "您好,本游戏有网络工程专业李树明制作", "关于", RMATION_MESSAGE);}else if(e.getSource()==exit){System.exit(0);this.dispose();}}}Game类:package Game_guessFist;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class Game extends JFrame implements ActionListener { private JLabel npc_score, player_score, npc_sign, player_sign, label;private JButton btnReturn, btn_scissore, btn_stone, btn_cloth;private JPanel panel1, panel2, panel3, panel4, panel5;private Npc npc;private Player player;int model = 2;Game(int model) {// 窗口super("悟空猜拳");this.setSize(500,400);this.setLocationRelativeTo(null);this.setResizable(false);this.setVisible(true);FlowLayout ff = new FlowLayout(FlowLayout.CENTER, 400, 10);FlowLayout f1 = new FlowLayout(FlowLayout.CENTER, 250, 10);ff.setAlignment(FlowLayout.CENTER);ff.setHgap(500);ff.setVgap(30);this.setLayout(ff);npc = new Npc();player = new Player();setVisible(true);npc_sign = new JLabel("出拳");player_sign = new JLabel("出拳");npc_score = new JLabel("悟空胜:0"); player_score = new JLabel("八戒胜:0");btn_cloth = new JButton("布");btn_scissore = new JButton("剪刀");btn_stone = new JButton("石头"); btnReturn = new JButton("返回");btn_cloth.addActionListener(this);btn_scissore.addActionListener(this); btn_stone.addActionListener(this); btnReturn.addActionListener(this);"); label = new JLabel(" panel1 = new JPanel();panel2 = new JPanel();panel3 = new JPanel();panel4 = new JPanel();panel5 = new JPanel();panel1.setLayout(f1);panel4.setLayout(f1);panel1.add(npc_score);panel1.add(btnReturn);panel2.add(npc_sign);panel3.add(player_sign);panel4.add(player_score);panel4.add(label);panel5.add(btn_cloth);panel5.add(btn_scissore);panel5.add(btn_stone);add(panel1);add(panel2);add(panel3);add(panel4);add(panel5);this.model = model;}// 按钮监听@Overridepublic void actionPerformed(ActionEvent e) {int id = 0;if (e.getSource() == btnReturn) {this.dispose();new Menu();} else {//设置两个字符串对象,接受npc以及player的出拳String player_quan = null;String npc_quan = npc.shouFist();//按照玩家点击的按钮,判断用户出拳if (e.getSource() == btn_scissore) {player_quan = player.shouFist(0);} else if (e.getSource() == btn_stone) {player_quan = player.shouFist(1);} else if (e.getSource() == btn_cloth) {player_quan = player.shouFist(2);}//设置出拳到界面npc_sign.setText(npc_quan);player_sign.setText(player_quan);//判断胜负id = guess(npc_quan, player_quan);}//判断何时结束游戏switch (id) {case 0://平局不做处理break;case 1://玩家胜利player.score++;player_score.setText("八戒胜:" + player.score);if (player.score >= model) {JOptionPane.showMessageDialog(null, "八戒获得了胜利", "提示", RMATION_MESSAGE);init();}break;case 2://npc胜利npc.score++;npc_score.setText("悟空胜:" + npc.score);if (npc.score >= model) {JOptionPane.showMessageDialog(null, "悟空取得了胜利", "提示", RMATION_MESSAGE);init();}break;}}// 比较结果方法public int guess(String npc, String player){int id = 0;if((npc.equals("剪刀")&&player.equals("布"))||(npc.equals("石头")&&player.equals("剪刀"))||(npc.equals("布")&&player.equals("石头"))){id = 2;}else if(npc.equals(player)){id = 0;}else{id = 1;}return id;}public void init()// 初始化数据方法{npc.score = 0;player.score = 0;npc_score.setText("悟空胜:0");player_score.setText("八戒胜:0");npc_sign.setText("出拳");player_sign.setText("出拳");}}Npc类:package Game_guessFist;import java.util.Random;class Npc{private Random r;Npc(){r = new Random();}public int score;public int score1;public String shouFist(){int id = Math.abs(r.nextInt())%3;String fist = null;switch (id){case 0:fist = "剪刀";break;case 1:fist = "石头";break;case 2:fist = "布";break;}return fist;}}Player类:package Game_guessFist;public class Player{public int score;public String shouFist(int id){String fist = null;switch (id){case 0:fist = "剪刀";break;case 1:fist = "石头";break;case 2:fist = "布";break;}return fist;}}3、实验心得体会:通过这次试验,发现了学习的不足。

使用java实现猜拳小游戏

使用java实现猜拳小游戏

使⽤java实现猜拳⼩游戏本⽂实例为⼤家分享了java实现猜拳⼩游戏的具体代码,供⼤家参考,具体内容如下实现下图要求public class User {private String u_name;private int u_score;public User() {super();}public User(String name, int score) {super();this.u_name = name;this.u_score = score;}public String getName() {return u_name;}public void setName(String name) {this.u_name = name;}public int getScore() {return u_score;}public void setScore(int score) {this.u_score = score;}/*** 出拳⽅法* @param choice 选择的数字代表出拳(1:⽯头2:剪⼑3:布)case 2:str = "剪⼑";break;case 3:str = "布";break;default:System.out.println("未知错误");break;}return str;}}public class Computer {private String c_name;private int c_score;public String getName() {return c_name;}public void setName(String name) {this.c_name = name;}public int getScore() {return c_score;}public void setScore(int score) {this.c_score = score;}/*** 出拳⽅法* @param choice 选择的数字代表出拳(1:⽯头2:剪⼑3:布)case 2:str = "剪⼑";break;case 3:str = "布";break;default:System.out.println("未知错误");break;}return str;}}import java.util.Scanner;public class Game {Scanner input = new Scanner(System.in);private User user;private Computer computer;private int count;private int c_score;private int u_score;//初始化⽅法public void init(){user = new User();computer = new Computer();System.out.println("-----------------欢迎进⼊游戏世界------------------");System.out.println("\t **************************");System.out.println("\t\t** 猜拳,开始 **");System.out.println("\t **************************");System.out.println();System.out.println("出拳规则:1.⽯头 2.剪⼑ 3.布");System.out.print("请选择对⽅⾓⾊:(1:曹操 2:孙权 3:刘备):"); int key = input.nextInt();switch (key) {case 1:computer.setName("曹操");break;case 2:computer.setName("孙权");System.out.println("⾮法输⼊...");break;}System.out.print("请输⼊你的姓名:");user.setName(input.next());System.out.println(user.getName()+" VS "+computer.getName());begin();}//是否开始执⾏循环执⾏直到输⼊n结束public void begin(){System.out.print("要开始吗(y/n):");// boolean falg = true;String str = input.next();if(str.equals("y")){while(true){score();System.out.print("是否开始下⼀轮:(y/n)");String str1 = input.next();count++;if(str1.equals("y")){}else{// falg = false;break;}}}show();}//⼈和机器出拳并判断胜负此处计算⽐赛次数双⽅得分public void score(){System.out.print("请出拳:");int choice1 = input.nextInt();String str1 = user.chuQuan(choice1);int choice2 = (int)(Math.random()*3+1);String str2 = computer.chuQuan(choice2);System.out.println("你出拳"+str1);System.out.println(computer.getName()+"出拳"+str2);if(choice1 == choice2){System.out.println("结果:平局");}else if(choice2-choice1==-1||choice2-choice1==2){System.out.println("结果:"+computer.getName()+"获胜...");c_score++;computer.setScore(c_score);}else if(choice1-choice2==-1||choice1-choice2==2){System.out.println("结果:恭喜你,你获胜...");u_score++;user.setScore(u_score);}}//显⽰⽐赛结果并⽐较得得出最后胜负public void show(){System.out.println("--------------------------------");System.out.println(user.getName()+" VS "+computer.getName());System.out.println("对战次数:"+count+"\n\n");System.out.println("姓名\t得分");System.out.println(user.getName()+"\t"+user.getScore());System.out.println(computer.getName()+"\t"+computer.getScore()+"\n"); if(user.getScore()>computer.getScore()){System.out.println("结果:恭喜恭喜");}else if(user.getScore()<computer.getScore()){System.out.println("结果:再接再厉");}else{System.out.println("结果:平局");}System.out.println("--------------------------------");}}测试类Game game = new Game();game.init();}}这样猜拳⼩游戏就实现了。

Java开发实现猜拳游戏

Java开发实现猜拳游戏

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

⼆、代码逻辑简介1、向⽤户解释⽐赛规则;2、接收⽤户输⼊的内容并判断⽤户输⼊的内容是否符合要求,如果不符合,重新输⼊。

3、电脑⾃动⽣成数字;4、根据电脑和⽤户输⼊的内容,进⾏⽐较⼆者的胜负5、让⽤户连续进⾏多场⽐赛,直到⼀⽅达到3分,⽐赛结束。

三、知识点1、掌握Java的Scanner、while循环、switch、if 判断语句,能判别⽤户输⼊的类型是否为int类型。

2、部分封装内容。

3、能熟练梳理游戏的逻辑。

四、代码package homework;import java.util.Random;import java.util.Scanner;class Demo3 {public static void main(String[] args) {game g=new game();g.caiquan();}}//确定⽤户和电脑猜拳内容class game{String people;String computer;int count1;int count2;public void caiquan() {//解释⽐赛规则System.out.println("猜拳游戏\n⽐赛规则:⽤户通过输⼊数字(1-剪⼑,2—⽯头,3-布)与电脑进⾏对战,当某⼀⽅的分数达到率先达到10分,该⽅胜利!"); while(true) {System.out.println("请输⼊数字:");int a;//判断⽤户输⼊的内容是否while (true) {Scanner input = new Scanner(System.in); //正确接收⽤户输⼊的内容if (input.hasNextInt()) {int b=input.nextInt();if (b>0&&b<4) {a=b;break ;}else {System.out.println("输⼊的数字不在规定的范围,请重新输⼊");b=input.nextInt();}}else {System.out.println("输⼊的不是数字错误,请重新输⼊");}}switch (a) {case 1:people = "剪⼑";break;case 2:people ="⽯头";break;case 3:people ="布";break;}//电脑模拟的内容Random r=new Random();int b = r.nextInt(3)+1;switch (b) {case 1:computer = "剪⼑";break;case 2:computer ="⽯头";break;case 3:computer ="布";break;}//⽐较两者胜负if(a==b) {System.out.println("本场⽐赛平局!因为你输⼊的是"+people+",电脑输⼊的是"+computer+"。

java猜拳小游戏课程设计

java猜拳小游戏课程设计

java猜拳小游戏课程设计一、课程目标知识目标:1. 让学生掌握Java基础语法,包括变量声明、数据类型、运算符和条件语句。

2. 使学生了解猜拳游戏的逻辑规则,并将其转化为程序代码。

3. 帮助学生理解面向对象编程的基本概念,如类、对象和方法的定义。

技能目标:1. 培养学生运用Java编写简单程序的能力,尤其是控制流程和逻辑判断。

2. 提高学生运用面向对象编程方法解决问题的能力,如设计类和对象,以及调用方法。

3. 培养学生调试和优化程序的能力,以实现更高效的猜拳游戏。

情感态度价值观目标:1. 激发学生对编程的兴趣,培养其主动探索和解决问题的热情。

2. 培养学生团队合作精神,通过小组讨论和分享,共同优化猜拳游戏。

3. 引导学生认识到编程在现实生活中的应用价值,激发其将所学知识应用于实际问题的意识。

针对课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立编写并运行一个简单的Java猜拳游戏程序。

2. 学生能够在程序中正确使用变量、数据类型、运算符、条件语句和面向对象编程方法。

3. 学生能够通过小组合作,优化猜拳游戏程序,提高游戏体验。

4. 学生能够表达对编程的兴趣,积极参与课堂讨论,分享编程心得和经验。

二、教学内容1. Java基本语法回顾:变量声明、数据类型、运算符、条件语句。

- 教材章节:第2章 Java语言基础2. 面向对象编程基本概念:类、对象、方法。

- 教材章节:第4章 面向对象编程基础3. 猜拳游戏逻辑规则介绍:游戏规则、胜负判断。

- 教材章节:第6章 Java编程实例4. 编写猜拳游戏程序:设计类和对象,实现游戏逻辑。

- 教材章节:第6章 Java编程实例5. 程序调试与优化:调试技巧、性能优化。

- 教材章节:第7章 程序调试与优化6. 团队合作与分享:小组讨论、成果展示。

- 教材章节:附录 团队合作与沟通教学内容安排与进度:1. 课时1:Java基本语法回顾,面向对象编程基本概念介绍。

Java猜拳小游戏源代码

Java猜拳小游戏源代码

第一个文件:public class Computer {String name;int score;public int showfist(){int quan;quan=(int)(Math.random()*10);if(quan<=2){quan=1;}else if(quan<=5){quan=2;}else{quan=3;}switch(quan){case 1:System.out.println(name+"出拳:剪刀");break;case 2:System.out.println(name+"出拳:石头");break;case 3:System.out.println(name+"出拳:布");break;}return quan;}}第二个文件:import java.util.Scanner;public class Game {int count=0;int countP=0;Person person=new Person();Computer computer=new Computer();Scanner input=new Scanner(System.in);public void initial(){System.out.print("请选择你的角色(1.刘备 2.孙权 3.曹操):");int juese=input.nextInt();switch(juese){case 1:="刘备";break;case 2:="孙权";break;case 3:="曹操";break;}System.out.print("请选择对手角色(1.关羽 2.张飞 3.赵云):");int JueSe=input.nextInt();switch(JueSe){case 1:="关羽";break;case 2:="张飞";break;case 3:="赵云";break;}}public void begin(){System.out.print("\n要开始吗? (y/n)");String ans=input.next();if(ans.equals("y")){String answ;do{int a=person.showFist();int b=computer.showfist();if(a==1&&b==3||a==2&&b==1||a==3&&b==2){System.out.println("结果:你赢了!");person.score++;}else if(a==1&&b==1||a==2&&b==2||a==3&&b==3){System.out.println("结果:平局,真衰!嘿嘿,等着瞧吧!");countP++;}else{System.out.println("结果:你输了!");computer.score++;}count++;System.out.print("\n是否开始下一轮? (y/n)");answ=input.next();}while(answ.equals("y"));}}public String calcResult(){String a;if(person.score>computer.score){a="最终结果:恭喜恭喜!你赢了!";}else if(person.score==computer.score){a="最终结果:打成平手,下次再和你一决高下!";}else{a="最终结果:呵呵,你输了!笨笨,下次加油啊!";}return a;}public void showResult(){System.out.println("---------------------------------------------------");System.out.println("\t\t"++" VS"++"\n");System.out.println("对战次数:"+count+"次");System.out.println("平局:"+countP+"次");System.out.println(+"得:"+person.score+"分");System.out.println(+"得:"+computer.score+"分\n");System.out.println(calcResult());System.out.println("---------------------------------------------------");}}第三个文件:import java.util.Scanner;public class Person {String name;int score;Scanner input=new Scanner(System.in);public int showFist(){System.out.print("\n请出拳:1.剪刀2.石头3.布");int quan=input.nextInt();switch(quan){case 1:System.out.println("你出拳:剪刀");break;case 2:System.out.println("你出拳:石头");break;case 3:System.out.println("你出拳:布");break;}return quan;}}第四个文件:public class Test {public static void main(String[]args){Game g=new Game();System.out.println("-----------------欢迎进入游戏世界--------------------\n\n");System.out.println("\t\t******************");System.out.println("\t\t** 猜拳开始 **");System.out.println("\t\t******************\n\n");System.out.println("出拳规则:1.剪刀2.石头3.布");g.initial();g.begin();g.showResult();}}。

猜拳游戏java课课程设计

猜拳游戏java课课程设计

猜拳游戏java课课程设计一、教学目标本节课的学习目标为:知识目标:使学生掌握Java猜拳游戏的基本原理和实现方式,理解面向对象编程的基本概念。

技能目标:培养学生运用Java语言进行程序设计的能力,能够独立完成简单的猜拳游戏程序。

情感态度价值观目标:培养学生对计算机编程的兴趣和好奇心,提高学生解决问题的自信心。

二、教学内容本节课的教学内容主要包括:1.Java猜拳游戏的基本原理和实现方式。

2.面向对象编程的基本概念和应用。

3.Java语言的基本语法和操作方法。

教学大纲安排如下:1.第一课时:讲解猜拳游戏的基本原理和实现方式,让学生了解猜拳游戏的逻辑结构。

2.第二课时:介绍面向对象编程的基本概念,通过实例讲解如何运用面向对象思想设计猜拳游戏。

3.第三课时:教授Java语言的基本语法和操作方法,让学生能够独立编写简单的猜拳游戏程序。

4.第四课时:对学生的猜拳游戏程序进行讲解和评价,让学生了解自己的学习成果和不足之处。

三、教学方法本节课采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解猜拳游戏的基本原理和实现方式,让学生了解猜拳游戏的逻辑结构。

2.讨论法:分组讨论如何运用面向对象思想设计猜拳游戏,促进学生之间的交流与合作。

3.案例分析法:分析优秀的猜拳游戏程序,让学生了解实际编程中的技巧和方法。

4.实验法:让学生动手编写猜拳游戏程序,培养学生的实际编程能力。

四、教学资源本节课的教学资源包括:1.教材:《Java编程思想》2.参考书:《Java核心技术》3.多媒体资料:猜拳游戏案例分析视频4.实验设备:计算机、网络设施以上教学资源能够支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本节课的评估方式包括:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性。

2.作业:布置相关的猜拳游戏编程作业,评估学生的编程能力和理解程度。

3.考试:期末进行Java编程考试,考察学生对猜拳游戏和相关知识的掌握程度。

java面向对象编程--猜拳小游戏

java面向对象编程--猜拳小游戏

java⾯向对象编程--猜拳⼩游戏java⾯向对象编程实现--猜拳⼩游戏⽬标⽬标:玩家在控制台和电脑猜拳,电脑每次都会随机出⽯头/剪⼑/布,直到玩家选择退出游戏。

记录并显⽰玩家和电脑猜拳的成绩。

设计思路分析电脑的随机猜拳可以使⽤随机数⽣成,这⾥规定 0表⽰⽯头,1 表⽰剪⼑,2 表⽰布。

为了显⽰清晰,可以设置⼀个⽅法将⽣成的随机数转换为对应⽯头/剪⼑/布。

玩家在控制台输⼊(⽯头/剪⼑/布),但玩家也可能输⼊别的数,所以这⾥需要做⼀个玩家的输⼊校验 ,并考虑给玩家退出游戏的选择。

记录的结果有玩家猜拳选择,电脑猜拳选择和胜负。

为了⽅便管理和显⽰,这⾥设计⼀个结果类。

⽤于记录猜拳的结果,因为猜拳次数可能不⽌⼀次,所以考虑将结果保存到集合中,这⾥使⽤ ArrayList集合。

具体代码实现如下:import java.util.ArrayList;import java.util.Scanner;public class FingerGuessingGame {//测试实现类public static void main(String[] args) {Tom tom = new Tom();tom.guess();}}//玩家类class Tom {Scanner sc = new Scanner(System.in);//猜拳public void guess() {System.out.println("----------猜拳游戏开始(-1退出)---------");//使⽤ArrayList保存结果ArrayList<GuessResult> results = new ArrayList<>();while (true) {//玩家输⼊String tomGuess = checkInput();//如果输⼊-1退出游戏if (tomGuess.equals("-1"))break;//⽣成0-2的随机数int num = (int) (Math.random() * 3);//将获取到的数字按照之前的规定转换为字符串String comGuess = convertComputerGuess(num);System.out.println("电脑出 " + comGuess);//判断输赢String isWin = winORLoose(tomGuess, comGuess);System.out.println(isWin);//将结果添加到集合中results.add(new GuessResult(tomGuess, comGuess, isWin));}//输出结果System.out.println("-------本次猜拳的结果------");System.out.println("玩家\t\t\t电脑\t\t\t胜负");for (GuessResult result : results) {System.out.println(result);}}//获取电脑猜拳结果public String convertComputerGuess(int num) {//0代表⽯头,1剪⼑,2布if (num == 0)return "⽯头";if (num == 1)return "剪⼑";if (num == 2)return "布";return "";}//玩家输⼊校验public String checkInput() {while (true) {System.out.println("你出(⽯头/剪⼑/布)-1退出:");String choice = sc.next();if (choice.equals("⽯头") || choice.equals("剪⼑") ||choice.equals("布") || choice.equals("-1")) {return choice;} elseSystem.out.println("你的输⼊有误! 请检查并重新输⼊:");}}//判断输赢public String winORLoose(String tomGuess, String comGuess) {if (tomGuess.equals("⽯头") && comGuess.equals("剪⼑"))return "赢";else if (tomGuess.equals("剪⼑") && comGuess.equals("布"))return "赢";else if (tomGuess.equals("布") && comGuess.equals("⽯头"))return "赢";else if (tomGuess.equals(comGuess))return "平⼿";elsereturn "输";}}//结果类⽤于记录猜拳的结果class GuessResult {private String tomGuess;private String ComGuess;private String isWin;public GuessResult(String tomGuess, String comGuess, String isWin) { this.tomGuess = tomGuess;ComGuess = comGuess;this.isWin = isWin;}@Overridepublic String toString() {returntomGuess +"\t\t\t"+ComGuess + "\t\t\t" +isWin ;}}。

Java程序设计人机猜拳

Java程序设计人机猜拳

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编程语言的基本语法和流程控制语句,掌握函数的定义和调用方法。

技能目标要求学生能够运用Java编写简单的猜拳游戏程序,培养学生的编程能力和问题解决能力。

情感态度价值观目标在于激发学生对编程的兴趣,培养学生的创新意识和团队合作精神。

二、教学内容本节课的教学内容主要包括以下几个部分:首先,介绍Java编程语言的基本语法和流程控制语句,如条件语句、循环语句等;其次,讲解函数的定义和调用方法,让学生了解如何自定义函数;然后,引导学生学习如何使用Java编写猜拳游戏程序,包括游戏规则的设定、用户输入的处理以及游戏结果的输出;最后,通过案例分析,让学生掌握Java编程中的一些常用技巧和方法。

三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法进行教学。

首先,采用讲授法,向学生讲解Java编程语言的基本语法和流程控制语句;其次,运用案例分析法,让学生通过分析实际案例,掌握Java编程中的一些常用技巧和方法;然后,采用讨论法,引导学生分组讨论如何编写猜拳游戏程序,培养学生的团队合作精神;最后,运用实验法,让学生动手实践,编写并运行自己的猜拳游戏程序。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:首先,教材《Java编程入门》,作为学生学习的基本资料;其次,参考书《Java核心技术》,为学生提供更深入的Java编程知识;再次,多媒体教学课件,用于直观地向学生展示Java编程的概念和方法;最后,实验设备,如计算机和网络,让学生能够进行实际的编程实践。

五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用多种评估方式。

平时表现将占总分的一定比例,主要评估学生在课堂上的参与程度、提问回答等情况。

作业将占总分的一定比例,主要评估学生的编程能力和对知识的掌握程度。

基于Java的猜拳小游戏设计.

基于Java的猜拳小游戏设计.

目录绪论............................................... 错误!未定义书签。

一、背景与意义..................................... 错误!未定义书签。

二、设计原理与方案................................. 错误!未定义书签。

一)方案....................................... 错误!未定义书签。

二)设计思路................................... 错误!未定义书签。

三)系统分析................................... 错误!未定义书签。

四)程序概要设计............................... 错误!未定义书签。

五)工作流程图................................ 错误!未定义书签。

六)程序框图.................................. 错误!未定义书签。

七)程序中所用类说明.......................... 错误!未定义书签。

八)程序运行效果及存在的问题................... 错误!未定义书签。

三、项目实现....................................... 错误!未定义书签。

一)程序用到的类库简介......................... 错误!未定义书签。

二)游戏主程序设计............................. 错误!未定义书签。

三)主界面PigPanel类......................... 错误!未定义书签。

四)具体实现.................................. 错误!未定义书签。

四、运行结果....................................... 错误!未定义书签。

猜拳java课程设计

猜拳java课程设计

猜拳java课程设计一、课程目标知识目标:1. 理解Java基础语法,掌握猜拳游戏的逻辑结构与编程实现;2. 学会使用Java控制结构,包括条件语句和循环语句;3. 掌握基本的面向对象编程概念,如类的定义、方法和属性的创建。

技能目标:1. 能够编写并运行一个简单的Java猜拳游戏程序;2. 培养逻辑思维和问题解决能力,通过编程实现游戏规则;3. 提高团队协作能力,通过小组合作完成课程项目。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习Java的热情;2. 培养学生的创新意识和实践能力,敢于尝试并解决编程中的问题;3. 增强学生的自信心和成就感,通过完成猜拳游戏项目,体会编程的乐趣。

课程性质:本课程为实践性较强的编程课程,以猜拳游戏为载体,帮助学生掌握Java编程基础。

学生特点:学生处于初级阶段,对编程有一定兴趣,但需加强实践操作和问题解决能力的培养。

教学要求:结合猜拳游戏案例,引导学生通过动手实践,掌握Java编程基础,注重培养学生的逻辑思维和团队协作能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. Java基础语法:变量定义、数据类型、运算符、表达式;2. 控制结构:条件语句(if-else、switch)、循环语句(for、while);3. 面向对象编程:类的定义、构造方法、成员变量、成员方法;4. 猜拳游戏逻辑:游戏规则、玩家输入、随机数生成、结果判断;5. 编程实践:编写Java代码、调试程序、运行和测试。

教材章节关联:1. 第1章 Java概述;2. 第2章 Java基本语法;3. 第4章 控制语句;4. 第5章 面向对象编程基础;5. 课外实践:猜拳游戏项目。

教学大纲:1. 课前准备:熟悉Java编程环境,了解猜拳游戏规则;2. 课堂讲解:讲解Java基础语法、控制结构、面向对象编程基础;3. 课堂实践:引导学生编写猜拳游戏代码,进行调试和运行;4. 课后巩固:布置相关练习,要求学生完成猜拳游戏项目;5. 进度安排:4课时完成理论讲解与实践操作,2课时进行项目展示和总结。

Java猜拳小游戏(剪刀、石头、布)

Java猜拳小游戏(剪刀、石头、布)

Java猜拳⼩游戏(剪⼑、⽯头、布)1、第⼀种实现⽅法,调⽤Random数据包,直接根据“1、2、3”输出“剪⼑、⽯头、布”。

主要⽤了9条输出判断语句。

import java.util.Random;import java.util.Scanner;public class caiquan{public static void main(String[] args){Random r=new Random();int diannao=r.nextInt(3)+1;Scanner s=new Scanner(System.in);System.out.println("=========猜拳⼩游戏=========");System.out.println("请输⼊1、2、3,1代表剪⼑,2代表⽯头,3代表布");int fangke=s.nextInt();if(diannao==1&&fangke==1){System.out.println("电脑出的是剪⼑,你出的是剪⼑,平局");}if(diannao==1&&fangke==2){System.out.println("电脑出的是剪⼑,你出的是⽯头,你赢了");}if(diannao==1&&fangke==3){System.out.println("电脑出的是剪⼑,你出的是布,电脑赢了");}if(diannao==2&&fangke==1){System.out.println("电脑出的是⽯头,你出的是剪⼑,电脑赢了");}if(diannao==2&&fangke==2){System.out.println("电脑出的是⽯头,你出的是⽯头,平局");}if(diannao==2&&fangke==3){System.out.println("电脑出的是⽯头,你出的是布,你赢了");}if(diannao==3&&fangke==1){System.out.println("电脑出的是布,你出的是剪⼑,你赢了");}if(diannao==3&&fangke==2){System.out.println("电脑出的是布,你出的是⽯头,电脑赢了");}if(diannao==3&&fangke==3){System.out.println("电脑出的是布,你出的是布,平局");}if(fangke!=1&&fangke!=2&&fangke!=3){System.out.println("只能输⼊1、2、3");}}} 2、第⼆种实现⽅法,不调⽤Random数据包,换成Math.random(),把“1、2、3”换成“剪⼑、⽯头、布”再输出。

java实现简单猜拳小游戏

java实现简单猜拳小游戏

java实现简单猜拳⼩游戏本⽂实例为⼤家分享了java实现猜拳⼩游戏的具体代码,供⼤家参考,具体内容如下User.javaimport java.util.Scanner;public class User {String name;int score;public int showFist(){System.out.println ("请出拳:1.剪⼑\t2.⽯头\t3.布");Scanner input=new Scanner ( System.in );int choice=input.nextInt ();if(choice==1){System.out.println ("您出了剪⼑");}else if(choice==2){System.out.println ("您出了⽯头");}else if (choice==3){System.out.println ("您出了布");}else {System.out.println ("输⼊有误!");}return choice;}}Computer.javapublic class Computer {String name;int score;public int showFist () {int choice = (int) (Math.random () * 3) + 1; //产⽣随机数if (choice == 1) {System.out.println (name +"出了剪⼑" );} else if (choice == 2) {System.out.println (name +"出了⽯头" );} else if (choice == 3) {System.out.println (name +"您出了布" );} else {System.out.println ( "输⼊有误!" );}return choice;}}Game.javaimport java.util.Scanner;public class Game {User user; //⽤户Computer computer; //计算机int count; //记录对战次数//初始化:设置⾃⼰的名字对⼿的名字,积分0public void init(){System.out.println ("请输⼊⾃⼰的名字");Scanner input = new Scanner ( System.in );String name = input.next ();user=new User (); //对象初始化=name;user.score=0;System.out.println ("请选择你的对⼿:\n1.张三\t2.李四\t3.王五");int choice = input.nextInt ();computer=new Computer (); //对象初始化computer.score=0;switch (choice){case 1:="张三";case 2:="李四";case 3:="王五";break;default:System.out.println ("输⼊有误!");}System.out.println ("你选择与TA对战:"+);}public void start() {init ();Scanner input=new Scanner ( System.in );String isContinue = null;do {int userFist = user.showFist (); //⼈出拳int chomputerFist = computer.showFist (); //计算机出拳calcResult ( userFist, chomputerFist );System.out.println ("是否继续?y(继续)/其他(结束)");isContinue=input.next ();}while ("y".equals ( isContinue ));showResult (user,computer); //显⽰最终结果}//计算每⼀轮的结果public void calcResult(int userFist,int computerFist){//"1.剪⼑\t2.⽯头\t3.布"if((userFist==1&&computerFist==3)||(userFist==2&&computerFist==1)||(userFist==3&&computerFist==2)){System.out.println ("您赢了");user.score++;}else if((userFist==3&&computerFist==1)||(userFist==1&&computerFist==2)||(userFist==2&&computerFist==3)){ System.out.println ("您输了");computer.score++;}else {System.out.println ("您平局");}}//计算最终结果public void showResult(User user,Computer computer){System.out.println ( +"\t" +user.score );System.out.println ( +"\t" +computer.score);if (user.score>computer.score){System.out.println ("恭喜,获得了最终的胜利");}else if (user.score<computer.score){System.out.println ("很遗憾你输了");}else {System.out.println ("最终平局...");}}public static void main ( String[] args ) {Game game = new Game ();game.start ();}}测试结果显⽰以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

猜拳游戏java课程设计

猜拳游戏java课程设计

猜拳游戏java课程设计一、教学目标本课程的目标是让学生掌握猜拳游戏的基本Java编程技能。

通过本课程的学习,学生将能够理解并运用Java语言编写简单的猜拳游戏程序。

具体的教学目标如下:1.理解Java语言的基本语法和结构。

2.掌握Java中的条件语句和循环语句。

3.了解Java中的类和对象的概念。

4.能够使用Java编写简单的猜拳游戏程序。

5.能够运用Java中的条件语句和循环语句来实现游戏逻辑。

6.能够运用Java中的类和对象的概念来代码。

情感态度价值观目标:1.培养学生对编程的兴趣和热情。

2.培养学生解决问题的能力和创新精神。

3.培养学生团队合作和分享的意识。

二、教学内容本课程的教学内容主要包括Java语言的基本语法、条件语句、循环语句和类与对象的概念。

具体的教学内容如下:1.Java语言的基本语法:变量、数据类型、运算符、表达式等。

2.条件语句:if语句、if-else语句、switch语句等。

3.循环语句:for循环、while循环、do-while循环等。

4.类与对象的概念:类的定义、构造方法、成员变量和成员方法等。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。

具体的教学方法如下:1.讲授法:教师通过讲解和示例来传授Java语言的基本语法、条件语句和循环语句等知识。

2.讨论法:学生分组讨论猜拳游戏的设计和实现,促进学生之间的交流和合作。

3.案例分析法:分析实际的猜拳游戏案例,帮助学生理解类与对象的概念。

4.实验法:学生动手编写猜拳游戏程序,巩固所学的知识和技能。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选择一本适合学生水平的Java编程教材,作为学生学习的基本资源。

2.参考书:提供一些相关的Java编程参考书,供学生进一步学习和拓展。

3.多媒体资料:制作教学PPT和视频教程,帮助学生更好地理解和掌握知识。

Java猜拳小游戏程序设计实验报告

Java猜拳小游戏程序设计实验报告

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

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

有简单的操作界面。

实验内容:1、问题分析过程:(1)首先分析猜拳游戏本身的玩法:人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。

(2)用面向对象的思想来分析:在游戏过程中有几个对象组成人电脑游戏规则抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢?属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst()选择性Computer类有哪些属性和行为呢?属性:名字name,输赢次数(比分)score 行为:出拳showFist()随机Game类有哪些属性和行为呢?属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计比赛结果calcResul()2、主要实现代码:import java.util.*;public class StartGame { public static void main(String[]args){Game start = new Game();//实例化游戏类start.initial();//调用初始化方法start.startGame();//调用游戏开始方法start.showResult();//调用游戏结果显示方法} } import java.util.*;public class Person { String name;//名字属性int score;//积分属性//出拳方法public int showFist(){System.out.print(“n请出拳:1.剪刀2.石头3.布(输入相应数字):”);Scanner input = new Scanner(System.in);int num = input.nextInt();String fist = “";//保存出拳switch(num){ case 1:fist = ”剪刀“;break;case 2:fist = ”石头“;break;case 3:fist = ”布“;break;}System.out.println(name + ”出拳:“ + fist);return num;} } import java.util.*;public class Game { //Person person;//甲方//Computer computer;//乙方int count;//对战次数Person person = new Person();//实例化用户类Computer computer = new Computer();//实例化计算机类//初始化方法public int initial(){count = 0;return count;} //游戏开始方法public void startGame(){//显示游戏开始界面System.out.println(”---------------欢迎进入游戏世System.out.println(“tt******************************”);System.out.println(“tt**^_^ 猜拳,Start ^_^**”);System.out.println(“tt*****************************”);界--------------n“);System.out.println(”nn出拳规则:1.剪刀 2.石头 3.布“);//选择计算机角色System.out.print(”请选择对方角色:1.刘备2.孙权3.曹操:“);Scanner input = new Scanner(System.in);int num = input.nextInt();switch(num){ case 1: = ”刘备“;break;case 2: = ”孙权“;break;case 3: } = ”曹操“;break;//输入用户角色名System.out.print(”请输入你的姓名:“); = input.next();//显示对战双方System.out.print( + ” VS “ + + ” 对战n“);//开始游戏System.out.print(”n要开始吗?(y/n)“);String con = input.next();int perFist;//用户出的拳 int compFist;//计算机出的拳if(con.equals(”y“)){//判断是否开始String answer = ”y“;while(”y“.equals(answer)){//循环条件是是否开始下一轮//出拳perFist = person.showFist();//调用用户出拳方法compFist = computer.showFist();//调用计算机出拳方法//裁决if((perFist == 1 && compFist == 1)||(perFist == 2 && compFist == 2)||(perFist == 3 && compFist == 3)){Syst em.out.println(”结果:和局,真衰!n“);//平局}else if((perFist == 1 && compFist == 3)||(perFist == 2 && compFist == 1)||(perFist == 3 && compFist == 2)){System.out.println(”结果:恭喜, 你赢了!n“);//用户赢person.score++;//累计用户积分}else{}} System.out.println(”结果说:^_^,你输了,真笨!n“);//计算机赢computer.score++;//累计计算机积分 } count++;//累计对战次数System.out.print(”是否开始下一轮(y/n):“);answer = input.next();}//比较得分情况的方法public void showResult(){ System.out.println(”-----------------------“);System.out.println( + ” VS “ + person.na me);System.out.println(”对战次数:“ + count);System.out.println(”n姓名t得分n“ + + ”t“ + person.score+ ”n“ + + ”t“ + computer.score + ”n“);//比较积分if(computer.score == person.score){System.out.println(”结果:打成平手,下次再和你一分高下!“);}else if(computer.score < person.score){System.out.println(”结果:你果然是高手,“ + + ”佩服!“);}else{System.out.println(”结果:呵呵,笨笨,下次加油哦!“);}System.out.println(”-----------------------“);} } public class Computer {String name;//名字属性 int score;//积分属性 //出拳方法public int showFist(){ int num =(int)(Math.random()*3)+ 1;String fist = ”“;switch(num){ case 1:fist = ”剪刀“;break;case 2:fist = ”石头“;break;case 3:fist = ”布“;break;}System.out.println(name + ”出拳:" + fist);return num;} } 运行界面:3、实验心得体会:从本次课程设计的完成中,我发现我有很多不足的地方,最突出的是所掌握的知识太少,学到的知识应用不到实践中。

java语言实现猜拳游戏的编写

java语言实现猜拳游戏的编写

package TG.Java_17;public class Computer {public int getFist(){int fist = (int)(Math.random()*10)%3+1;switch(fist){case 1:System.out.println("机器:石头");break;case 2:System.out.println("机器:剪刀");break;case 3:System.out.println("机器:布");break;}return fist;}}package TG.Java_17;import java.util.Scanner;public class Person {public int getFist(){Scanner input = new Scanner(System.in);System.out.println("请用户猜拳:1.石头 2.剪刀 3.布");int fist = input.nextInt();switch(fist){case 1:System.out.println("人类:石头");break;case 2:System.out.println("人类:剪刀");break;case 3:System.out.println("人类:布");break;default:System.out.println("对不起哈我们没有这个猜拳选项");}return fist;}}package TG.Java_17;import java.util.Scanner;public class TestFist {public static void main(String[] args) {Person per = new Person();Computer com = new Computer();String answer = null;Scanner input = new Scanner(System.in);int pCount = 0;int cCount = 0;do{int pFist = per.getFist();int cFist = com.getFist();//我们判读一下if((pFist==1&&cFist==2)||(pFist==2&& cFist==3) ||(pFist==3&& cFist==1)){pCount++;}else if((pFist==2&&cFist==1)||(pFist==3&&cFist==2)||(pFist==1&&cFist==3)){cCount++;}else {}System.out.println("小样的?你服不服啊?(y/n)");answer = input.next();}while(!"y".equals(answer));if(pCount>cCount){System.out.println("恭喜,人类赢了!");}else if(pCount<cCount){System.out.println("大哥,太悲哀了~电脑赢了!");}else {System.out.println("你俩都很厉害!平局!");}System.out.println("比分是:"+pCount+"VS"+cCount);}}。

java课程设计猜拳游戏

java课程设计猜拳游戏

java 课程设计猜拳游戏一、教学目标本节课的教学目标是使学生掌握Java猜拳游戏的基本原理和实现方法,通过编程实践提高学生的Java编程能力。

具体目标如下:知识目标:使学生了解Java猜拳游戏的基本概念,理解游戏的设计思路和实现原理;掌握Java编程的基本语法和常用API。

技能目标:培养学生运用Java编程解决实际问题的能力,提高学生的编程技巧和逻辑思维能力;培养学生团队协作和沟通的能力。

情感态度价值观目标:培养学生对编程的兴趣和热情,增强学生自信心,培养学生的创新精神和团队合作意识。

二、教学内容本节课的教学内容主要包括以下几个部分:1.Java猜拳游戏的基本概念和原理;2.Java猜拳游戏的界面设计和实现;3.Java猜拳游戏的逻辑设计和实现;4.Java编程的基本语法和常用API。

教学进度安排如下:1.课堂导入:介绍猜拳游戏的基本概念和原理,引导学生思考如何用Java实现猜拳游戏;2.课堂讲解:讲解Java编程的基本语法和常用API,引导学生学习并掌握相关知识;3.课堂实践:引导学生动手编写猜拳游戏,过程中给予个别辅导和指导;4.课堂总结:对学生的作品进行点评,总结猜拳游戏的实现方法和编程技巧。

三、教学方法本节课采用讲授法、讨论法和实验法相结合的教学方法:1.讲授法:用于讲解Java编程的基本语法和常用API,使学生掌握相关知识;2.讨论法:在课堂实践环节,引导学生分组讨论,共同解决问题,提高学生的团队协作和沟通能力;3.实验法:让学生动手编写猜拳游戏,培养学生的实际编程能力和创新精神。

四、教学资源本节课所需教学资源包括:1.教材:《Java编程基础》;2.参考书:《Java核心技术》;3.多媒体资料:PPT课件;4.实验设备:计算机。

以上教学资源将有助于实现本节课的教学目标,提高学生的学习效果。

五、教学评估本节课的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的30%;2.作业:评估学生完成的猜拳游戏代码质量,包括代码规范、功能完整性等,占总评的40%;3.考试:期末进行Java编程考试,测试学生的综合编程能力,占总评的30%。

用Java编写的猜拳小游戏

用Java编写的猜拳小游戏

⽤Java编写的猜拳⼩游戏学习⽬标:熟练掌握各种循环语句例题:代码如下:// 综合案例分析,猜拳案例// isContinue为是否开始游戏时你所输⼊的值char isContinue;//y为开始,n为借宿System.out.println("是否开始游戏(y/n)");Scanner sc = new Scanner(System.in);String str = sc.next();// 获取你输⼊字符串的第⼀个字符isContinue = str.charAt(0);// mcount代表玩家赢的局数,pcount代表电脑赢的局数int mcount = 0, pcount = 0;//你的名字System.out.println("请输⼊您的名字");String pName = sc.next();System.out.println("您的名字是:" + pName);System.out.println("请选择您的对⼿:1、貂蝉, 2、⼩肥⽺,3、吕布");// cpuName电脑名字String cpuName = null;int num3 = sc.nextInt();if(num3 >= 1 && num3 <= 3) {switch (num3) {case 1 : {cpuName = "貂蝉";} break;case 2 : {cpuName = "⼩肥⽺";} break;case 3 : {cpuName = "吕布";}}System.out.println(pName + " VS " + cpuName);// 让⼤⼩写都能运⾏if(isContinue == 'y' || isContinue == 'Y' || isContinue == 'n' || isContinue == 'N') {while(isContinue == 'y' || isContinue == 'Y') {System.out.println("请输⼊您要出的东西:1、布, 2、拳头,3、剪⼑");int num = sc.nextInt();switch(num) {case 1 : {System.out.println(pName + "出的是布");} break;case 2 : { System.out.println(pName + "出的是拳头"); }; break;case 3 : { System.out.println(pName + "出的是剪⼑"); }; break;default : { System.out.println(pName + "的输⼊不规范,请重新输⼊"); }//输⼊出错,跳出当前循环回到while,重新输⼊continue;}// 让电脑随机⽣成1~3的随机数Random num2 = new Random();// +1是因为前⾯代码⽣成的是0~2,+1后就变成了1~3int cpt = num2.nextInt(3) + 1;// 判断电脑产⽣的随机数switch(cpt) {case 1 : {System.out.println(cpuName + "出的是布");}; break;case 2 : {System.out.println(cpuName + "的是拳头");}; break;case 3 : {System.out.println(cpuName + "的是剪⼑");}; break;}// 把⾃⼰输⼊的数与电脑随机产⽣的随机数相⽐较if(num == cpt) {System.out.println(pName + "和" + cpuName + "这局打平!");} else if((num == 1 && cpt == 2) || (num == 2 && cpt == 3) || (num == 3 && cpt == 1)) {System.out.println(pName + "赢了!");mcount++;} else {System.out.println(cpuName + "赢了!");pcount++;}System.out.println(pName + "共赢了" + mcount + "局" + " " + cpuName + "共赢了" + pcount + "局"); System.out.println("是否继续游戏(y/n)");str = sc.next();isContinue = str.charAt(0);}} else {System.out.println("您输⼊的不符合规则,游戏结束!");}} else {System.out.println("您输⼊的数据不符合规范!");}运⾏效果:是否开始游戏(y/n)y请输⼊您的名字lalal您的名字是:lalal请选择您的对⼿:1、貂蝉, 2、⼩肥⽺,3、吕布1lalal VS 貂蝉请输⼊您要出的东西:1、布, 2、拳头,3、剪⼑3lalal出的是剪⼑貂蝉的是剪⼑lalal和貂蝉这局打平!lalal共赢了0局貂蝉共赢了0局是否继续游戏(y/n)y请输⼊您要出的东西:1、布, 2、拳头,3、剪⼑5lalal的输⼊不规范,请重新输⼊请输⼊您要出的东西:1、布, 2、拳头,3、剪⼑1lalal出的是布貂蝉的是拳头lalal赢了!lalal共赢了1局貂蝉共赢了0局是否继续游戏(y/n)nProcess finished with exit code 0总结:以上就是⽤Java编写的猜拳⼩游戏了,代码仅供参考。

基于java实现人机猜拳游戏

基于java实现人机猜拳游戏

基于java实现⼈机猜拳游戏本⽂实例为⼤家分享了java实现⼈机猜拳游戏的具体代码,供⼤家参考,具体内容如下完成⼈机猜拳互动游戏的开发,⽤户通过控制台输⼊实现出拳,电脑通过程序中的随机数实现出拳,每⼀局结束后都要输出结果。

当⽤户输⼊n时停⽌游戏,并输出总结果。

效果如图1-1所⽰。

图1-1⼈机猜拳游戏实现思路图1-2该项⽬的类图(1)创建出⽤户类。

定义⽤户类Customer,定义类的属性(name、score)和类的⽅法showFist()。

请思考getFist()中的switch语句该如何书写。

(2)创建计算机类Computer,实现计算机出拳。

计算机出拳是根据产⽣的随机数来决定出拳的具体内容。

这点的实现和⽤户类出拳类似,请⾃⼰完成。

(3)创建游戏类,实现选择对战对⼿Ø 创建游戏类Game,编写其属性。

属性有:甲⽅玩家、⼄⽅玩家和对战次数以及平⼿次数。

Ø 编写游戏类的开始游戏⽅法startGame(),实现的效果如下图1-3所⽰。

图1.3对战选⼿的选择(4)分别调⽤⽤户类和计算机类的出拳⽅法showFist(),接收返回值并⽐较,给出胜负结果,运⾏结果如下图1-4所⽰。

图1-4⽤户和电脑出拳对战(5)实现循环对战,效果如下图1-5所⽰。

图1-5实现循环对战(6)完善游戏类,显⽰对战结果,效果如下图1-6所⽰。

图1-6显⽰对战结果(7)建⽴测试类RunGame,调⽤Game类的startGame()⽅法。

代码实现Your 类代码(⽤以表⽰你出的招式)package chaiquan;public class your {public static int quan(int i){switch(i){case 1:System.out.println("你出拳:剪⼑");break;case 2:System.out.println("你出拳:⽯头");break;case 3:System.out.println("你出拳:布");break;default:System.out.println("输⼊错误,请重新输⼊");break;}return i;}}Customer 类(实现计算机随机出拳以及对胜负结果的判断)package chaiquan;public class Customer {static int scor=0;static int scor1=0;static int scor2=0;static int chuzhao;public static int showFist(){chuzhao= (int) (Math.random() * 3) + 1;return chuzhao;}public static int getFist(){switch(chuzhao){case 1:System.out.println("剪⼑");break;case 2:System.out.println("⽯头");break;case 3:System.out.println("布");break;}return chuzhao;}public static int play(int i){if(i==chuzhao){System.out.println("此局:和局,嘿嘿,等着瞧吧!");scor++;}else if(i==1&&chuzhao==2){System.out.println("此局:很遗憾,你输了");scor1++;}else if(i==1&&chuzhao==3){System.out.println("此局:恭喜,你赢了");scor2++;}else if(i==2&&chuzhao==1){System.out.println("此局:恭喜,你赢了");scor2++;}else if(i==2&&chuzhao==3){System.out.println("此局:很遗憾,你输了");scor1++;}else if(i==3&&chuzhao==1){System.out.println("此局:很遗憾,你输了");scor1++;}else if(i==3&&chuzhao==2){System.out.println("此局:恭喜,你赢了");scor2++;}return i;}}Game 类(开始游戏)package chaiquan;public class Game {public static void main(String[] args) {GameGame.startGame();}}GameGame类(游戏真正的执⾏进程)package chaiquan;import java.util.Scanner;public class GameGame {public static void startGame(){int iii=1;System.out.println("---------------欢迎进⼊游戏世界---------------\n\n\n\t\t********************\n\t\t****猜拳,开始****\n\t\t********************"); System.out.print("请选择你想和谁对战(1:刘备 2:孙权 3:曹操):");Scanner sc=new Scanner(System.in);int a=sc.nextInt();while(true){System.out.print("要开始吗?(y/n):");String b=sc.next();if(b.equals("n")){System.out.println("结束");return;}else if(b.equals("y")){while(true){System.out.print("请出拳:1.剪⼑ 2.⽯头 3.布(输⼊相应数字):");int c=sc.nextInt();Computer.quan(c);System.out.print(Qwe.getName1(a)+"出拳:");Customer.showFist();Customer.getFist();Customer.play(c);System.out.print("是否开始下⼀轮(y/n):");String m=sc.next();if(m.equals("y")){iii++;}else if(m.equals("n")){System.out.println("------------------------------------------");System.out.println(Qwe.getName1(a)+"VS玩家");System.out.println("对战次数:"+iii+"出拳⼀样的情况有"+Customer.scor+"次");if(Customer.scor1<Customer.scor2){System.out.println("结果:恭喜恭喜,你赢了");break;}else if(Customer.scor1==Customer.scor2){System.out.println("平局!");break;}else{System.out.println("很遗憾你输了!");break;}}else{System.out.println("输⼊错误,请重新输⼊;");break;}}}else{System.out.println("输⼊错误,请重新输⼊");continue;}}}}User 类(选择游戏玩家)package chaiquan;public class user {static String name;public static String getName1(int i){switch(i){case 1:name="刘备";break;case 2:name="孙权";break;case 3:name="曹操";break;}return name;}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

java猜拳小游戏课程设计

java猜拳小游戏课程设计

java猜拳小游戏课程设计一、教学目标本课程旨在通过Java猜拳小游戏的项目开发,使学生掌握Java程序设计的基本语法、流程控制语句、面向对象编程思想,以及常用的数据结构。

在技能方面,培养学生运用Java语言解决实际问题的能力,提高学生的编程实践能力。

同时,通过小组合作、讨论的方式,培养学生的团队合作意识和解决问题的能力,激发学生对计算机科学的兴趣。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言基础:介绍Java语言的基本语法、数据类型、运算符、流程控制语句等。

2.面向对象编程:讲解类的定义、属性和方法,以及封装、继承、多态等面向对象的基本概念。

3.常用数据结构:学习数组、链表、栈、队列等常用的数据结构,并了解其在Java中的应用。

4.猜拳小游戏项目开发:以猜拳小游戏为例,让学生动手编写游戏程序,巩固所学知识,提高实际编程能力。

三、教学方法本课程采用讲授法、实践教学法和小组讨论法相结合的教学方法。

1.讲授法:用于讲解Java语言的基本语法、面向对象编程思想和数据结构等理论知识。

2.实践教学法:通过让学生动手编写猜拳小游戏,提高学生的实际编程能力。

3.小组讨论法:在课程过程中,学生进行小组合作、讨论,培养学生的团队合作意识和解决问题的能力。

四、教学资源本课程所需教学资源包括:1.教材:《Java程序设计》等相关教材,用于引导学生学习Java语言的基本语法和编程技巧。

2.多媒体资料:提供在线编程环境,让学生随时随地进行代码编写和调试。

3.实验设备:为学生提供计算机实验室,方便学生进行实践操作和小组讨论。

4.辅助工具:使用投影仪、计算机等辅助教学工具,提高课堂教学效果。

五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。

评估内容包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置课后编程作业,评估学生的编程能力和对知识的理解程度。

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

目录绪论................................................ 错误!未定义书签。

一、背景与意义...................................... 错误!未定义书签。

二、设计原理与方案.................................. 错误!未定义书签。

一)方案........................................ 错误!未定义书签。

二)设计思路.................................... 错误!未定义书签。

三)系统分析.................................... 错误!未定义书签。

四)程序概要设计................................ 错误!未定义书签。

五)工作流程图................................. 错误!未定义书签。

六)程序框图................................... 错误!未定义书签。

七)程序中所用类说明........................... 错误!未定义书签。

八)程序运行效果及存在的问题.................... 错误!未定义书签。

三、项目实现........................................ 错误!未定义书签。

一)程序用到的类库简介.......................... 错误!未定义书签。

二)游戏主程序设计.............................. 错误!未定义书签。

三)主界面PigPanel类.......................... 错误!未定义书签。

四)具体实现................................... 错误!未定义书签。

四、运行结果........................................ 错误!未定义书签。

一)结果截图.................................... 错误!未定义书签。

二)系统在调度中经常出现的问题.................. 错误!未定义书签。

五、心得............................................ 错误!未定义书签。

六、总结语.......................................... 错误!未定义书签。

七、参考文献 (19)绪论:面向对象(OOP)的程序设计认为:现实世界是由一组彼此相关并互通信息的实体——对象(Object)组成的。

不管是一所学校、一个班级;一辆汽车、一张桌子;还是一个窗体、一个按钮,都可视作对象。

一个对象包含两部分内容:描述对象状态的数据和描述对象行为或功能(方法)的编码。

数据和编码紧密结合,共同构成一个对象。

面向对象的程序设计有三大特性:封装性、继承性和多态性。

计算机技术的应用正在朝着网络化的方向阔步前进,万维网成为世界上最大的信息中心。

但目前外围网上的内容仍多为文本、图像、声音等静态信息,Java为其提供了简便并且功能强大的编程接口,开发人员利用这些编程接口可以向Web 增加动态性、交互性内容,这使得Web页面翻开了新的一页。

Java是一种跨平台的面向对象的语言,这就允许开发人员生成独立于平台的应用程序,用Java编写的程序可以在许多硬件平台上运行而不需要重新编译。

Java具有很多优点:简单、面向对象、可移植、与硬件无关、强健安全、具有很高的性能,此外还对多线程、动态性提供了支持。

Java采用面向对象技术,所有的Java程序都是对象,通过封装性实现了模块化和信息隐藏,通过继承性实现了代码的复用,使得用户可以根据自己的需要创建自己的类库。

Java最强大的是网络方面的应用,本课程设计不涉及网络方面的应用。

一、背景与意义游戏是全球最大的娱乐经济项目之一,已经被命名为“第九艺术”。

而由“游戏”派生出来的职业,除了软件开发外,游戏包装宣传推广、攻略指导、网络游戏管理员和职业游戏玩家等,已成为了一系列专门的岗位。

虽然说中国的游戏行业开始逐步的迈入了正轨,但是现今,游戏人才出现严重的瓶颈时期,高校的扩招、金融危机的侵袭直接影响着我们最关心的就业问题,但是另一方面游戏人才的缺乏又直接制约着行业的发展,这就更加严格了对社会培训机构的稳定性和正规性的要求。

在我国,游戏人才培养体系还未健全,部分开设了相关专业的高校,游由于理论和实践的脱离无法完全满足网游公司对人才的需求。

所以,就中国目前的市场分析来看,加强游戏产业必须在多渠道人才培养体系上加快突破,尽快建立起多渠道人才培养体系,来满足社会对游戏人才的需求。

通过Java程序设计的一些重要理论基础来实现“人机猜拳小游戏”的功能。

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

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

二、设计原理及方案程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。

程序使用已创建的PairOfDice类,设计并实现一个类来玩游戏。

根据游戏规则玩家将和电脑进行比赛。

创建小游戏,实现电脑与玩家之间互动猜拳这主要功能,通过按钮的方式,与电脑进行猜拳游戏,电脑随机出拳并能显示设置的图片,增加美观。

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

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

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

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

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

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

二)设计思路:在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现:⑴构造创建服务器端和客户端⑵创建输入输出流⑶编写服务器端处理数据的线程方法⑷绘制游戏界面⑸绘制界面上的提示采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现,程序也更易于读懂。

如java中得到输入输出流的方法://调用客户端的getInputStream()方法Inputs=newBufferedReader(newInputStreamReader(client.getInputStream()));通过调用此方法获取从服务器得到的数据调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器。

三)系统分析Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。

图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。

线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。

文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。

由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。

在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。

主类完成对象的实例化及显示。

这们设计的优点是:条理清晰,容易理解,容易修改。

这样设计的缺点是:不利于共享类中的方法。

四)程序概要设计1)功能需求分析一个剪刀石头布游戏,根据一般的常识,首先要有两个人,两个人同时出,然后,根据双方的出拳,决定谁是赢者,虽然想起来这个游戏很简单,但如何实现,还是有一定难度的。

实现这个时针时涉及到几个技术问题:1.双方如何出拳2.如何同时出拳3.如何判断哪方赢了4.如何显示结果剪刀石头布游戏,都是通过两个人同时出拳,然后根据双方出的拳,判定哪方是赢家。

2)性能需求分析准确性:在实现此的过程中,我们要考虑到,双方是否能同时地出拳,还要就是如何去判断,准确地知道哪方是赢家.简洁性:在实现此的过程中,我们要考虑到,怎样使游戏界面更简单,让人更容易明白它怎样去玩。

五)工作流程图:图1 工作流程图六)程序框图游戏程序框图如图2所示图2 游戏程序框图七)程序中所用类说明:(1)用户自定义类类名:SmallGame作用:实例化对象主要成员变量:Frame myFrm // 定义主窗体TextArea myText // 定义文本编辑区Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮Label Lf Lr, Ls //定义和创建各标签MenuBar Mbbar //定义和创建主菜单Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项Toolkit toolKitClipboard myCB //剪切板对象FileDialog myFDlg //定义文件对话框主要成员方法:public void init() //初始化各部件菜单的定义和事件的监听public void displayEdit ()//显示窗体及调用Time中的schedule方法public void windowClosing () //关闭窗体public void save //保存文件方法.内部类类名:KeyEvents作用:实现菜单的事件的响应功能继承的父类:KeyAdapter主要成员变量:无成员方法:actionPerformed()、keyPressed()(2)用户自定义类与Java类的继承关系图如下:图3 子类及其父类继承关系图(3)类中成员及作用Service类成员:String data; //接收数据BufferedReader inputs;// 读取数据PrintStream outputs;//输出数据Socket client;//定义套接字Client类成员:String data;//接收数据Socket client = null;//定义套接字BufferedReader inputs = null;// 读取数据BufferedReader key = null;// 缓冲数据PrintStream outputs = null;//输出数据八)程序运行效果及存在的问题(1)运行效果图剪刀石头布游戏效果如图4所示:图4游戏效果图(2)存在的问题此游戏界面简洁明了,但还是有许多问题的,比如说这个界面不是GUI的,所以操作性不强,也不美观,而且处理数据的random函数也有问题,它可能出现相同的结果,不能成为真正意义上的随机,所以这个小游戏还是有许多问题的,我会进一步的改进它。

相关文档
最新文档