DAY2有介紹一些迴圈的運用,今天想分享一個進階練習!
這裡有一個名為「迷宮探險」的Java動態生成數據的遊戲概念:
目錄
1.遊戲概述
2.遊戲機制
3.JAVA實例
1.遊戲概述—「迷宮探險」
/一款基於動態生成數據的冒險遊戲。
/玩家需要探索隨機生成的迷宮,解開謎題、打敗敵人並尋找寶藏。
/每次進入遊戲,迷宮、敵人、寶藏和事件都是隨機生成的。
2.遊戲機制
3.Java 實現範例
「迷宮生成」
import java.util.Random;
public class Maze {
private char[][] map;
private int width;
private int height;
private Random random;
public Maze(int width, int height) {
this.width = width;
this.height = height;
this.map = new char[width][height];
this.random = new Random();
generateMaze();
}
private void generateMaze() {
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
if (random.nextInt(100) < 10) {
map[i][j] = 'T'; // T代表陷阱
} else if (random.nextInt(100) < 5) {
map[i][j] = 'C'; // C代表寶藏
} else {
map[i][j] = '.'; // .代表空地
}
}
}
}
public void printMaze() {
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
public static void main(String[] args) {
Maze maze = new Maze(10, 10);
maze.printMaze();
}
}
「角色和戰鬥」
import java.util.Random;
public class Character {
private String name;
private int health;
private int attack;
private int defense;
private Random random;
public Character(String name) {
this.name = name;
this.random = new Random();
this.health = random.nextInt(50) + 50; // 隨機生成50到100之間的生命值
this.attack = random.nextInt(20) + 10; // 隨機生成10到30之間的攻擊力
this.defense = random.nextInt(10) + 5; // 隨機生成5到15之間的防禦力
}
public void attack(Character enemy) {
int damage = this.attack - enemy.defense;
if (damage > 0) {
enemy.health -= damage;
System.out.println(this.name + " 對 " + enemy.name + " 造成了 " + damage + " 點傷害!");
} else {
System.out.println(this.name + " 的攻擊未能穿透 " + enemy.name + " 的防禦!");
}
}
public boolean isAlive() {
return this.health > 0;
}
public static void main(String[] args) {
Character hero = new Character("勇者");
Character monster = new Character("怪物");
while (hero.isAlive() && monster.isAlive()) {
hero.attack(monster);
if (monster.isAlive()) {
monster.attack(hero);
}
}
if (hero.isAlive()) {
System.out.println("勇者獲勝!");
} else {
System.out.println("怪物獲勝!");
}
}
}
「寶藏和道具」
import java.util.Random;
public class Treasure {
private String name;
private int value;
public Treasure(String name, int value) {
this.name = name;
this.value = value;
}
public void use(Character character) {
character.health += value;
System.out.println(character.name + " 使用了 " + name + ",恢復了 " + value + " 點生命值!");
}
public static void main(String[] args) {
Random random = new Random();
Treasure potion = new Treasure("治療藥水", random.nextInt(20) + 10);
Character hero = new Character("勇者");
System.out.println("勇者的初始生命值: " + hero.health);
potion.use(hero);
System.out.println("使用後勇者的生命值: " + hero.health);
}
}
這樣就簡單的設計了迴圈遊戲,往後幾天也會依照語法實驗及創新相關的遊戲及制定規則~