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实现猜拳⼩游戏的具体代码,供⼤家参考,具体内容如下实现下图要求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猜拳小游戏课程设计一、课程目标知识目标: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课课程设计一、教学目标本节课的学习目标为:知识目标:使学生掌握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⾯向对象编程实现--猜拳⼩游戏⽬标⽬标:玩家在控制台和电脑猜拳,电脑每次都会随机出⽯头/剪⼑/布,直到玩家选择退出游戏。
记录并显⽰玩家和电脑猜拳的成绩。
设计思路分析电脑的随机猜拳可以使⽤随机数⽣成,这⾥规定 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猜拳小游戏的项目开发,使学生掌握Java程序设计的基本语法、流程控制语句、面向对象编程思想,以及常用的数据结构。
在技能方面,培养学生运用Java语言解决实际问题的能力,提高学生的编程实践能力。
同时,通过小组合作、讨论的方式,培养学生的团队合作意识和解决问题的能力,激发学生对计算机科学的兴趣。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言基础:介绍Java语言的基本语法、数据类型、运算符、流程控制语句等。
2.面向对象编程:讲解类的定义、属性和方法,以及封装、继承、多态等面向对象的基本概念。
3.常用数据结构:学习数组、链表、栈、队列等常用的数据结构,并了解其在Java中的应用。
4.猜拳小游戏项目开发:以猜拳小游戏为例,让学生动手编写游戏程序,巩固所学知识,提高实际编程能力。
三、教学方法本课程采用讲授法、实践教学法和小组讨论法相结合的教学方法。
1.讲授法:用于讲解Java语言的基本语法、面向对象编程思想和数据结构等理论知识。
2.实践教学法:通过让学生动手编写猜拳小游戏,提高学生的实际编程能力。
3.小组讨论法:在课程过程中,学生进行小组合作、讨论,培养学生的团队合作意识和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《Java程序设计》等相关教材,用于引导学生学习Java语言的基本语法和编程技巧。
2.多媒体资料:提供在线编程环境,让学生随时随地进行代码编写和调试。
3.实验设备:为学生提供计算机实验室,方便学生进行实践操作和小组讨论。
4.辅助工具:使用投影仪、计算机等辅助教学工具,提高课堂教学效果。
五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。
评估内容包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后编程作业,评估学生的编程能力和对知识的理解程度。
java课程设计猜拳
java课程设计猜拳一、教学目标本节课的教学目标是让学生掌握Java猜拳游戏的基本原理和实现方法。
知识目标要求学生了解Java编程语言的基本语法和流程控制语句,掌握函数的定义和调用方法。
技能目标要求学生能够运用Java编写简单的猜拳游戏程序,培养学生的编程能力和问题解决能力。
情感态度价值观目标在于激发学生对编程的兴趣,培养学生的创新意识和团队合作精神。
二、教学内容本节课的教学内容主要包括以下几个部分:首先,介绍Java编程语言的基本语法和流程控制语句,如条件语句、循环语句等;其次,讲解函数的定义和调用方法,让学生了解如何自定义函数;然后,引导学生学习如何使用Java编写猜拳游戏程序,包括游戏规则的设定、用户输入的处理以及游戏结果的输出;最后,通过案例分析,让学生掌握Java编程中的一些常用技巧和方法。
三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法进行教学。
首先,采用讲授法,向学生讲解Java编程语言的基本语法和流程控制语句;其次,运用案例分析法,让学生通过分析实际案例,掌握Java编程中的一些常用技巧和方法;然后,采用讨论法,引导学生分组讨论如何编写猜拳游戏程序,培养学生的团队合作精神;最后,运用实验法,让学生动手实践,编写并运行自己的猜拳游戏程序。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:首先,教材《Java编程入门》,作为学生学习的基本资料;其次,参考书《Java核心技术》,为学生提供更深入的Java编程知识;再次,多媒体教学课件,用于直观地向学生展示Java编程的概念和方法;最后,实验设备,如计算机和网络,让学生能够进行实际的编程实践。
五、教学评估为了全面、客观、公正地评估学生的学习成果,我们将采用多种评估方式。
平时表现将占总分的一定比例,主要评估学生在课堂上的参与程度、提问回答等情况。
作业将占总分的一定比例,主要评估学生的编程能力和对知识的掌握程度。
Java实现简单猜拳游戏
Java实现简单猜拳游戏本⽂实例为⼤家分享了Java实现简单猜拳游戏的具体代码,供⼤家参考,具体内容如下看⽹上的猜拳游戏那么多,但都是⽤switch输⼊数字,所以⽤if嵌套,写⼀个简单的猜拳游戏package Game;import java.util.Scanner;import java.util.Random;//⽣成随机数,利⽤switch⽣成随机的⽯头,剪⼑或者布public class CaiQuan {public static void main(String[] args) {while(true){System.out.println("请输⼊⽯头,剪⼑或者布");Scanner sc = new Scanner(System.in);String quantou = sc.next();int month = (int)(3*Math.random())+1;String com;//为电脑的出拳⽣成字符串//电脑出拳switch(month){case 1:com = "⽯头";break;case 2:com = "剪⼑";break;case 3:com = "布";break;}if(quantou.equals("⽯头")){if(month==1){System.out.println("你出的是⽯头,电脑出的是⽯头");System.out.println("平局");}else if(month==2){System.out.println("你出的是⽯头,电脑出的是剪⼑");System.out.println("你赢了");}else if(month==3){System.out.println("你出的是⽯头,电脑出的是布");System.out.println("你输了");}}else if(quantou.equals("剪⼑")){if(month==1){System.out.println("你出的是剪⼑,电脑出的是⽯头");System.out.println("你输了");}else if(month==2){System.out.println("你出的是剪⼑,电脑出的是剪⼑");System.out.println("平局");}else if(month==3){System.out.println("你出的是剪⼑,电脑出的是布");System.out.println("你赢了");}}else if(quantou.equals("布")){if(month==1){System.out.println("你出的是布,电脑出的是⽯头");System.out.println("你赢了");}else if(month==2){System.out.println("你出的是布,电脑出的是剪⼑");System.out.println("你输了");}else if(month==3) {System.out.println("你出的是布,电脑出的是布");System.out.println("平局");}}}}}再为⼤家补充⼀段猜拳游戏代码:import java.util.Scanner;import java.util.Random;public class GuessingBoxing {public static void main(String[] args) {while(true) {System.out.println("----猜拳游戏----");System.out.println("请出拳(1、剪⼑ 2、⽯头 3.布)");Scanner in=new Scanner(System.in);/*** people表⽰⼈出的数* computer表⽰电脑出的数*/int people=in.nextInt();int computer=(int)(Math.random()*3+1);f(people,computer);System.out.println();System.out.println();//输⼊完成,开始判断输赢}}private static void f(int people, int computer) {String logo1="剪⼑"; //数字字符化String logo2="剪⼑";switch(people) {case 1:logo1="剪⼑";break;case 2:logo1="⽯头";break;case 3:logo1="布";}switch(computer) {case 1:logo2="剪⼑";break;case 2:logo2="⽯头";break;case 3:logo2="布";}if(people==computer) {System.out.println("平局你出的是:"+logo1+" 电脑出的是"+logo1);}elseif(people==1&&computer==2||people==2&&computer==3||people==3&&computer==1) {System.out.println("你输了你出的是:"+logo1+" 电脑出的是"+logo2);}elseSystem.out.println("你赢了你出的是:"+logo1+" 电脑出的是:"+logo2);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
猜拳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 猜拳游戏实验报告一、实验目的本实验旨在通过使用 Java 编程语言实现一个猜拳游戏,以加深对Java 基础语法、面向对象编程思想以及程序逻辑控制的理解和运用。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验原理猜拳游戏的核心逻辑是模拟玩家和计算机的出拳选择,并根据出拳结果判断胜负。
在 Java 中,可以使用随机数生成计算机的出拳,通过用户输入获取玩家的出拳,然后比较两者的出拳来确定胜负关系。
四、实验步骤1、定义游戏相关的常量和变量定义表示石头、剪刀、布的常量,如`STONE`、`SCISSORS`、`PAPER`。
定义表示玩家和计算机得分的变量。
2、实现获取用户输入的方法使用`Scanner` 类获取用户输入的数字,代表出拳选择(1 表示石头,2 表示剪刀,3 表示布)。
3、实现计算机出拳的方法使用`Random` 类生成一个 1 到 3 之间的随机数,代表计算机的出拳。
4、实现判断胜负的方法根据玩家和计算机的出拳,比较两者的大小,确定胜负关系,并更新得分。
5、实现游戏主逻辑在主方法中,循环进行游戏,直到玩家选择退出。
每次循环中,获取玩家和计算机的出拳,判断胜负,输出结果,并询问玩家是否继续游戏。
五、核心代码实现```javaimport javautilRandom;import javautilScanner;public class RockPaperScissorsGame {//定义表示石头、剪刀、布的常量private static final int STONE = 1;private static final int SCISSORS = 2;private static final int PAPER = 3;public static void main(String args) {int playerScore = 0;int computerScore = 0;Scanner scanner = new Scanner(Systemin);Random random = new Random();while (true) {//获取玩家出拳Systemoutprintln("请选择出拳(1、石头 2、剪刀 3、布):");int playerChoice = scannernextInt();//生成计算机出拳int computerChoice = randomnextInt(3) + 1;//判断胜负int result = judgeWinner(playerChoice, computerChoice);if (result == 1) {playerScore++;Systemoutprintln("你赢了!");} else if (result ==-1) {computerScore++;Systemoutprintln("你输了!");} else {Systemoutprintln("平局!");}Systemoutprintln("你的得分:"+ playerScore +"计算机得分:"+ computerScore);Systemoutprintln("是否继续游戏?(Y/N)");String continueChoice = scannernext();if (!continueChoiceequalsIgnoreCase("Y")){break;}}}public static int judgeWinner(int playerChoice, int computerChoice) {if (playerChoice == computerChoice) {return 0;} else if ((playerChoice == STONE && computerChoice ==SCISSORS) ||(playerChoice == SCISSORS && computerChoice ==PAPER) ||(playerChoice == PAPER && computerChoice == STONE)){return 1;} else {return -1;}}}```六、实验结果与分析1、运行程序后,能够成功获取玩家的输入,并生成计算机的随机出拳。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉林工程技术师范学院C程序设计课程设计报告书设计题目:Java简易猜拳小游戏专业:信息管理与信息系统班级: X0841 ****:***学号: ********** ****:***信息工程学院2009年12月目录摘要: (03)第一章绪论 (05)第二章系统分析 (07)第三章总体设计 (09)第四章编码实现 (11)第五章调试与测试 (14)总结: (15)附录:1源代码 (20)2参考资料 (30)摘要面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。
作为一种新的的编程语言,Java很大程度推广了面向对象的思想。
随着计算机技术的发展,Java 的强大展现出它不可替代的作用。
Java的功能不仅体现在它网络方面的应用,对于应用程序设计、游戏设计等Java都能满足需求。
本文针对Java 的具体应用,设计了一个小游戏。
根据游戏的规则,用户将可以和计算机进行简单对战。
程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作。
关键字:JAVA GUI 游戏ABSTRACTThe Object-Oriented Method is a method which apllies the Object-Oriented Design to the process of the software exploiture and directs the ploy of development. It extracts the prime of the Structured Design for Computer Programmers, deals matters with a folksy fashion, which is considered to be a grand new software-develop technique.As a new programming language, Java spread the Object-Oriented Design in a certain degree. With the development of the technique of computer, the insurmountable function of JAVA is exhibited for its’ mightiness. Not only applies in network, JAVA also can fulfill the requirement of the Application-Design and Game-Design.In this paper, to use the idiographic application of JAVA , I design a game called . Following the regular of the game, user can play a simple revalry with computer. This programme actualizes a folksy GUI mode, which will make user master game easily.Keywords: JAVA GUI Game第一章绪论面向对象(OOP)的程序设计认为:现实世界是由一组彼此相关并互通信息的实体——对象(Object)组成的。
不管是一所学校、一个班级;一辆汽车、一张桌子;还是一个窗体、一个按钮,都可视作对象。
一个对象包含两部分内容:描述对象状态的数据和描述对象行为或功能(方法)的编码。
数据和编码紧密结合,共同构成一个对象。
面向对象的程序设计有三大特性:封装性、继承性和多态性。
计算机技术的应用正在朝着网络化的方向阔步前进,万维网成为世界上最大的信息中心。
但目前外围网上的内容仍多为文本、图像、声音等静态信息,Java 为其提供了简便并且功能强大的编程接口,开发人员利用这些编程接口可以向Web增加动态性、交互性内容,这使得Web页面翻开了新的一页。
Java是一种跨平台的面向对象的语言,这就允许开发人员生成独立于平台的应用程序,用Java编写的程序可以在许多硬件平台上运行而不需要重新编译。
Java具有很多优点:简单、面向对象、可移植、与硬件无关、强健安全、具有很高的性能,此外还对多线程、动态性提供了支持。
Java采用面向对象技术,所有的Java程序都是对象,通过封装性实现了模块化和信息隐藏,通过继承性实现了代码的复用,使得用户可以根据自己的需要创建自己的类库。
Java最强大的是网络方面的应用,本课程设计不涉及网络方面的应用。
第二章系统分析Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。
线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。
文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。
由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。
在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。
主类完成对象的实例化及显示。
这们设计的优点是:条理清晰,容易理解,容易修改。
这样设计的缺点是:不利于共享类中的方法。
第三章总体设计3.1 程序主要功能:程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。
程序使用已创建的PairOfDice类,设计并实现一个类来玩游戏。
根据游戏规则玩家将和电脑进行比赛。
3.2本程序设计有一下几点设计要求:(1) 用可视化编程控件实现该程序。
(2)人和电脑对战,你输入石头或剪子或布后,电脑会说“你赢了”,“你输了”或“平”。
(3)在游戏结束时,要显示你赢了多少局,电脑赢了多少局,你们平了多少局3.3 用户动作事件描述:3.1 进行游戏3.1.1 清零:对本次游戏的用户和电脑数据进行清零,即重新开始游戏。
3.3程序中所用类说明(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类的继承关系图如下:自定义类Java 类第四章编码实现概要设计:本游戏程序共由6个java源文件个文本文件组成。
4.1.1 程序用到的类库简介(1)Java的抽象窗口工具集AWT(Abstract Window Toolkit)中包含了很多的类来支持GUI的设计,使得用户和程序可以非常方便地进行交互。
java.awt包中包含Component、Panel、Frame、Applet、Container、Button等许多常用的类。
(2)Swing类库提供一组“轻量级”(全部是Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。
而javax.swing.event则供Swing 组件触发的事件使用。
(3)此外,程序还用到了部分applet、net、io、util 类。
4.1.2 游戏主程序设计主程序PigPanel用到两个类:Die和PairOfDice,均为已设计类。
Die类主要实现出招过程,PairOfDice过程主要返回游戏规定的得分情况,PigPanel使用这两个类,并产生用户交互界面,由用户操作实现出招、得分、等步骤。
4.1.3 主界面PigPanel类1. 成员变量restartJbutton对本次游戏数据进行清零getJButton模拟出招pauseJbutton获得当前得分的点数podPairOfDice声明类以获得分点数2.成员变量infoString储存读取的信息taJTextArea显示文字第五章调试与测试5.1 系统在调度中经常出现的问题(1)数据库的连接容易出错(2)各种数据写入数据库时容易出错(3)在调度中经常出现数词不匹配第六章总结与心得个人分析:程序从最初的黑盒子运行到后来的可视化,经过了一段“设计的思考”:如何把游戏表现出来、如何让用户最快上手、如何完善游戏。
这属于需求分析的范畴。
在设计中不断体会系统的需求分析需求满足的重要,才会做出好的程序。
在程序实现的过程中,遇到的困难也不少。
不提编写的小错误,有所学的知识不够用的尴尬,有用户界面的多媒体实现的难处,不一而足。
于是我通过不断的学习和纠正错误,得到了最后的源程序。
后来是课程设计,并且要做好各个环节的分析,用语言表达出来。
这相当有难度。
也许在此之前已经把程序脱个精光,但是要把各个环节拆开并且详细描述就仿佛要把程序继续脱。
当然最终是“脱”出来了,也许还不尽如人意,但已能大致表达程序设计的思想了。
虽然提交时间推延到了最后,但是我仍然感觉时间相对紧张(思想紧张?),所以难免出现不足之处,有可完善的,也有个人能力之外的。