java基础之面向对象——人机猜拳实例
来源:互联网 发布:mac怎么移动文件 编辑:程序博客网 时间:2024/06/15 19:32
题目详情可百度
一、计算机类
package com.neusoft;/** * 计算机类 * */public class Computer { String nickName;// 计算机角色昵称 int score;// 计算机成绩 String type;// 出拳类型 /** * 计算机出拳的方法 */ public int showFist() { // 定义(1--3)随机数 int choice = (int) (Math.random() * 3 + 1); // 根据随机数判断计算机出拳的结果 switch (choice) { case 1: type = "剪刀"; break; case 2: type = "石头"; break; case 3: type = "布"; break; } System.out.println("计算机出拳:" + type); return choice; }}
二、玩家类
package com.neusoft;import java.util.Scanner;/** * 玩家类 * * */public class Person { String nickName;// 玩家昵称 int score;// 玩家成绩 String type;// 出拳类型 Scanner input = new Scanner(System.in); public int showFirst() { int choice = 0; do { System.out.println("请出拳:1、剪刀\t2、石头\t3、布"); choice = input.nextInt(); // 判断玩家出拳的结果 switch (choice) { case 1: type = "剪刀"; break; case 2: type = "石头"; break; case 3: type = "布"; break; default: System.out.println("选择有误,请重新输入:"); } } while (type == null); System.out.println("你出拳:" + type); return choice; }}
三、游戏类
package com.neusoft;import java.util.Scanner;/** * 游戏类 * */public class Game { Computer cm = null;// 计算机角色 Person pn = null;// 玩家角色 int count;// 对战的局数 Scanner input = new Scanner(System.in); /** * 游戏的初始化 */ private void init() { cm = new Computer(); pn = new Person(); count = 0; } /** * 游戏的菜单 */ private void menu() { System.out.println("出拳规则:1、剪刀\t2、石头\t3、布"); System.out.println("选择对战角色:1、曹操\t2、刘备\t3、孙权"); System.out.print("请选择:"); } public void startGame() { // 调用游戏初始化方法 init(); do { // 调用游戏菜单方法 menu(); // 调用玩家选择对战角色的方法 choiceName(); } while (cm.nickName == null); System.out.println("请输入昵称:"); pn.nickName = input.next(); System.out.println("你选择了与" + cm.nickName + "对战"); System.out.println("游戏开始吗?(y/n)"); String answer = input.next(); while ("y".equals(answer)) { // 调用游戏对战判断输赢 isWin(); // 统计对战的局数 count++; System.out.println("是否继续?(y/n)"); answer = input.next(); } // 游戏结束显示总成绩 showResult(); } /** * 玩家选择对战角色 */ private void choiceName() { int choice = input.nextInt(); switch (choice) { case 1: cm.nickName = "曹操"; break; case 2: cm.nickName = "刘备"; break; case 3: cm.nickName = "孙权"; break; } } /** * 判断游戏当局的输赢 */ private void isWin() { // 调用玩家出拳的方法 int pFirst = pn.showFirst(); // 调用计算机的出拳方法 int cFirst = cm.showFist(); // 根据角色出拳的返回值判断当局的输赢,并计算角色的成绩 if (pFirst == 1 && cFirst == 3 || pFirst == 2 && cFirst == 1 || pFirst == 3 && cFirst == 2) { System.out.println("你好腻害!"); pn.score += 1; } else if (pFirst == 1 && cFirst == 2 || pFirst == 2 && cFirst == 3 || pFirst == 3 && cFirst == 1) { System.out.println("猪,你输了!~"); cm.score += 1; } else { System.out.println("不公平,竟然平局,再来!~"); } } /** * 显示最终游戏结果 */ private void showResult() { // 显示对战角色 if (pn.nickName == null || pn.nickName == "") { pn.nickName = "匿名"; } System.out.println(cm.nickName + " VS " + pn.nickName); // 显示对战的局数 System.out.println("对战次数:" + count); // 显示成绩 if (pn.score > cm.score) { System.out.println("你太棒了!"); } else if (pn.score == cm.score) { System.out.println("平局"); } else { System.out.println("猪头,你输了!~"); } }}
四、游戏测试类
package com.neusoft;/* * 游戏测试类 */public class GameTest { public static void main(String[] args) { Game g = new Game(); g.startGame(); }}
0 0
- java基础之面向对象——人机猜拳实例
- 人机猜拳之Java面向对象小游戏
- java小程序——人机猜拳
- 人机互动版猜拳游戏(面向对象方法实现)
- 人机猜拳小游戏(面向对象的方法)
- java练习--人机猜拳
- java小游戏-人机猜拳
- Java人机猜拳大战
- Android程序——人机猜拳
- Java 第十三章 人机猜拳
- java基础之猜拳游戏
- java基础-面向对象三大特性之继承实例
- Logic Java阶段学习总结--猜拳游戏(面向对象实例)
- 人机猜拳
- 人机猜拳
- 人机猜拳
- 人机猜拳
- 人机猜拳
- SQL联合索引 与 单一列的索引
- 会话技术
- Xuitls的断点续传
- panic: reflect: reflect.Value.SetUint using value obtained using unexported field(go语言)
- Android 部分内容设置颜色、字体、超链接、图片
- java基础之面向对象——人机猜拳实例
- Eclipse 中debug 技巧总结
- poj3620Avoid The Lakes
- Hdu 1028 Ignatius and the Princess III
- Codeforces 116A Tram
- MySQL表查询优化(一):妙用explain中的type指标
- PE文件是什么?
- 安卓webView实现长按二维码的自动识别功能
- 类声明和定义中的共有和私有类型的一些注意事项。