《电玩游戏Java实战DIY》简介
第1版 (2009年3月1日); Ian Cinnamon,是一位年仅15岁的天才程序员,他现在已经有着7年的编程经验,并且获得Java和C++认证。他日前还是洛杉矶Harvard Westlake高中的高二学生。
快速熟悉Java
项目1 复示器:System.out.println
输 入 一 条 义 本 消 息 ,运 行 游 戏 程 序 后 ,计 算 机 重 复 输 出 该 文 本 内 容 。
项目2 猜猜密码:输入框JOptionPane.showInputDialog和字符串equals
通 过 程 序 让 计 算 机 自 动 检 验 猜 测 的 密 码 正 确 性 。 该 游 戏 需 要 两 个 玩 家 ,其 一 人 设 置 好 密 码 ,另 外 一 人 再 输 入 猜 测 的 密 码 。 计 算 机 判 断 第 二 个 人 猜 测 的 密 码 是 否 正 确 ,并 在 控 制 台 打 印 出 结 果 。
项目3 计算器:Math.round随机数和Thread.sleep
程 序 中 我 们 将 使 用 到 算 术 表 达 式 ,开 发 计 算 器 游 戏 。
玩 家 必 须 在 计 算 机 倒 计 时 3 秒 后 显 示 正 确 答 案 之 前 计 算 出 结 果 。你 能 够 打 败 计 算 机 吗 ? 那 就 来 试 试 吧 !
项目4 计算器游戏加强版:加上循环结构
本 项 目 中 ,我 们 来 对 项 目 3 屮 的 计 算 器 游 戏 进 行 完 善 。玩 家 可 以 选 择 是 否 继 续 玩 游 戏 ,或 者 通 过 增 加 游 戏 难 度 系 数 和 减 少 倒 计 时 吋 间 来 提 高 游 戏 的 难 度 。
项目5 解密:IO流File操作
本 项 目 是 项 目 2 中 猜 密 码 游 戏 的 改 进 版 本 。不 同 的 是 在 本 游 戏 中 玩 家 可 以 通 过 弹 出 的 文 本 输 人 对 话 框 自 己 设 置 密 码 ,而 不 是 在 程 序 内 部 直 接 设 置 好 密 码 。 而 且 ,已 经 设 置 的 密 码 可 以 永 久 保 存 ,因 为 游 戏 会 将 该 密 码 存 储 到 文 件 中 。public static void main(String[] args) throws Exception { String input; // 获 取 输 入 的 选 项 值 input = JOptionPane.showInputDialog("l to set password,\n" + "2 to unlock the message"); // 创 建 密 码 文 件 File file = new File("password.psswrd"); // 设 置 密 码 if (input.equals("1")) { // 设 置 密 码 // 获 取 输 人 的 新 密 码 String p = JOptionPane.showInputDialog("Enter the password to set"); // 创 建 一 个 文 件 输 出 流 FileOutputStream outStream = new FileOutputStream(file); //将 格 式 化 对 象 打 印 到 一 个 文 本 输 出 流 PrintWriter out = new PrintWriter(outStream); //将 重 设 的 密 码 写 入 password.psswrd out.println(p); //刷 新 流 ,关 闭 流 out.flush(); out.close(); outStream.close(); } else { //获 取 正 确 的 密 码 FileReader fr = new FileReader(file); BufferedReader buffer = new BufferedReader(fr); //password 从 存 储 文 件 屮 读 取 密 码 String password = buffer.readLine(); //获 取 用 户 试 阁 破 解 的 密 码 String userPass; userPass = JOptionPane.showInputDialog(" Enter your guess.. "); //判 断 输 人 的 密 码 正 确 性 if (password.equals(userPass)) { //密码正确 JOptionPane.showMessageDialog(null, "CORRECT! ! ! !"); } else { //密码错误 JOptionPane.showMessageDialog(null, "WRONG = ("); } } }
项目6 游戏档案库:数组和循环结构
为 所 有 已 经 开 发 出 的 游 戏 创 建 一 个 档 案 库 。
项目7 虚拟游戏档案库的编辑:ArrayList
本 项 目 将 对 虚 拟 游 戏 档 案 库 进 行 扩 展 。在 上 一 个 项 目 屮 ,档 案 库 中 的 游 戏 名 称 是 直 接 写 入 程 序 中 的 ,现 在 我 们 通 过 程 序 让 用 户 自 己 加 入 游 戏 名 称 。
项目8 猜数字
计 笕 机 先 自 动 从 0 到 100 间 生 成 一 个 随 机 数 ,然 后 玩 家 必 须 来 猜 这 个 随 机 数 是 多 少 。每 次 猜 后 ,计 算 机 进 行 提 示 ,猜 的 数 字 与 随 机 数 相 比 是 太 大 还 是 太 小 。
开 发 该 款 游 戏 时 ,需 要 用 到 本 章 学 习 到 的 几 乎 所 有 编 译 块 :类 ,声 明 ,变 量 ,文 本 输 入 对 话 框 ,循 环 语 句 ,注 释 ,输 出 对 话 框 ,类 型 转 换 ,以 及 条 件 判 断 语 句 。public static void main(String[] args) { //该 变 试 用 于 记 录 用 户 猜 的 数 字 int guess = -1; // 用于用户猜数字的次数 int count = 0; //在 0 到 1 0 0 内 生 成 一个 随机数 int num = (int) (Math.random() * 100); //循环猜数字 do { guess = Integer.parseInt(JOptionPane.showInputDialog("Guess a number between 0 amd 100 !")); if (guess > num) { JOptionPane.showMessageDialog(null, "Too high"); } if (guess < num) { JOptionPane.showMessageDialog(null, "Too low"); } count++; //一 直 循 环 猜 数 字 ,直到猜对为止 } while (num != guess); JOptionPane.showMessageDialog(null, " You guessed the number - " + num + " - in " + count + " guess(es)!!!"); }