首页 > 后端开发 > 正文

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作业)

“设计这个程序的原理图是什么”是产生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作业),希望能帮助到大家!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java 四人玩火柴棍游戏 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)”相关推荐
python怎么随机产生一个范围内的数
python怎么随机产生一个范围内的数

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

2024-01-03 22:23:58
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
我想了解下,学会python一般能找到拿工资多少的工作
我想了解下,学会python一般能找到拿工资多少的工作

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

2024-01-14 09:01:15
python自动生成插画-python怎么根据数据生成图像
python自动生成插画-python怎么根据数据生成图像

python自动生成插画-python怎么根据数据生成图像如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:fromPILimportImage,ImageDraw,ImageFont#创建一个空白的画布,大小为800x

2023-12-13 15:46:29
JAVA 乱码 根本原因是什么
JAVA 乱码 根本原因是什么

JAVA乱码根本原因是什么右键点击乱码文件,选preferenses,看看resource里的编码是不是正确,如果不是utf-8就改成utf-8,如果是utf-8的话你改成别的编码试试看看,然后把正常状态下的内容复制出来,在把文件改成utf-8后把文件复制进去Win7系统打开java文件出错显示乱码如何解决很多程序人员都会使用java程序写文件,只有成功运行java程序文件显示正确结果

2024-06-01 18:40:43
用java的for循环计算1+1/2!+1/3!+1/4!+···的前20项和 java实现计算器的程序
用java的for循环计算1+1/2!+1/3!+1/4!+···的前20项和 java实现计算器的程序

Java中计算器的程序importjava.awt.*;importjava.awt.event.*;importjava.lang.*;importjavax.swing.*;publicclassCounterextendsFrame{//声明三个面板的布局GridLayoutgl1,gl2,gl3;Panelp0,p1,p2,p3;JTextFiel

2024-03-25 12:38:59
计算机二级JAVA第一章辅导:Java程序编写及运行的过程 java怎样打开?
计算机二级JAVA第一章辅导:Java程序编写及运行的过程 java怎样打开?

java程序的运行过程?Java程序的运行过程步骤如下:1、需要使用Java编程语言编写程序,使用Java编译器(例如javac)将Java源代码(.java文件)编译成字节码(.class文件)。2、使用Java虚拟机(JVM)来执行编译后的字节码,JVM会为程序分配内存,包括堆内存(用于存储对象)和栈内存(用于存储局部变量和方法调用)。3、JVM的垃圾回收器会自动回收不再

2024-03-26 13:16:32
机器人编程ev3与python哪个更适合青少年
机器人编程ev3与python哪个更适合青少年

小码王少儿编程教育:小孩子也能轻松入门的编程语言编程语言是未来的趋势,而小孩子也能轻松入门。本文将为大家介绍几种适合小孩子学习的编程语言,让孩子们在有趣的过程中掌握编程思维。🐱Scratch编程语言Scratch编程语言由麻省理工出品,6岁孩子就能照着例子完整地摆出一个能运行的程序。无需认识英文或汉字,通过涂鸦、录音、找图片等有趣过程,潜移默化地掌握编程思维。🐍Python编程

2024-02-18 13:01:15