`
zsnlovewl
  • 浏览: 176500 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

enum版本石头剪刀布

    博客分类:
  • JAVA
 
阅读更多
package test;

public enum Outcome{
WIN,LOSE,DRAW
}
--------------------------------------
package test;

import java.util.Random;

import static test.Outcome.*;

interface Item {
	Outcome compete(Item it);

	Outcome eval(Paper p);

	Outcome eval(Scissors s);

	Outcome eval(Rock r);
}

class Paper implements Item {

	@Override
	public Outcome compete(Item it) {
		// TODO Auto-generated method stub
		return it.eval(this);
	}

	@Override
	public Outcome eval(Paper p) {
		// TODO Auto-generated method stub
		return DRAW;
	}

	@Override
	public Outcome eval(Scissors s) {
		// TODO Auto-generated method stub
		return WIN;
	}

	@Override
	public Outcome eval(Rock r) {
		// TODO Auto-generated method stub
		return LOSE;
	}

	public String toString() {
		return "Paper";

	}

}

class Scissors implements Item {

	@Override
	public Outcome compete(Item it) {
		// TODO Auto-generated method stub
		return it.eval(this);
	}

	@Override
	public Outcome eval(Paper p) {
		// TODO Auto-generated method stub
		return LOSE;
	}

	@Override
	public Outcome eval(Scissors s) {
		// TODO Auto-generated method stub
		return DRAW;
	}

	@Override
	public Outcome eval(Rock r) {
		// TODO Auto-generated method stub
		return WIN;
	}

	public String toString() {
		return "Scissors";

	}

}

class Rock implements Item {

	@Override
	public Outcome compete(Item it) {
		// TODO Auto-generated method stub
		return it.eval(this);
	}

	@Override
	public Outcome eval(Paper p) {
		// TODO Auto-generated method stub
		return WIN;
	}

	@Override
	public Outcome eval(Scissors s) {
		// TODO Auto-generated method stub
		return LOSE;
	}

	@Override
	public Outcome eval(Rock r) {
		// TODO Auto-generated method stub
		return DRAW;
	}

	public String toString() {
		return "Rock";

	}

}

public class RoShamBo1 {
	static final int SIZE = 20;
	private static Random rand = new Random(47);

	public static Item newItem() {
		switch (rand.nextInt(3)) {
		default:
		case 0:
			return new Scissors();
		case 1:
			return new Paper();
		case 2:
			return new Rock();
		}

	}

	public static void match(Item a, Item b) {
		System.out.println(a + " VS " + b + ":" + a.compete(b));
	}

	public static void main(String[] args) {
		for (int i = 0; i < SIZE; i++)
			match(newItem(), newItem());
	}
}

 

分享到:
评论

相关推荐

    制作的石头剪刀布游戏

    【石头剪刀布游戏概述】 石头剪刀布游戏,又称为“石头、剪刀、布”,是一种简单且普遍的决策游戏,通常用于解决选择困难或娱乐。在游戏中,玩家同时做出石头(拳头)、剪刀(剪切手势)或布(张开的手掌)这三个...

    C源码——石头剪刀布(适合初学者观摩)

    对于初学者来说,通过学习简单的C语言项目,如"石头剪刀布"游戏,可以深入理解编程的基本概念。本文将详细解析这个经典的小游戏,帮助你更好地掌握C语言编程技巧。 "石头剪刀布"游戏,又称为"石头、剪刀、布"或...

    C++石头剪刀布游戏

    《C++实现石头剪刀布游戏》 在编程领域,石头剪刀布游戏是一个常见的学习项目,它适合初学者理解基本的控制流程、输入输出以及条件判断等概念。本项目以C++语言实现,旨在帮助学生熟悉编程基础,尤其是C++语法。 1...

    C#石头剪刀布.zip

    在本项目"C#石头剪刀布.zip"中,我们探讨的是使用C#编程语言实现一个经典的"石头-剪刀-布"游戏。这个游戏是两个人之间的简单比试,每人都可以选择石头、剪刀或布,规则是石头砸剪刀,剪刀剪布,布盖石头,三者相互...

    c#石头剪刀布游戏

    3. **枚举(Enum)**:为了表示石头、剪刀、布,我们可以使用枚举类型。枚举定义了一系列的命名常量,便于代码阅读和理解。如下所示: ```csharp enum Choice { Rock, Paper, Scissors } ``` 4. **随机数生成器...

    石头剪刀布(C++课程设计)

    【石头剪刀布游戏】是经典的二人博弈游戏,通常用于教学和娱乐,是学习编程时常用的练习项目。在这个C++课程设计中,开发者提供了一份完整的源代码实现,以及详细的Word文档,帮助学习者理解游戏逻辑和编程技巧。 ...

    最新swift案例教程-石头剪刀布加强版

    在本教程中,我们将深入探讨如何使用Swift 3在Xcode 7.3.1上构建一个增强版的“石头剪刀布”游戏,其中包括胜率统计功能。这个项目不仅适合初学者熟悉Swift编程语言,也对有经验的开发者提供了一个有趣的实践案例。 ...

    Java剪刀石头布小游戏源码整理

    3. **枚举类型(Enum)**:Java中的枚举用于定义一组固定的常量,非常适合表示游戏中的石头、剪刀、布这三个选项。通过枚举,我们可以确保只有这三种合法选择,并且方便比较它们之间的胜负关系。 4. **随机数生成**...

    C++程序设计-石头剪刀布.doc

    C++程序设计-石头剪刀布 本篇课程设计报告的主要内容是设计一个小游戏石头剪刀布,使用C++语言实现。下面是该游戏的设计过程、关键技术和源代码。 一、设计课题 本次设计的课题是设计一个小游戏石头剪刀布,使用...

    《石头剪刀布》运行程序

    《石头剪刀布》是一款经典的休闲游戏,通常用于娱乐或决定决策。在这个程序中,我们看到的是使用Unity引擎开发的一款游戏。Unity是一个跨平台的游戏开发工具,它支持2D和3D图形,广泛应用于游戏开发、模拟器以及可视...

    石头剪刀布c语言.zip

    本项目“石头剪刀布c语言.zip”显然是一个使用C语言实现的经典游戏——“石头、剪刀、布”的源代码示例。这个小游戏通常用于教学目的,帮助初学者理解C语言的基本语法、控制结构以及用户输入输出处理。 首先,我们...

    石头剪刀布概率源码.zip

    "石头剪刀布"游戏,也称为“罗克、纸、 scissors”,是一个简单但经典的互动游戏,适合用来演示基本的逻辑判断和随机数生成。这个“石头剪刀布概率源码.zip”文件包含了用Java语言编写的实现这个游戏的源代码,它...

    剪刀石头布游戏

    "剪刀石头布游戏"就是一个很好的例子,它利用了基本的逻辑和条件判断来实现。在这个游戏中,玩家与计算机进行互动,双方分别出“剪刀”、“石头”或“布”,然后根据规则决定胜负。下面我们将详细探讨如何用Java编写...

    用VC++6.0实现石头剪刀布游戏的程序

    geek_monkey于2015年3月3日修改了bug(输入字符非石头剪刀布都算是玩家赢) 编译环境为VC++6.0 增加“上帝模式”和数据统计,纯属娱乐。 我是C语言初学者,轻喷 代码如下: #include #include #include #include ...

    剪刀石头布游戏源码(C#版)

    剪刀石头布游戏,又称“猜拳”或“石头、剪刀、布”,是一种常见的娱乐游戏,通过手势来决定胜负。在这个C#版本的游戏源码中,我们可以学习到如何使用面向对象编程的思想来实现这个游戏。下面我们将深入探讨这个游戏...

    C# winform 窗体应用程序实现石头剪刀布

    在本文中,我们将深入探讨如何使用C# Winform来创建一个经典的“石头、剪刀、布”游戏。C# Winform是一种强大的工具,用于构建基于Windows的桌面应用程序,它允许开发者设计用户界面并处理用户交互。 首先,让我们...

    iphone剪刀石头布

    在代码层面,我们可以使用Swift的枚举(Enum)来定义三种可能的选项:剪刀、石头、布,并为每种选择设定胜负关系。例如,剪刀赢布,布赢石头,石头赢剪刀。接着,通过Swift的randomElement()函数,让电脑随机选择一...

    基于C++实现石头剪刀布游戏.zip

    2. **枚举类型(enum)**:为了表示石头、剪刀、布这三种选择,可以使用枚举类型。枚举可以为一组常量提供有意义的名字,例如`enum Choice { ROCK, PAPER, SCISSORS };`。 3. **随机数生成**:C++的`&lt;random&gt;`库...

    剪刀石头布

    8. **基本数据类型和常量**:在 `Referee` 类中,使用了整型变量 `a` 和 `b` 表示出拳,用0、1和2分别代表剪刀、石头和布,这是一种常见的枚举方式,但在这里没有使用Java的枚举类型(enum)。 9. **字符串比较**:...

    剪刀石头布finger-guessing game

    剪刀石头布游戏,也被称为“手指猜拳”或“石头剪刀布”,是一种常见的两人博弈游戏,简单有趣,常用于决策或是娱乐。在编程领域,实现这样的游戏是学习基础编程概念和逻辑控制的好方式,尤其对于C++初学者而言。 ...

Global site tag (gtag.js) - Google Analytics