引发对java学习的兴趣之简单JAVA游戏
这是个很简单的游戏,也许你以前还玩过呢。最近发现自己的电子词典上有一些
小游戏,所以对这方面挺感兴趣的。而且我觉得一些有意义的程序可以引发你对
学习这种语言的兴趣。
游戏规则:共21颗石子,由电脑和人交替拿石子,一次允许拿1到3个石子,谁最
后把石子拿完,谁胜出。
想想看,玩这个游戏的时候,用什么方法可以立于不败之地哦?
TwentyOnePickup.java
import tio.*;
public class TwentyOnePickup {
public static void main(String[] args) {
printInstructions();
int numberOfStones = 21;
boolean playerMovedLast = false;
while (numberOfStones > 0) {
numberOfStones = playerMove(numberOfStones);
playerMovedLast = true;
if (numberOfStones > 0){
numberOfStones = computerMove(numberOfStones);
playerMovedLast = false;
}
}
if (playerMovedLast)
System.out.println("Congratulations, you won.");
else
System.out.println("Better luck next time.");
}
static void printInstructions() {
System.out.println(
"The object of this game is to remove the last"
+ " stone.\n"
+ "There are 21 stones in the pile to start"
+ " with.\n"
+ "You may remove from 1 to 3 stones on each"
+ " move.\n"
+ "Good Luck!");
}
static int playerMove(int numberOfStones) {
int move = getUserMove(numberOfStones);
numberOfStones = numberOfStones - move;
System.out.println("There are " + numberOfStones
+ " stones remaining.");
return numberOfStones;
}
static int computerMove(int numberOfStones) {
int move;
if (numberOfStones <=3) {
move = numberOfStones; /* remove the rest */
}
else {
move = numberOfStones%4;
if (move == 0) move = 1;
}
numberOfStones = numberOfStones - move;
System.out.println("The computer removes " + move
+ " stones leaving " + numberOfStones + ".");
return numberOfStones;
}
static int getUserMove(int numberOfStones) {
System.out.println("Your move - how many stones"
+ " do you wish to remove?");
int move = Console.in.readInt();
while (move > numberOfStones || move < 1 ||
move > 3) {
if (numberOfStones >= 3)
System.out.println("Sorry," +
" you can only remove 1 to 3 stones.");
else
System.out.println("Sorry, you can only "
+ "remove 1 to " + numberOfStones
+ " stones.");
System.out.println("How many stones"
+ " do you wish to remove?");
move = Console.in.readInt();
}
return move;
}
}
小游戏,所以对这方面挺感兴趣的。而且我觉得一些有意义的程序可以引发你对
学习这种语言的兴趣。
游戏规则:共21颗石子,由电脑和人交替拿石子,一次允许拿1到3个石子,谁最
后把石子拿完,谁胜出。
想想看,玩这个游戏的时候,用什么方法可以立于不败之地哦?
TwentyOnePickup.java
import tio.*;
public class TwentyOnePickup {
public static void main(String[] args) {
printInstructions();
int numberOfStones = 21;
boolean playerMovedLast = false;
while (numberOfStones > 0) {
numberOfStones = playerMove(numberOfStones);
playerMovedLast = true;
if (numberOfStones > 0){
numberOfStones = computerMove(numberOfStones);
playerMovedLast = false;
}
}
if (playerMovedLast)
System.out.println("Congratulations, you won.");
else
System.out.println("Better luck next time.");
}
static void printInstructions() {
System.out.println(
"The object of this game is to remove the last"
+ " stone.\n"
+ "There are 21 stones in the pile to start"
+ " with.\n"
+ "You may remove from 1 to 3 stones on each"
+ " move.\n"
+ "Good Luck!");
}
static int playerMove(int numberOfStones) {
int move = getUserMove(numberOfStones);
numberOfStones = numberOfStones - move;
System.out.println("There are " + numberOfStones
+ " stones remaining.");
return numberOfStones;
}
static int computerMove(int numberOfStones) {
int move;
if (numberOfStones <=3) {
move = numberOfStones; /* remove the rest */
}
else {
move = numberOfStones%4;
if (move == 0) move = 1;
}
numberOfStones = numberOfStones - move;
System.out.println("The computer removes " + move
+ " stones leaving " + numberOfStones + ".");
return numberOfStones;
}
static int getUserMove(int numberOfStones) {
System.out.println("Your move - how many stones"
+ " do you wish to remove?");
int move = Console.in.readInt();
while (move > numberOfStones || move < 1 ||
move > 3) {
if (numberOfStones >= 3)
System.out.println("Sorry," +
" you can only remove 1 to 3 stones.");
else
System.out.println("Sorry, you can only "
+ "remove 1 to " + numberOfStones
+ " stones.");
System.out.println("How many stones"
+ " do you wish to remove?");
move = Console.in.readInt();
}
return move;
}
}
air_tuyh
2005-04-27 21:26:39
评论:0
阅读:770
引用:0
