游戏人数:1人
手中握有骰子的人叫做掷骰子的人(Shooter)。如果他掷出7点或者11点,他就赢了。如果他掷出2点,3点,或者12点,他就输了。如果他掷出4点,5点,6点,8点,9点,或者10点,庄家会在某个掷出的点数上放置一个大的“ON”按钮。掷骰子的人继续掷骰子,直
到他掷出按钮所指示的点数, 这时他就赢了,否则如果在这之前掷出了7点,则他就输。
发现这个游戏挺有趣的,不断的掷骰子,不断的概率决定你获胜或失利。
第一步 先确定类:
这里简单考虑,只考虑二个类:骰子类,Craps游戏类:
class Die () {
//骰子类
}
public class Craps() {
//Craps游戏类
}
第二步 确定类的字段和方法
骰子类和昨天的那个Beelte游戏中的一样,不写了。
Craps类的字段有:按键掷骰子(INPUT)、两个骰子(die1,die2)、游戏状态如赢、败、平局(status)、点数(sumOfTopFace)、按钮所指的数(point)。方法有:构造方法、玩游戏(play())。
Die |
Craps |
topFace:int |
INPUT:java.util.Scanner
die1:Die
die2:Die
status:int
sumOfTopFace:int
point:int
|
Die()
getTopFace():int
roll():int
|
Craps();
play():void
main(String[]):void
|
第三步:Craps类的实现(Die类的实现同Beetle游戏中一样)。
public class Craps {
public static final java.util.Scanner INPUT
= new java.util.Scanner(System.in);
private Die die1,die2;
private int point,sumOfTopFace,status;
private final int WON,LOST,GOING; //定义胜、负、平三种状态
public Craps() {
die 1 = new Die();
die 2 = new Die();
WON = 1;
LOST = 2;
GOING = 3;
point = 0;
sumOfTopFace = 0;
status = GOING; //初始为平局
}
public void play() {
INPUT.nextLine();
die1.roll();
INPUT.nextLine();
die2.roll();
sumOfTopFace = die1.getTopFace() + die2.getTopFace(); System.out.println("你掷到" + sumOfTopFace + "点");
switch(sumOfTopFace) {
case 7:
case 11:
status = WON;
break;
case 2:
case 3:
case 12:
status = LOST;
break;
default:
status = GOING;
point = sumOfTopFace; //就在这个地方放个大的ON按钮。 System.out.println("我的得分是:" + point);
break;
}
while(status ==GOING) //当是平局时,采取下面行动 System.out.println("现在是平局,如果你再掷到刚才那个点数,你就获胜,但当你掷出7就你就输!");
INPUT.nextLine();
die1.roll();
INPUT.nextLIne();
die2.roll();
sumOfTopFace = die1.getTopFace() + die2.getTopFace(); System.out.println("再次掷到" + sumOfTopFace + "点");
if(sumOfTopFace ==point) {
status = WON;
} else { if(sumOfTopFace == 7) {
status = LOST;
break;
}
}
if(status == WON) {
System.out.println("恭喜,你赢了!");
} else {
System.out.println("很不幸,你输了!");
}
}
public static void main(String[] args) {
System.out.println("\n欢迎玩Craps游戏!按键开始掷骰子(按二次算一局)");
Craps game = new Craps();
game.play();
}
}
运行结果如图:
分享到:
相关推荐
Craps - 一个流行的骰子游戏
void InitRandomSeed(); int RandomInteger(int low,int high); double RandomReal(double low,double high); bool RandomChance(double p); void setRandomSeed(int seed);
Craps.java(这是控制台游戏的 Java 程序。) Craps GUI Classes(此文件夹包含用于 GUI 游戏的 Java 程序类的 Java 文件。): Game.java(这是主类。) Dice.java(这是显示每个掷骰子结果的类。) Craps.cpp...
Craps賭博遊戲 約瑟夫問題(Josephus Problem) 排列組合 格雷碼(Gray Code) 產生可能的集合 m元素集合的n個元素子集 數字拆解 得分排行 選擇、插入、氣泡排序 Shell 排序法 - 改良的插入排序 Shaker...
java开源游戏源码
Java和C语言实现各种经典算法(含代码图例) 老掉牙 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 字串核对 双色、三色河内塔 背包...
Java运行时环境(JRE)的安装,更高级的版本8。 Conexão或Internet上的jogar com超出了使用或执行应用程序的权限。 2个必要条件:NetGamesFileOffline.jar + servidor.jar做NetGames。 2.安装执行 不定期安装...
Craps赌博游戏 约瑟夫问题(Josephus Problem) 集合问题 排列组合 格雷码(Gray Code) 产生可能的集合 m元素集合的n个元素子集 数字拆解 排序 得分排行 选择、插入、气泡排序 Shell ...
• Craps赌博游戏 • 约瑟夫问题(Josephus Problem) 集合问题 • 排列组合 • 格雷码(Gray Code) • 产生可能的集合 • m元素集合的n个元素子集 • 数字拆解 排序 • 得分排行 • 选择、插入、气泡...
Craps賭博遊戲 約瑟夫問題(Josephus Problem) 集合問題 排列組合 格雷碼(Gray Code) 產生可能的集合 m元素集合的n個元素子集 數字拆解 排序 得分排行 選擇、插入、氣泡排序 Shell 排序法 - 改良...
Craps赌博游戏 约瑟夫问题(Josephus Problem) 集合问题 排列组合 格雷码(Gray Code) 产生可能的集合 m元素集合的n个元素子集 数字拆解 排序 得分排行 选择、插入、气泡排序 Shell 排序法 - 改良...
资源来自pypi官网。 资源全名:craps-1.1.2.tar.gz
python库。 资源全名:craps-pkg-sharnajh-0.1.12.tar.gz
Craps赌博游戏 约瑟夫问题(Josephus Problem) 集合问题 排列组合 格雷码(Gray Code) 产生可能的集合 m元素集合的n个元素子集 数字拆解 排序 得分排行 选择、插入、气泡排序 Shell 排序法 - 改良的...
资源来自pypi官网。 资源全名:craps-1.0.1-py3-none-any.whl
Projeto1_craps
python库,解压后可用。 资源全名:craps-1.1.7-py2.py3-none-any.whl
资源来自pypi官网。 资源全名:craps-1.1.7-py2.py3-none-any.whl
Craps賭博遊戲 約瑟夫問題(Josephus Problem) 集合問題 排列組合 格雷碼(Gray Code) 產生可能的集合 m元素集合的n個元素子集 數字拆解 排序 得分排行 選擇、插入、氣泡排序 Shell 排序法 - 改良...