现在游戏中需要实现一个“快速选择”(右图标识1)的功能,自动帮助用户选择出兵数量,需求如下: 资源地的资源量是有上限的(右图标识2处的分母值),若士兵数量充足,尽量把资源拉完,且尽量减少派兵数量; 单次出兵的数量也是有限制的(右图标识3处的分母值),派出的士兵数量不能超过这个限制; 请使用熟悉的程序语言,实现这样的函数 输入参数:资源地load上限,出兵数量上限,拥有的士兵种类列表 返回值:自动选择出来的士兵列表(士兵类型,数量) 函数定义:List<TroopItem> QuickSelectTroopList(int res_max, int march_size_max, List<TroopItem> own_troop_list) 士兵结构定义如下: struct TroopItem { int id; int type; int level; int load; int force; int own_num; int select_num; }
时间: 2024-04-24 10:22:06 浏览: 23
好的,您的问题是如何实现一个“快速选择”功能,自动帮助用户选择出兵数量,根据资源地的资源量和单次出兵数量上限,尽量把资源拉完,且尽量减少派兵数量。输入参数为资源地load上限,出兵数量上限,拥有的士兵种类列表,返回值为自动选择出来的士兵列表(士兵类型,数量),士兵结构定义如下:struct TroopItem { int id; int type; int level; int load; int force; int own_num; int select_num;},函数定义为List<TroopItem> QuickSelectTroopList(int res_max, int march_size_max, List<TroopItem> own_troop_list)。如果我理解有误,请您指正。
相关问题
现在游戏中需要实现一个“快速选择”(右图标识1)的功能,自动帮助用户选择出兵数量,需求如下: 资源地的资源量是有上限的(右图标识2处的分母值),若士兵数量充足,尽量把资源拉完,且尽量减少派兵数量; 单次出兵的数量也是有限制的(右图标识3处的分母值),派出的士兵数量不能超过这个限制; 请使用熟悉的程序语言,实现这样的函数 输入参数:资源地load上限,出兵数量上限,拥有的士兵种类列表 返回值:自动选择出来的士兵列表(士兵类型,数量) 函数定义:List<TroopItem> QuickSelectTroopList(int res_max, int march_size_max, List<TroopItem> own_troop_list) 士兵结构定义如下: struct TroopItem { int id; int type; int level; int load; int force; int own_num; int select_num; }
好的,根据您的需求,您可以使用以下步骤实现快速选择功能:
1. 根据拥有的士兵种类列表,计算每种士兵可以派出的最大数量(即派出士兵的数量不能超过单次出兵数量上限);
2. 根据每种士兵的载重和出征所需的资源量,计算每种士兵可以派出的最大数量(即派出士兵的数量不能超过资源地load上限);
3. 根据每种士兵可以派出的最大数量,选择派出的士兵种类及数量,使得资源地的资源量尽量被拉完,且派兵数量尽量减少。
具体的实现细节需要根据您的具体情况进行调整。以下是一个示例的代码实现:
```
struct TroopItem {
int id;
int type;
int level;
int load;
int force;
int own_num;
int select_num;
};
List<TroopItem> QuickSelectTroopList(int res_max, int march_size_max, List<TroopItem> own_troop_list) {
List<TroopItem> selected_troop_list;
int remaining_load = res_max;
int remaining_march_size = march_size_max;
// 计算每种士兵可以派出的最大数量
for (int i = 0; i < own_troop_list.Count; i++) {
own_troop_list[i].select_num = Math.Min(own_troop_list[i].own_num, remaining_march_size / own_troop_list[i].load);
own_troop_list[i].select_num = Math.Min(own_troop_list[i].select_num, remaining_load / own_troop_list[i].load);
remaining_march_size -= own_troop_list[i].select_num * own_troop_list[i].load;
remaining_load -= own_troop_list[i].select_num * own_troop_list[i].load;
selected_troop_list.Add(own_troop_list[i]);
}
return selected_troop_list;
}
```
在这个示例中,我们传入了资源地load上限、出兵数量上限和拥有的士兵种类列表。我们首先初始化了一个空的士兵列表selected_troop_list,用于存储最终选择出来的士兵种类及数量。然后我们遍历了拥有的士兵种类列表own_troop_list,分别计算了每种士兵可以派出的最大数量,同时更新了剩余的出兵数量和资源量。最后我们把选择出来的士兵种类及数量加入到selected_troop_list中,并返回该列表。
1. (实践教程45页2)编写程序,实现以下功能: (1)创建空字典dic_stu (2)由用户依次输入三名同学的姓名和年龄(第一个必须是自己的),存入字典dic_stu (3)输出字典dic_student的内容,格式如右图
以下是实现该功能的 Python 代码:
```python
# 创建空字典dic_stu
dic_stu = {}
# 由用户依次输入三名同学的姓名和年龄
for i in range(3):
name = input("请输入第{}个同学的姓名:".format(i+1))
age = input("请输入第{}个同学的年龄:".format(i+1))
dic_stu[name] = age
# 输出字典dic_stu的内容
print("{:<10}\t{}".format("姓名", "年龄"))
for name, age in dic_stu.items():
print("{:<10}\t{}".format(name, age))
```
运行结果示例如下:
```
请输入第1个同学的姓名:Tom
请输入第1个同学的年龄:18
请输入第2个同学的姓名:Jerry
请输入第2个同学的年龄:17
请输入第3个同学的姓名:Bob
请输入第3个同学的年龄:19
姓名 年龄
Tom 18
Jerry 17
Bob 19
```
其中,`{:<10}` 表示左对齐,占用 10 个字符的宽度。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)