首页 > 后端开发 > 正文

java 四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)

2024-06-14 09:43:38 | 我爱编程网

java 四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

java   四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)

谁会用JAVA编写程序随机产生20—50根火柴

import java.util.Random;

import java.io.*;

public class MatchGame {

private Random rnd = new Random ();

private int total;

private boolean yourTurn;

private boolean youWin;

public MatchGame () {

this.total = this.rnd.nextInt(15) + 20;

}

public MatchGame (boolean youFirst) {

this();

this.yourTurn = yourTurn;

}

public void takeAway (boolean yourTurn) {

int n = 0;

if (yourTurn) {

System.out.print("Your turn! How many matches do you want to take? ");

try {

BufferedReader br = new BufferedReader (new InputStreamReader (System.in));

n = Integer.parseInt (br.readLine());

} catch (IOException ioe) {}

if (n < 1 || n > 3) {

System.out.println("You can only take 1~3 matches for each time.");

takeAway (yourTurn);

return;

}

} else {

n = this.rnd.nextInt(3) + 1;

System.out.println("The computer took " + n + " matches.");

}

this.total -= n;

if (this.total <= 0) {

if (yourTurn)

System.out.println("You win!");

else

System.out.println("You lose!");

} else {

takeAway (!yourTurn);

}

}

public static void main (String args[]) {

new MatchGame ().takeAway (true);

}

}

java   四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)

java 四人玩火柴棍游戏

/**

* 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。输的人要按赢者手中的火柴 数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。现知道玩过四次后,

* 每人恰好输过一次, 而且每人手中都正好有16根火柴。问此四人做游戏前手中各有 多少根火柴? 编程解决此问题

* 我的理解

* 1.4个人最后的火柴数都为16 则4个人其实并没有太多主体的概念。4个人可以是任何人 要辨别4个人可以假设。

* A 是第四轮输的人 B是第三轮输的人 C是第二轮输的人 D是第一轮输的人

* 2.依据以上判断我们可以反过来理解为 4个的初始状态分别为16 16 16 16 每一次都是三个人输,一个人赢,输的人把自己的一半给赢的一方

*

*/

public class Game {

public static void main(String[] a) {

int n1 = 16, n2 = 16, n3 = 16, n4 = 16;

// 第4轮

n1 += (n2 + n3 + n4) / 2;

n2 /= 2;

n3 /= 2;

n4 /= 2;

// 第3轮

n2 += (n1 + n3 + n4) / 2;

n1 /= 2;

n3 /= 2;

n4 /= 2;

// 第2轮我爱编程网

n3 += (n1 + n2 + n4) / 2;

n1 /= 2;

n2 /= 2;

n4 /= 2;

// 第1轮

n4 += (n1 + n2 + n3) / 2;

n1 /= 2;

n2 /= 2;

n3 /= 2;

System.out.println("四人做游戏前手中各有 a:" + n1 + " b:" + n2 + " c:" + n3 + " d:" + n4);

}

}

java   四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)

程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)

我爱编程网(https://www.52biancheng.com)小编还为大家带来程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)的相关内容。

“设计这个程序的原理图是什么”是产生20--50根火柴的原理,还是取胜原理?我理解是取胜原理吧!还有“拿到最后一根为胜”是最后拿到一根,还是最后拿完就行?我理解是最后拿到一根为胜,如果最后把三根或二根一起拿了,不行。

按照我的理解,推导如下:

用反推法:欲拿最后一根,必须留2根在那里,欲留2根,必须上一轮留2+3+1=6给对方,(它拿一,你拿三,它拿二,你拿二,它拿三,你拿一。都是留2根)。再向上一轮,就是6+4=10。

取胜原理:把随机产生的火柴数,分解成:2+4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留2+4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留2根给对方,根据规则,对方只能取一根,留一根给你取胜。

另:取完者胜(含最后一根):最后留4根给对方,不管对方取多少,你都可以一次取完。上一轮同样加4。

取胜原理:把随机产生的火柴数,分解成:4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留4根给对方。

以上就是我爱编程网为大家带来的java 四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业),希望能帮助到大家!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java 四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)”相关推荐
php 如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?
php 如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?

