爱发呆的光
码龄4年
关注
提问 私信
  • 博客:7,316
    问答:13
    视频:757
    8,086
    总访问量
  • 9
    原创
  • 2,069,697
    排名
  • 2
    粉丝
  • 0
    铁粉

个人简介:游戏设计爱好者

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2020-11-18
博客简介:

qq_52662291的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得2次评论
  • 获得15次收藏
  • 代码片获得161次分享
创作历程
  • 9篇
    2022年
成就勋章
兴趣领域 设置
  • Python
    python
  • 编程语言
    pythonphpjavascriptlisp
  • 开发工具
    pycharm
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C语言简单游戏规则编程

答:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 定义游戏规则
#define RULES_SIZE 3
char rules[] = {'A', 'B', 'C'};
char rules_operator[][3] = {{'>', '<', '>='}, {'>', '>='}, {'<'}};
char rules_compare[][3] = {{'B', 'C', 'D'}, {'C', 'D', '\0'}, {'D', '\0', '\0'}};

// 比较两个数的大小,并返回结果(1表示大于,-1表示小于,0表示等于)
int compare(int a, int b) {
    if (a > b) {
        return 1;
    } else if (a < b) {
        return -1;
    } else {
        return 0;
    }
}

// 判断是否符合游戏规则
int check_rules(char c, int a, int b) {
    int i;
    for (i = 0; i < RULES_SIZE; i++) {
        if (c == rules[i]) {
            int cmp_res = compare(a, b);
            char op = rules_operator[i][cmp_res + 1];
            char comp = rules_compare[i][cmp_res + 1];
            if (comp == '\0') {
                return -1;
            } else if (op == '=') {
                cmp_res = compare(a, b);
                op = rules_operator[i][cmp_res + 1];
                comp = rules_compare[i][cmp_res + 1];
            }
            if (op == '>') {
                return comp == 'B' ? 1 : 0;
            } else if (op == '<') {
                return comp == 'C' ? 1 : 0;
            } else {
                return comp == 'D' ? 1 : 0;
            }
        }
    }
    return -1;
}

int main() {
    srand((unsigned int)time(NULL));  // 初始化随机数种子

    // 玩家输入四个数字
    int player_nums[4];
    printf("请输入四个数字(用空格分开):");
    scanf("%d %d %d %d", &player_nums[0], &player_nums[1], &player_nums[2], &player_nums[3]);

    // 系统生成四个随机数
    int sys_nums[4];
    int i;
    for (i = 0; i < 4; i++) {
        sys_nums[i] = rand() % 100 + 1;  // 生成1~100之间的随机整数
    }

    // 比赛过程
    int win_count = 0;
    for (i = 0; i < 4; i++) {
        int res = check_rules('A', player_nums[i], sys_nums[i]);
        if (res == -1) {
            printf("检查游戏规则出错!\n");
            return 1;
        } else if (res == 1) {
            res = check_rules('B', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
            res = check_rules('D', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
        } else {
            res = check_rules('C', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
        }
    }

    // 输出比赛结果
    if (win_count >= 2) {
        printf("恭喜您获胜!\n");
    } else {
        printf("很遗憾,您失败了。\n");
    }

    return 0;
}

首先,定义了游戏规则和相应的比较函数和判断函数。玩家输入四个数字并存储在数组player_nums中,系统生成四个随机数并存储在数组sys_nums中。
然后,通过for循环模拟比赛过程。对于每一次比赛,调用check_rules函数判断玩家输入的数字和系统生成的随机数是否符合游戏规则,并根据规则进行相应的计分。
最后,根据计分情况输出比赛结果。
1、为了确保每次运行程序时生成的随机数不同,需要在main函数开始前调用srand函数初始化随机数种子;
2、可以根据具体情况对代码进行适当的修改或优化。

回答问题 2023.03.08

循环相乘,依次点乘起来

答:

假设已经读取了Excel文件并将数据存储在名为data的二维数组中,每个表格的数据都是一个二维矩阵。那么可以使用循环来进行矩阵乘法计算,并将结果存储在新的列表中。

以下是Python代码示例:


```python
import numpy as np
import pandas as pd

# 读取Excel文件
df = pd.read_excel('filename.xlsx', sheet_name=None)

# 将所有表格数据存储在data字典中
data = {}
for sheet_name, sheet_data in df.items():
    data[sheet_name] = sheet_data.values

# 定义新的列表
new_data = {}

# 定义初始矩阵
matrix = np.identity(data['w1.表'].shape[0])

# 循环计算新的矩阵
for sheet_name, sheet_data in data.items():
    matrix = np.dot(matrix, sheet_data)
    new_data[sheet_name] = matrix.copy()

# 输出新的列表
for sheet_name, sheet_data in new_data.items():
    print(sheet_name)
    print(sheet_data)

```
解释:
首先,通过Pandas库的read_excel函数读取Excel文件并将数据存储在data字典中。其中,sheet_name=None表示读取所有工作表;sheet_data.values将每个工作表转换成二维数组并存储在data字典对应的值中。
然后,定义新的列表new_data和初始矩阵matrix。通过循环遍历data字典,对于每个工作表,用numpy库中的dot函数计算当前矩阵与前面计算结果的点积。最后,将结果存储在new_data字典中,并输出到控制台。

注意事项:

要确保读取的Excel文件中各个工作表的数据格式一致(即矩阵大小相同),否则会导致矩阵乘法运算出错;
可能需要根据具体情况调整代码进行适当的优化或修改。

回答问题 2023.03.08

【无标题】

git 常用命令
原创
发布博客 2022.11.03 ·
223 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

python笔记—>网页爬虫

python爬虫学习笔记
原创
发布博客 2022.10.09 ·
1880 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

python笔记—>数据分析

使用python进行数据处理分析
原创
发布博客 2022.10.03 ·
1813 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

QQ录屏20221002232005

发布视频 2022.10.02

python笔记—>贪吃蛇游戏制作

python贪吃蛇游戏制作
原创
发布博客 2022.10.02 ·
1940 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

python笔记—文件处理

python文件处理
原创
发布博客 2022.10.02 ·
53 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python笔记—循环输出9、9乘法表

python循环输出99乘法表
原创
发布博客 2022.10.01 ·
293 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python笔记—条件控制—>猜数游戏

python条件控制,并利用条件控制制作猜数游戏
原创
发布博客 2022.10.01 ·
799 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python基础语法复习

数据类型、类型转换、字典输出、推导式等的复习
原创
发布博客 2022.10.01 ·
95 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

python 基础语法复习

python导入、输入输出、注释等基础语法复习
原创
发布博客 2022.09.30 ·
211 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