Java猜拳小游戏程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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(" ---------------欢迎进入游戏世界--------------\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)){