引发对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;
}
}

air_tuyh   2005-04-27 21:26:39 评论:0   阅读:770   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2008 powered by YuLog