捡石子小游戏程序解析

问题:这是我上小学的时候,数学老师给我讲的一个问题,他说学校盖房子的时候,有一堆民工在一起玩这个游戏,有三堆石子,分别是3个,5个,7个,游戏规则就是两个人轮流拿,每个人一次只能够在一堆中拿,每一次只能够拿1-3个,谁拿了最后一个石子,谁就给对方一块钱。

package com.hpu.bai;

import java.util.Scanner;

public class Cobble {
	public static void main(String[] args) {
		Cobble c = new Cobble();
		c.print();
		c.getCobble();

	}
		int[] arr ={3,5,7};
		int n = 15;int count =0;
		Scanner input = new Scanner(System.in);

		public int total(){
			int m =0;
			for(int i=0;i<arr.length;i++){
				m+=arr[i];
			}
			return m;
		}
		public void print(){
			for(int i=0;i<arr.length;i++){
				System.out.println("第"+(i+1)+"堆还剩下"+arr[i]+"个石子##");
			}
		}
		public void player(int b){
			if(b%2 == 1){
				System.out.println("该第一个人拿石子了");
			}else{
				System.out.println("该第二个人拿石子了");
			}

		}
		public void getCobble(){
			count++;
			if(n>1){
				player(count);
				System.out.println("请输入你要在哪一堆石子中取石子");
				int i = input.nextInt()-1;
				System.out.println("请输入你要在这堆石子中取几个");
				int m = input.nextInt();
				if(m>3){
						System.out.println("你的输入有误,请重新输入");
						count--;
						getCobble();
				}else{
				arr[i]=arr[i]-m;
				if(arr[i]<0){
					System.out.println("石子快没了,要么你少拿点,要么你换一堆吧");
					arr[i]= arr[i]+m;
					count--;
				}
				print();
				n = total();
				getCobble();
			}
			}else{
				if(count%2 ==1){
					System.out.println("别拿了,第1位玩家你已经输了");
				}else{
					System.out.println("别拿了,第2位玩家你已经输了");
				}
			}
		}
}

程序实现的关键就在与要有一个类似指针的变量来控制说明该谁拿了。当然如果把线程学好之后,这个程序还有更加可以改进的地方。java初学者QQ:623687677.大家可以互相交流,或者可以把代码运行一下。

时间: 2024-08-08 17:49:22

捡石子小游戏程序解析的相关文章

Unity3D 学习笔记 - Garen Pick the Balls 捡球小游戏设计

注:本游戏开发环境为Unity 3D v4.6 老师说这星期作业比较简单,所以我决定写得规整一些. 开发时间:8小时 游戏要求: 小游戏争分夺秒:随机位置生成七个球,控制主角在地图拾取七个球,十秒钟内必须完成,否则失败具体要求: 1 随机位置在地图上生成七个球(球可以用系统自带的球体) 2 用键盘控制本课程中的角色移动,鼠标左键攻击到达打击帧时,拾取碰到的球. 3 通过Time类显示每次拾取球花费的时间 经过试验,十秒根本捡不完= =,15秒还可以... 首先来看看帅气万分的主角Garen哥 .

Unity3D 学习笔记 - Garen Pick the Balls 捡球小游戏设计 (二) Macanim 动画状态机

注:本游戏开发环境为Unity3D 5.3.4 本星期要求: 模仿 AnimationEvent 编写一个 StateEvents 类 用户可以创建一个指定时间.指定状态触发的事件类 事件可以采用反射机制,调用调用客户的方法:或使用订阅发布方法调用客户的方法. 在你的动画控制程序中使用 StateEvents 类 我采用的是上星期的Garen Pick the Balls小游戏,将Legacy动画部分用Mecanim重写. 要点: 1. 初次状态机开发,尚未实现Run和Attack同时进行(Bl

一次奇妙的体验:结对编程之黄金点小游戏

一.项目描述:黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项

软件工程-构建之法 黄金点小游戏

一.背景 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人共

JS实现别踩白块小游戏

最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块“游戏板”上分别排布着24块方格,黑色每行随机产生一个,“游戏板”向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这……). 这里是游戏的GitHub地址,大家可以到里点击中部菜单最右边的的Downloa

结对编程:黄金点小游戏

一.游戏要求 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0-100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二

HTML5小游戏-绵羊快跑

用HTML5仿一款灵敏测试的flash小游戏程序 下载地址:http://www.huiyi8.com/divcss/<?php/**Author: Jamin* */if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){    ob_start('ob_gzhandler');}?><!DOCTYPE html><html><head><title>绵羊快跑</title>

软件工程:黄金G点小游戏1.0

我们要做的是黄金G点小游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人共同完成,并分别将本次作业

了解python,利用python来制作日常猜拳,猜价小游戏

初次接触python,便被它简洁优美的语言所吸引,正所谓人生苦短,python当歌.python之所以在最近几年越发的炽手可热,离不开它的一些特点: 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单.2.易于阅读:Python代码定义的更清晰.3.易于维护:Python的成功在于它的源代码是相当容易维护的.4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好.5.互动模式:互动