| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:斐波那契数列應用完成一个取苹果游戏(求高手帮忙指点)
只看楼主 加入收藏
tonlin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2009-10-14
结帖率:69.23%
收藏
 问题点数:0 回复次数:0 
斐波那契数列應用完成一个取苹果游戏(求高手帮忙指点)
1.游戏输赢的评定标准是:给定一定数量的苹果,谁取了最后一个苹果就算谁赢。游戏规则是:人和电脑双方轮流取苹果;第一次无论哪一方先取苹果,都只能取“1~总苹果数目-1”之间(包括边界)数目的苹果;之后的每一方取苹果的数目只能是“1~上一次对方取苹果数目的两倍”之间的苹果个数;直至某一方将苹果取完为止,游戏才告结束。

3.程序完成后应该完成如下基本功能:
1)游戏取苹果的先后次序可以选择(人先取或电脑先取)。
2)在游戏中人取多少个苹果由参加游戏的用户自己决定输入,输入之后程序必须判断用户是否按规则输入苹果个数(每一方取苹果的数目只能是“1~上一次对方取苹果数目的两倍”之间的苹果个数)。因此程序应该有明确的提示信息,提示用户输入的苹果以及应该输入的苹果个数范围。用户输入之后,程序必须检查用户输入是否正确。
3)电脑取苹果的数目由程序来决定,赢取游戏的关键是费波那契数列的应用。具体参看实验提示。
4)游戏最后必须说明哪一方赢得游戏。
3.在完成上述基本功能的前提下,有能力的同学可以完成如下加强功能:
1)游戏的速度分为快速和慢速两种。快速游戏的电脑取苹果个数方法参看实验提示。
2)游戏的提示语言清晰明确,界面美观适用。
三、实验提示
这是一个费波那契数列的应用程序。赢取游戏的关键是:如果一方正处于所剩苹果数目为一个FINONACCI数时,如果这一方不能取完苹果,则一定处于“输的状态”。例如,现在剩3个苹果,如果你无法取完,则无论你取1个或2个,电脑在此均可以取完剩下的苹果而获胜。
任何一个数都可以分解为几个FIBONACCI数之和,如12=8+3+1,34=21+13,8=5+3等;如果现在轮到一方取,这一方恰巧可以取到现在所剩苹果总数分解为FIBONACCI数之和中的那个最小的FIBONACCI数,则那一方现在就处于“胜利的状态”,但并不表示已经胜利,因为后面也必须一直取正确数目的苹果才能最终获胜。
注意在对一个数进行FIBONACCI分解时,要分解为从大到小的FIBONACCI数,不能跳跃,若8不可以分解为5+2+1(这个分解跳跃了3,从而导致错误的判断),而应该分解为5+3。
电脑取苹果数目有以下出发点:当电脑处于“输的状态”时,电脑要尽量减慢比赛进度,使用户可能出现苹果数目的错误;但当电脑处于“胜利的状态”时,可以按“快取”和“慢取”两种速度,如果是慢取,则电脑每次只取正常分解情况下所剩的最小的FIBONACCI数即可;如果是快取,则电脑可以尝试向前多取几个被分解的FIBONACCI数即可(要保证仍处于胜利状态)。
搜索更多相关主题的帖子: 游戏 苹果 
2009-10-16 20:58
快速回复:斐波那契数列應用完成一个取苹果游戏(求高手帮忙指点)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016310 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved