博弈论学习(二)

巴什博弈的人机互动练习:
假设有n个物品,你可以选择先手或者后手,由系统随机生成物品的数量(1-100),你一次最少可以取1个,最多3个。先取完者胜!
对于这个问题先分析,如果按照题目要求来,(先选先后手,在生成物品数量),则你一定会输。按照题目来,可以使电脑制定对自己最有利的方案.
参考代码:

import java.util.Random;
import java.util.Scanner;
public class 博弈论 {
public static void main(String[] args) {
	Scanner chae=new Scanner(System.in);
	System.out.println("比赛规则:选择先手或者后手,系统随机生成糖果数,你每次可以取走1到3个,先取完者胜!");
	System.out.println("请选择先手或后手:\n输入“1”,先手;输入“2”,后手");
	int shuru=chae.nextInt();
	Random numb=new Random(50);
		int num=1+numb.nextInt(100);
		if(shuru==1){ num=num-num%4;
		System.out.println("糖果数为:"+num+"个");
		while(num>0){
			int x=chae.nextInt();
			if(x>=1&&x<=3){	
				System.out.println("你取走了"+x+"个");
				if(num==0) System.out.println("你胜利了!");
				int k=4-x;
				System.out.println("电脑取走了"+k+"个");
				if((num-k-x)==0) {System.out.println("电脑胜利了!");
				break;}
				 num=num-4;
				System.out.println("还剩余"+num+"个");}
			else 
				System.out.println("你输的数字不符合规则请重新输入!");
				continue;
		}}
		else if(shuru==2){	
			System.out.println("糖果数为:"+num+"个");
			int x=num%4;
		    num=num-num%4; 
		System.out.println("电脑取走了"+x+"个,还剩下"+num+"个");}
		while(num>0){
			int x=chae.nextInt();
			if(x>=1&&x<=3){
				System.out.println("你取走了"+x+"个");
				if(num==0) System.out.println("你胜利了!");
				int k=4-x;
				System.out.print("电脑取走了"+k+"个,");
				if((num-4)==0) {System.out.println("电脑胜利了!");
				break;}
				num=num-4;
				System.out.println("还剩余"+num+"个");}
			else 
				System.out.println("你输的数字不符合规则请重新输入!");
				continue;}	
		chae.close();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值