php如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?不管有好多种方案,你必须处理几个问题点:1、每个人的行为标签,标签是否有侧重点,如人员A,拥有3个标签,a,b,c,三个标签的比重是多少,侧重点是那个标签?2、推荐视频的话,视频对应的特点标签要记录,这个是通过标签筛选视频3、为某人推荐了视频后,要将推荐信息记录下来,后续筛选直接去重

2024-10-23 14:04:13
PHP操作时间戳,以及如何拿到各种时间
PHP操作时间戳,以及如何拿到各种时间

PHP操作时间戳,以及如何拿到各种时间在编程过程中,获取时间是一项常见的需求,特别是在使用PHP语言进行开发时。PHP提供了多种方法来获取各种时间,本文将详细介绍其中的两种:date()函数和time()函数。接下来,我们将逐一了解它们的用法。首先,我们通过date()函数获取时间。该函数的格式为date($format,$timestamp),其中$format用于指定时间格式,$t

2024-12-28 15:32:02
我想了解下,学会python一般能找到拿工资多少的工作
我想了解下,学会python一般能找到拿工资多少的工作

我想了解下,学会python一般能找到拿工资多少的工作1、Web开发:python有很多优秀的web开发框架,比如Flask、Django、Bootstar等,可以帮助你快速搭建一个网站。需要一个新功能时,用python只需要几行代码就可以了,受到很多初创公司喜欢。现在像知乎、豆瓣、小米这样大厂,最早网站都是python搭建的,像国外YouTube、Quora、Reddit、Inst

2024-01-14 09:01:15
14,783的的立方根? 输入一个自然数,若为奇数则输出其平方根,否则输出其立方根,对这个进行编程
14,783的的立方根? 输入一个自然数,若为奇数则输出其平方根,否则输出其立方根,对这个进行编程

14,783的的立方根?手算:因为25³=15625&gt;14783&gt;24³=13824所以14783的立方根在24到25之间机算:如图使用python输入14783**(1/3)得到24.54261637383651(箭头1)经验算,成立,误差可接受(箭头2)输入10个数,输出对应的立方根python程序&gt;&gt;&gt; 

2024-01-07 12:43:53
怎么才能拿到phpchina邀请码,有多的给个!!!
怎么才能拿到phpchina邀请码,有多的给个!!!

怎么才能拿到phpchina邀请码,有多的给个!!!首先:进入PHPChian的论坛(可以以游客的身份进去),然后进入PHPChina论坛的公告区,找到发布PHPChina官方群的那个帖子,在那几个群里随便找到一个群,然后进入那个群,进去后直接私聊管理员要邀请码就行了。PHPMySQL创建数据库和表菜鸟问题1,die的作用是你所想的那样,输出里面的内容,并结束程序。2,'creat

2024-12-28 00:36:14
php函数随机数字 求一个生成四位随机数的PHP代码
php函数随机数字 求一个生成四位随机数的PHP代码

求一个生成四位随机数的PHP代码最简单的代码:图片:文字:&lt;?phpecho"四位随机代码是:".mt_rand(999,9999);//随机值得范围是999-9999?&gt;在PHP中mt_rand是随机函数,括号中是随机值范围:从最小值到最大值之间随机变换。扩展资料:1、mt_rand定义和用法:mt_rand(PHP

2024-08-10 15:22:01
python怎么随机产生一个范围内的数
python怎么随机产生一个范围内的数

python怎么随机产生一个范围内的数python怎么随机产生一个范围内的数?python生成指定区间内的一个随机数,所用的模块和方法:推荐:《python教程》random.randrage()的基本语法:导入random模块获取区间内随机数,使用random.randrange()保存文件,查看获取的区间内随机数以上就是小编分享的关于python怎么随机产生一

2024-01-03 22:23:58
java如何开发手机程序(java开发手机app的流程)
java如何开发手机程序(java开发手机app的流程)

java如何开发手机程序(java开发手机app的流程)一。下载并安装java环境jdk1.4以后版本大于1.4都可以。去sun的官网上下载二。下载并安装sun提供的专门开发手机软件的java微型版,即j2me开发工具,又叫WTK全称(WirelessToolkit)目前版本WTK2.5.2去sun的官网下载如果只用写字板,记事本之类的开发工具的话,现在就可以开发了,运行WTK

2024-06-11 05:03:06