Java猜拳小游戏程序设计实验报告
- 格式:doc
- 大小:281.00 KB
- 文档页数:6
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实验。
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实现猜拳⼩游戏的具体代码,供⼤家参考,具体内容如下实现下图要求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.剪⼑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猜拳小游戏课程设计一、课程目标知识目标: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⾯向对象编程实现--猜拳⼩游戏⽬标⽬标:玩家在控制台和电脑猜拳,电脑每次都会随机出⽯头/剪⼑/布,直到玩家选择退出游戏。
记录并显⽰玩家和电脑猜拳的成绩。
设计思路分析电脑的随机猜拳可以使⽤随机数⽣成,这⾥规定 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编写一个人机对战的猜拳小游戏。
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
有基本的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程序设计实验报告班级: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语言解决实际问题的能力,提高学生的编程实践能力。
同时,通过小组合作、讨论的方式,培养学生的团队合作意识和解决问题的能力,激发学生对计算机科学的兴趣。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言基础:介绍Java语言的基本语法、数据类型、运算符、流程控制语句等。
2.面向对象编程:讲解类的定义、属性和方法,以及封装、继承、多态等面向对象的基本概念。
3.常用数据结构:学习数组、链表、栈、队列等常用的数据结构,并了解其在Java中的应用。
4.猜拳小游戏项目开发:以猜拳小游戏为例,让学生动手编写游戏程序,巩固所学知识,提高实际编程能力。
三、教学方法本课程采用讲授法、实践教学法和小组讨论法相结合的教学方法。
1.讲授法:用于讲解Java语言的基本语法、面向对象编程思想和数据结构等理论知识。
2.实践教学法:通过让学生动手编写猜拳小游戏,提高学生的实际编程能力。
3.小组讨论法:在课程过程中,学生进行小组合作、讨论,培养学生的团队合作意识和解决问题的能力。
四、教学资源本课程所需教学资源包括:1.教材:《Java程序设计》等相关教材,用于引导学生学习Java语言的基本语法和编程技巧。
2.多媒体资料:提供在线编程环境,让学生随时随地进行代码编写和调试。
3.实验设备:为学生提供计算机实验室,方便学生进行实践操作和小组讨论。
4.辅助工具:使用投影仪、计算机等辅助教学工具,提高课堂教学效果。
五、教学评估本课程的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。
评估内容包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后编程作业,评估学生的编程能力和对知识的理解程度。
人机猜拳游戏课程设计 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编写一个人机对战的猜拳小游戏。
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
有简单的操作界面。
实验内容:1、问题分析过程:(1)首先分析猜拳游戏本身的玩法:人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
(2)用面向对象的思想来分析:在游戏过程中有几个对象组成人电脑游戏规则抽象出3个类:Person、Computer、GamePerson类有哪些属性和行为呢?属性:名字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(" ---------------欢迎进入游戏世界--------------\n");System.out.println("\t\t******************************");System.out.println("\t\t** ^_^ 猜拳,Start ^_^ **");System.out.println("\t\t*****************************");System.out.println("\n\n出拳规则: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)){System.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 " + );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、实验心得体会:从本次课程设计的完成中,我发现我有很多不足的地方,最突出的是所掌握的知识太少,学到的知识应用不到实践中。
后来通过看书查找相关资料,完成课程设计任务。
程序设计语言是程序设计的工具,如果想有效的设计程序,正确的应用程序表达算法,必须准确应用程序设计语言;学习程序设计,必须要多读程序,并试着自己编写程序,多上机调试程序代码。