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

  • 格式:doc
  • 大小:281.00 KB
  • 文档页数:6

下载文档原格式

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

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)){

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{