掷骰子游戏 华为机试
来源:互联网 发布:在线学习算法 编辑:程序博客网 时间:2024/05/19 20:48
掷骰子游戏
- 问题描述:
在掷骰子游戏中,会根据所掷数字在地图中前进几步,前进完成后需要根据当前地图位置所示的障碍进行相应操作,其中障碍表示:
1) 9:无障碍
2) 1:停掷一轮,即下轮所掷数字无效;
3) 2:后退两步,如果已经到起点不再后退;
4) 3:奖励前进一步
如果在游戏过程中,已经走到地图终点,则游戏结束。根据输入的地图数组,和5个骰子数的数组,返回最终玩家前进了多少步。
- 要求实现函数:
void dice(int map_len,int* map, int* dice_val, int* output)
【输入】 int map_len,地图数组的长度
int* map,地图数组,值表示障碍
int* dice_val,5个骰子数的数组
【输出】 int *output,玩家共前进了多少步
【返回】 无
注:玩家是从起始位置开始,即地图数组的第一位,骰子数只能是1~6
- 示例
1) 输入:map_len = 15, map ={9,1,9,9,9,2,9,9,9,9,9,9,9,9,9},dice_val = {1,2,1,3,1},
返回:4
2) 输入:map_len = 16, map ={9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9},dice_val = {2,1,4,1,6},
返回:15
#include "stdafx.h"#include <iostream>using namespace std;void dice(int map_len, int* map, int* dice_val, int* output){int step = 0;int num_val = 0;const int diceLength = 5; for ( int i = 0; i < map_len && num_val < diceLength; ) {if ( map[i] == 9 ) {i += dice_val[num_val];step += dice_val[num_val];++num_val;}else if ( map[i] == 1){ i += dice_val[ ++num_val ]; step += dice_val[num_val]; ++num_val; }else if ( map[i] == 2 ){if ( i > 1 ) { i = i - 2; step -= 2;}else if( i == 1 ){i = 0;--step;}else if( i == 0 ){i = 0;}}else if( map[i] == 3 ){++i; ++step;} }*output = step;}int _tmain(int argc, _TCHAR *argv[]){int map[] = {9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9};int dice_val[] = {2,1,4,1,6};int result = 0;dice(16, map,dice_val, &result);cout<<result<<endl;}
- 掷骰子游戏 华为机试
- 华为机试—掷骰子游戏
- 华为机试题——掷骰子游戏
- 掷骰子游戏
- 掷骰子游戏
- 掷骰子游戏
- C++掷骰子游戏
- 玩游戏(掷骰子)
- 实验作业:掷骰子游戏
- 2017华为机试题--投骰子问题
- 骰子游戏
- 华为机试---投篮游戏
- 一个简单的掷骰子游戏
- 6、掷骰子游戏(续5)
- 【HTML5/CSS3学习笔记】掷骰子游戏
- 【程序12】模拟掷骰子游戏
- 甲乙两人做游戏,掷三个骰子,比点数
- 掷骰子游戏-C语言实现
- javaweb乱码以及ajax乱码
- 用 sbcl, asdf 和 cl-launch 编写可分发的 lisp 程序
- 同级异常的处理
- 字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
- 设计模式学习笔记:单例模式
- 掷骰子游戏 华为机试
- redhat root密码丢失解决办法
- 花生壳+tomcat+javaweb项目的部署问题
- 后台升级管理系统之技术
- Struts2 Action中文乱码问题的解决办法
- linux内核list_for_each_entry
- 问题八十六:最多约数
- 黑马韩前成linux从入门到精通之 Linux用户与用户组的详解
- ORA-01950:no privileges on tablespace 'USERS'