java新手练习:模拟五人游戏框架代码

2023-11-11 12:50

本文主要是介绍java新手练习:模拟五人游戏框架代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 主代码
  • 英雄类
  • 运行效果

游戏背景: 假设需要创建一个模拟五人组队游戏的框架
在这里插入图片描述

主代码

package www.heima;import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;import java.io.*;
import java.time.chrono.HijrahEra;
import java.util.ArrayList;
import java.util.Scanner;
/*
** @aothor cds* @create 2019/3/31 - 9:07
*/public class Game5Persion {private static ArrayList<hero> heroArrayList;public static void main(String[] args) throws IOException {//1.创建一个集合,用来存储五个英雄ArrayList<hero> HeroList = new ArrayList<>();//        2.读文件,把数据加载到内存中loadFriends(HeroList);//        3.判断内容是不是新的boolean isNew = HeroList.isEmpty();System.out.println("判断有没有好友:" + isNew);//        如果是新的,创建五个对象加入集合中if(isNew){//            System.out.println(" 加入五个新队友 ");addHeros(HeroList);}//        如果不是新的,无需创建,直接开始//        4.开始游戏System.out.println("游戏开始");
//                输出英雄阵容,信息showHeros(HeroList);System.out.println("showFightingCapacity(HeroList) = " + showFightingCapacity(HeroList));//        5.游戏结束System.out.println( "游戏结束");//        6.判断是不是原始阵容是不是新的
//                是新的if(isNew) {saveFriends(HeroList);System.out.println("新阵容,加好友");}else {
//                 不是新的System.out.println(" 已经是好友,无需加好友");}
//        7.退出游戏System.out.println("\"退出游戏\" = " + "退出游戏");}//添加新英雄private static void addHeros(ArrayList<hero> HeroList){Scanner sc = new Scanner(System.in);for (int i = 1 ; i < 6 ; i++ ){System.out.println("添加第" + i +"位新英雄:格式为String name, int attckt, String type: " );String line = sc.nextLine();String[] arr = line.split(",");String name = arr[0];int attckt = Integer.parseInt(arr[1]);String type = arr[2];
//            String name = sc.next();
//            int attckt = sc.nextInt();
//            String type = sc.next();HeroList.add(new hero(name,attckt,type));}System.out.println("组队成功 ");}//    展示英雄public static void showHeros(ArrayList<hero> Herolist){int i = 1;for (hero heros:Herolist) {System.out.println("heros = " + heros);}}//    计算总攻击力public static int showFightingCapacity(ArrayList<hero> Herolist) {int num = 0;for (hero heros : Herolist) {num += heros.getAttckt();}return num;}//    将好友信息写入文件public static void saveFriends(ArrayList<hero> heroesList) throws IOException {try (BufferedWriter bw = new BufferedWriter(new FileWriter("friends.txt"))) {for (hero heros : heroesList) {bw.write(heros.toString());bw.newLine();}}}//    定义方法,读取文件,数据加载到集合中static void loadFriends(ArrayList<hero> heroArrayList) throws IOException {
//        Game5Persion.heroArrayList = heroArrayList;try (BufferedReader br = new BufferedReader(new FileReader("friends.txt"))) {String line;while ((line = br.readLine()) != null){String[] arr = line.split(",");String name = arr[0];int atackt = Integer.parseInt(arr[1]);String type = arr[2];heroArrayList.add(new hero(name,atackt,type));}}}}

英雄类

package www.heima;/*** @aothor cds* @create 2019/3/31 - 9:08*/
public class hero {private String name;private int attckt;private String type;public hero() {}public hero(String name, int attckt, String type) {this.name = name;this.attckt = attckt;this.type = type;}public String getName() {return name;}public int getAttckt() {return attckt;}public String getType() {return type;}public void setName(String name) {this.name = name;}public void setAttckt(int attckt) {this.attckt = attckt;}public void setType(String type) {this.type = type;}@Overridepublic String toString() {return  "name = " + name + "," + attckt + ",type = " + type;
//                "name='" + name + '\'' +
//                ", attckt=" + attckt +
//                ", type='" + type ;}
}

运行效果

friends.txt中没有预录信息时:
在这里插入图片描述

friends.txt中有预录信息时:
在这里插入图片描述

这篇关于java新手练习:模拟五人游戏框架代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390168

相关文章

C#使用SendMessage实现进程间通信的示例代码

《C#使用SendMessage实现进程间通信的示例代码》在软件开发中,进程间通信(IPC)是关键技术之一,C#通过调用WindowsAPI的SendMessage函数实现这一功能,本文将通过实例介绍... 目录第一章:SendMessage的底层原理揭秘第二章:构建跨进程通信桥梁2.1 定义通信协议2.2

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

Java利用Spire.XLS for Java设置Excel表格边框

《Java利用Spire.XLSforJava设置Excel表格边框》在日常的业务报表和数据处理中,Excel表格的美观性和可读性至关重要,本文将深入探讨如何利用Spire.XLSforJava库... 目录Spire.XLS for Java 简介与安装Maven 依赖配置手动安装 JAR 包核心API介

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在

Java StringBuilder 实现原理全攻略

《JavaStringBuilder实现原理全攻略》StringBuilder是Java提供的可变字符序列类,位于java.lang包中,专门用于高效处理字符串的拼接和修改操作,本文给大家介绍Ja... 目录一、StringBuilder 基本概述核心特性二、StringBuilder 核心实现2.1 内部

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Java中字符编码问题的解决方法详解

《Java中字符编码问题的解决方法详解》在日常Java开发中,字符编码问题是一个非常常见却又特别容易踩坑的地方,这篇文章就带你一步一步看清楚字符编码的来龙去脉,并结合可运行的代码,看看如何在Java项... 目录前言背景:为什么会出现编码问题常见场景分析控制台输出乱码文件读写乱码数据库存取乱码解决方案统一使

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str