扫雷游戏课程设计报告

2023-02-22

国民经济的快速发展下,越来越多的行业,开始通过报告的方式,用于记录工作内容。怎么样才能写出优质的报告呢?以下是小编收集整理的《扫雷游戏课程设计报告》的相关内容,希望能给你带来帮助!

第一篇:扫雷游戏课程设计报告

动漫游戏场景设计学哪些课程?

动漫游戏场景设计是指动漫游戏场景设计师根据动漫游戏原画设计师给的原画稿件设计出动漫游戏中的环境、道具、机械等物体的模型,一般不会动的物体都属于动漫游戏场景设计师的设计范畴,例如动漫游戏中的树木、桥梁、房屋建筑、花草等。

动漫游戏场景设计师必须了解中外建筑史,掌握各种风格的游戏建筑表现手法,包括Q版和写实类,熟知游戏美术的光影表现手法,熟知材质的表现手法,除此之外还要多学一些其他知识,善于观察生活。

动漫游戏场景设计需要学习的课程:

CG艺术基础:学习Photoshop基础知识,透视基本原理,结构空间整体构图,调色,材质表现等等基础知识。

GAMFE丨汇众教育

游戏场景道具:学习maya,3ds Max的界面以及基础操作,Poiy 模型的制作方法、游戏模型的制作过程。

中式场景制作:认识建筑,了解建筑构成基本法则,了解中式建筑史简史,中式建筑赏析,中式室内场景制作。

西式场景制作:了解西方建筑简史,掌握西式建筑场景制作,贴图烘焙及简单的法线效果。

环境营造和组合场景:制作植物、石头等物品,制作地形地貌,制作环境球天空。

Q版场景制作:了解Q版游戏美术特点,学习Q版游戏模型制作,学习Q版游戏贴图制作。

汇众教育在游戏培训领域已有10余年的教学经验,数以万计的学生成功就业,实现了自己的游戏梦想。课程由浅入深,提前适应游戏公司的开发需求,零基础,能够全面掌握游戏开发的全流程。如果您想了解课程详情,可以直接登陆汇众教育官方网站http:/// 或拨打汇众教育24小时咨询电话400-6161-099。另外你还可以直接扫描下方二维码关注汇众教育微信公众平台。

GAMFE丨汇众教育

第二篇:数字逻辑电路课程设计,拔河游戏机

数字逻辑电路课程设计报告

拔河游戏机

摘要

1、任 务 与 要 求 : 电 子 拔 河 游 戏 机 是 一 种 能 容 纳 甲 乙 双 方 参 赛 或 甲 乙 双 方加 裁 判 的 三 人 游 戏 电 路 。

由 一 排 LED 发 光 二 极 管 表 示 拔 河 的 的“ 电 子 绳 ” 。

由 甲 乙 双 方 通 过 按 纽 开 关 使 发 光 的 LED 管 向 一 方的 终 点 延 伸 , 当 延 伸 到 某 方 的 最 后 一 个 LED 管 时 , 则 该 方 获胜 , 连 续 比 赛 多 局 以 定 胜 负 。

显示器显示胜者的盘数。

2、基 本 要 求 如 下 :

( 1)

比 赛 开 始 时 , 由 裁 判 下 达 命 令 后 , 甲 乙 双 方 才 能 输 入信 号 , 否 则 , 由 于 电 路 具 有 自 锁 功 能 , 使 输 入 信 号 无 效 。

( 2)“ 电 子 绳 ” 到 少 由 15 个 LED 管 构 成 , 裁 判 下 达 “ 开 始 比 赛 ”的 命 令 后 , 位 于 “ 电 子 绳 ” 中 点 的 LED 点 亮 。

甲 乙 双 方 通 过 按键 输 入 信 号 , 使 发 亮 的 LED 管 向 自 己 一 方 移 动 , 并 阻 止 其 向 对方 延 伸 。

当 从 中 点 至 自 己 一 方 终 点 的 LED 管 全 部 点 亮 时 , 表 示比 赛 结 束 。

这 时 , 电 路 自 锁 , 保 持 当 前 状 态 不 变 , 除 非 由 裁 判使 电 路 复 位 。

3、方 案 论 证 与 设 计 电 子 拔 河 游 戏 机 是 一 种 能 容 纳 甲 乙 双 方 参 赛 或 甲 乙 双 方加 裁 判 的 三 人 游 戏 电 路 。

由 一 排 LED 发 光 二 极 管 表 示 拔 河 的“ 电 子 绳 ” 。

游 戏 双 方 各 拥 有 一 个 比 赛 时 使 用 的 按 钮 ,当 参 与者 不 停 的 按 动 按 钮 的 时 候 就 产 生 脉 冲 ,谁 快 产 生 的 脉 冲 就 多 ,这 样 由 甲 乙 双 方 通 过 按 扭 开 关 使 发 光 的 LED 管 向 一 方 的 终 点 延伸 , 双 方 通 过 按 扭 输 入 信 号 , 使 得 计 数 电 路 实 现 计 数 功 能 , 当延 伸 到 某 方 的 最 后 一 个 LED 管 时 , 则 该 方 获 胜 , 连 续 比 赛 多局 以 定 胜 负 。

通 过 设 计 多 谐 振 荡 器 提 供 输 入 脉 冲 , 用 可 逆 计 数器 , 译 码 器 , 将 甲 乙 双 方 的 输 入 转 换 为 脉 冲 , 再 经 过 译 码 , 显示 译 码 器 和 七 段 数 码 管 实 现 电 路 的 记 分 功 能 。

用 开 关 设 计 的 裁判 可 以 实 现 电 路 的 记 分 和 清 零 功 能 。

目录

1 概述………………………………………………………………………… ⑴

1.1 设计思想及说明 ……………………………………………………………⑴

2 系统总体方案 及硬件设计 …………………………………………………… ⑸ 2.1 实验设备及各器件功能 ……………………………………………… ⑸~⑼ 2.2 设计步骤 ……………………………………………………………… ⑼~⑿ 2.3 实验电路框图 ……………………………………………………………… ⒀

2.4 作品介绍 …………………………………………………………………… ⒀

3 3 心得体会 ……………………………………………………………………… ⒁ 4 参考文献 ……………………………………………………………………… ⒂

附 附 1 1 :系统原理图 …………………………… ………………………………… ⒃

概述 1.1 设计思想及说明

电子拔河游戏机是一种能容纳甲乙双方参赛或甲乙双方加裁判的三人游戏电路。由一排 LED 发光二极管表示拔河的“电子绳”。游戏双方各拥有一个比赛时使用的按钮,当参与者不停的按动按钮的时候就产生脉冲,谁快产生的脉冲就多,这样由甲乙双方通过按扭开关使发光的 LED 管向一方的终点延伸,双方通过按扭输入信号,使得计数电路分别实现实现加减计数功能,当延伸到某方的最后一个 LED 管时, 则该方获胜,连续比赛多局以定胜负。

通过设计甲乙通过输入单脉冲,用十进制可逆计数器实现加减,通过译码器显示译码器和七段数码管实现电路的记分功能,并实现双方赢盘数的自动统计。用开关设计的裁判可以实现电路的清零功能。

系统总体方案及硬件设计

2.1 实验设备及各器件功能

1 1. +5v 直 流 电 源 ; 提 供 拔 河 游 戏 机 的 信 号 输 入 , 高 低 电平 输 入 , 产 生 信 号 。

2. 译 码 显 示 器 ; 将 十 进 制 数 字 信 号 转 化 成 模 拟 信 号 , 使输 出 比 赛 结 果 。

3.逻 辑 电 平 开 关 ;使 能 端 ,在 每 场 比 赛 结 束 后 进 行 锁 定 ,在 下 场 比 赛 开 始 时 间 解 除 锁 定 , 使 比 赛 进 行 以 后 各 场 。

4.4 线 - 16 线 译 码 /分 配 器 CC4511;将 二 进 制 数 字 信 号 转化 成 模 拟 信 号 , 使 发 光 二 极 管 在 与 到 高 电 势 时 间 发 光 。

5.同 步 递 增 /递 减 二 进 制 计 数 器 CC40193;CP( u)为 递增 输 入 端 , CP(d)为 递 减 输 入 端 。

6. 十 进 制 计 数 器 74LS90;对 输 入 信 号 进 行 十 进 制 记 数 ,记 数 后 将 其 传 送 到 译 码 显 示 器 显 示 。

7. 与 非 门 CC4011×3, 与 门 CC4081.异 或 门 CC4030,电 阻 1 千 欧 姆 ×4, 与 译 码 显 示 器 、逻 辑 电 平 开 关 、译 码 分 配器 、同 步 递 增 /递 减 二 进 制 计 数 器 、十 进 制 计 数 器 等 各 个 器 件构 成 整 个 拔 河 游 戏 机 设 备 。

8. 九 个 发 光 二 集 管 及 导 线 。

R 0(1)CP ACP B R 0(2) R 9(2) R 9(1)NCNC V CCQ A Q D Q B Q CGND1 2 3 4 5 6 714 13 12 11 10 9 8Q A Q D Q BQ CR 9(2)R 9(1) R 0(2) R 0(1)CP BCP A74LS90CP ACP BQ A Q D Q B Q CR 9(2)R 9(1)R 0(2)R 0(1)74LS90B、、74LS 90 管脚分布图2 、利用集成功能组件设计计数电路74LS90

2.2

骤 设 计 步 骤

开 始 我 们 是 设 计 电 路 图 完 成 以 上 功 能 , 但 由 于 部 分 器 件 的缺 乏 , 而 用 现 有 器 件 实 现 电 路 功 能 相 对 较 复 杂 。

而 且 由 于 按 照设 计 的 电 路 图 , 所 需 元 器 件 较 多 , 需 使 用 两 块 电 路 板 , 但 是 出现 了 两 块 电 板 的 电 压 不 匹 配 , 驱 动 不 足 等 问 题 , 同 时 线 路 较 复杂 使 得 排 查 的 工 作 也 很 难 。

所 以 后 来 我 们 改 用 了 编 程 实 现 。

编 程 原 理 概 要 :

输 入 :

甲 , 乙 和 裁 判 的 脉 冲

输 出 :

9 个 LED 发 光 二 极 管 输 入 ; 甲 的 赢 盘 数 ( 4 位 二 进 制 );乙 的 赢 盘 数 ( 4 位 二 进 制 ); 在 程 序 内 部 实 现 根 据 裁 判 , 甲 乙 输 入 控 制 计 分 , 译 码 等 主 要 功能 程 序 设 计 中 的 几 个 关 键 问 题 :

时 钟 信 号 问 题 :

如 何 实 现 各 相 关 功 能 模 块 的 时 钟 同 步 。

首 先 搞 清 楚 , 引 脚 定 义 中 寄 存 器 属 性 和 组 合 逻 辑 属 性 的 不 同 。可 以 作 这 样 的 理 解 :

寄 存 器 模 式 需 要 时 钟 信 号 的 控 制 , 来 一 个时 钟 脉 冲 , 发 生 一 次 改 变 。

而 组 合 逻 辑 属 性 则 可 理 解 为 某 一 时刻 的 输 出 唯 一 决 定 于 此 时 其 输 入 的 各 变 量 , 而 且 可 以 认 为 这 种改 变 在 电 路 内 部 是 瞬 时 的 , 无 延 迟 现 象 。

本 程 序 的 核 心 是 如 何 实 现 两 个 脉 冲 分 别 控 制 一 个 可 逆 计 数 器的 加 减 记 数 , 同 时 裁 判 脉 冲 能 对 计 数 器 进 行 重 置 , 以 及 重 置 之前 的 自 锁 功 能 。

开 始 时 我 们 是 通 过 引 入 了 一 个 外 部 时 钟 信 号 CLK,可 逆 计 数 器的 时 钟 信 号 =CLK,这 样 就 可 以 实 现 甲 ,乙 ,裁 判 脉 冲 能 在 任 意时 刻 改 变 计 数 器 的 状 态 , 因 为 外 部 时 钟 脉 冲 是 始 终 不 断 的 , 所以 电 路 总 是 在 判 断 各 输 入 以 决 定 输 出 。

但 是 碰 到 了 一 个 问 题 :当 甲 只 按 了 一 下 , LED 灯 直 接 跳 到 了 最 左 边 , 也 就 是 内 部 计 数器 一 下 减 到 了 0, 而 不 是 按 一 下 只 减 1。

分 析 现 象 , 出 现 这 样的 问 题 就 是 由 于 外 部 输 入 的 CLK 信 号 的 频 率 为 1-100KHZ, 也就 是 其 脉 冲 的 周 期 最 大 也 是 微 秒 级 的 , 甲 , 乙 的 脉 冲 是 不 可 能实 现 这 样 的 速 度 的 。

例 如 甲 按 下 单 脉 冲 发 生 器 0.1 秒 , 而 技 术器 时 钟 已 经 过 去 100 以 上 的 周 期 , 也 就 是 说 计 数 器 减 了 100 次( 当 然 只 减 了 4 电 路 就 自 锁 了 )。

后 来 我 们 也 考 虑 过 通 过 分 频 将 高 频 信 号 分 频 成 低 如 几 HZ 的 低频 信 号 , 但 是 分 析 后 发 现 这 是 不 实 际 的 , 而 且 在 时 序 上 仍 然 存在 问 题 。

因 为 即 使 时 钟 信 号 低 到 能 适 应 甲 乙 脉 冲 的 频 宽 , 但 是仍 会 因 为 周 期 过 大 , 电 路 反 应 过 慢 , LED 移 动 缓 慢 的 缺 陷 。

通 过 长 时 间 的 分 析 , 这 期 间 对 寄 存 器 和 组 合 逻 辑 模 式 的 电 路 内部 运 作 的 理 解 有 了 质 的 提 高 。

得 出 了 以 下 的 最 终 解 决 方 案 可 逆 计 数 器 原 始 状 态 输 出 4 位 二 进 制 数 0000, 经 译 码 器输 出 使 中 间 的 一 只 发 光 二 极 管 发 亮 。当 按 动 A、B 两 个 按 键 时 ,分 别 产 生 两 个 脉 冲 信 号 ,经 整 形 后 分 别 加 到 可 逆 计 数 器 ,可 逆计 数 器 输 出 的 代 码 经 译 码 器 译 后 驱 动 发 光 二 极 管 点 亮 并 产 生位 移 ,当 亮 点 移 到 任 何 一 方 终 端 后 ,由 于 控 制 电 路 作 用 ,使 这一 状 态 被 锁 定 ,而 对 输 入 脉 冲 不 起 作 用 。如 按 到 复 位 键 ,亮 点又 回 到 中 点 位 置 , 比 赛 又 可 重 新 开 始 。

将 双 方 终 端 二 极 管 的 正 端 分 别 经 两 个 与 非 门 后 接 至 两 个二 - 十 进 制 计 数 器 的 加 计 数 端 ,当 任 一 方 取 胜 ,该 方 终 端 二 极管 发 亮 ,产 生 一 个 下 降 沿 使 其 对 应 的 计 数 器 计 数 。这 样 ,计数 器 的 输 出 即 显 示 了 胜 者 取 胜 的 盘 数 。

1.计 数 器 可 逆 计 数 器 要 有 两 个 输 入 端 ,四 个 输 出 端 ,要 进 行 加 /减 计数 , 因 此 选 用 CC40193 双 时 钟 二 进 制 同 步 加 /减 计 数 器 来完 成 。

2.整 形 电 路 CC40193 是 可 逆 计 数 器 , 控 制 加 减 的 CP 脉 冲 分 别 加 至5 脚 和 4 脚 , 此 时 当 电 路 要 求 进 行 加 法 计 数 时 ,减 法 输 入 端 CPd 须 为 高 电 平 ;减 法 计 数 时 ,加 法 输 入 CPu 也 必 须 为 高 电 平 ,若 直 接 由 A、B 键 产 生 的 脉 冲加 到 5 脚 或 4 脚 ,那 么 就 有 很 多 时 机 在 进 行 计 数 输 入 时 另 一 计数 输 入 端 为 低 电 平 ,使 计 数 器 不 能 计 数 ,双 方 按 键 均 失 去 作 用 ,拔 河 赛 不 能 正 常 进 行 。

加 一 整 形 电 路 , 使 A、B 键 出 来 的 脉 冲经 整 形 后 变 为 一 个 占 空 比 很 大 的 脉 冲 ,这 样 就 减 少 了 进 行 某 一计 数 时 另 一 计 数 输 入 为 低 电 平 的 可 能 性 ,从 而 使 每 一 次 键 都 有可 能 进 行 有 效 的 计 数 。

整 形 电 路 是 由 两 个 与 门 CC4081 和 4个 与 非 门 CC4011 来 实 现 其 相 应 功 能 。

3.译 码 电 路

选 用 4 线 - 16 线 CC4514 译 码 器 。

译 码 器 的 输 出Q0~Q14 分 接 9 个 发 光 二 极 管 ,二 极 管 的 负 端 接 地 ,而 正 端 接译 码 器 ; 这 样 , 当 信 号 输 出 为 高 电 平 时 发 光 二 极 管 点 亮 。

比 赛 准 备 , 译 码 器 输 入 为 0000, Q0 输 出 为 0, 中 心处 二 极 管 首 先 点 亮 , 当 编 码 器 进 行 加 法 计 数 时 , 亮 点 向 右 移 ,进 行 减 法 计 数 时 , 亮 点 向 左 移 。

4.控 制 电 路 为 指 示 出 谁 胜 谁 负 ,需 用 一 个 控 制 电 路 。当 亮 点 移 到 任 何一 方 的 终 端 时 ,判 该 方 为 胜 ,此 时 双 方 的 按 键 均 宣 告 无 效 。此时 电 路 可 用 一 个 异 或 门 CC4030 和 一 个 与 非 门 CC4011 来 实现 。将 双 方 终 端 二 极 管 的 正 极 接 至 异 或 门 的 两 个 输 入 端 ,负 极接 至 两 个 与 非 门 的 两 个 断 口 ,当 获 胜 一 方 为“ 1”,而 另 一 方 则为 “ 0”, 异 或 门 输 出 为“ 1”,经 非 门 产 生 低 电 平“ 0”,再 送 到 计 数器 的 置 数 端 PE, 于 是 计 数 器 停 止 计 数 , 处 于 预 置 状 态 , 使 计数 器 对 输 入 脉 冲 不 起 作 用 。

5.胜 负 显 示 将 双 方 终 端 二 极 管 正 极 经 与 非 门 后 的 输 出 端 分 别 接 到 两 个74LS90 计 数 器 的 A 端 ,74LS90 的 四 组 4 位 BCD 码 分 别 接 到实 验 装 置 的 四 组 译 码 显 示 器 的 A、B、C、D 插 入 口 。当 一 方 取胜 时 ,该 方 终 端 二 极 管 发 亮 ,同 时 相 应 的 数 码 管 进 行 加 一 计 数 ,于 是 就 是 到 了 双 方 取 胜 次 数 的 显 示 。

6.复 位

为 能 进 行 多 次 比 赛 ,需 要 进 行 复 位 操 作 ,使 亮 点 返 回中 心 点 , 可 用 一 个 开 关 控 制 CC40193 的 清 零 端 即 可 。

胜 负 显 示 器 的 复 位 也 应 用 一 个 开 关 来 控 制 胜 负 计 数器 的 清 零 端 R,使 其 重 新 计 数 。

2.3

实验电路

2.4

作品介绍

严 格 说 来 ,我 们 组 的 作 品 只 是 在 功 能 上 实 现 了 拔 河 机 的 拔河 功 能 , 虽 然 算 不 上 真 正 意 义 上 的 拔 河 游 戏 机 , 但 这 次 设 计 实验 不 失 为 一 次 有 意 义 的 挑 战 。

本 作 品 为 数 字 电 子 产 品 , 准 确 而且 灵 敏 度 高 , 不 会 因 为 电 路 耗 能 或 模 拟 元 件 本 身 的 原 因 造 成 响应 缓 慢 、准 确 度 低 等 缺 陷 。

使 用 说 明 首 先 , 要 接 如 5V 的 直 流 电 源 使 电 路 通 电 , 使 用复 位 开 关 将 甲 乙 赢 盘 数 重 置 , 然 后 , 裁 判 按 下 开 始 将 程 序 内 部核 心 加 减 计 数 器 重 新 置 开 始 位 , 仪 器 便 可 开 始 工 作 , 用 甲 乙 两个 脉 冲 开 关 实 现 电 路 的 “ 拔 河 ”, 当 某 端 的 最 后 一 个 发 光 LED管 亮 起 时 , 说 明 一 局 比 赛 结 束 , 通 过 按 下 裁 判 的 复 位 按 键 来 进行 下 一 场 比 赛 , 在 数 码 管 中 显 示 了 比 赛 的 结 果 。

可逆计数器 按键 A B 整形电路 选择开关 译码器 取胜计数器 取胜显示 控制电路 中心点显示 复位

心得体会

此 次 电 子 系 统 设 计 中 , 我 们 投 入 了 最 大 的 热 情 和 精 力 , 从设 计 电 路 图 , 选 择 元 器 件 , 在 实 验 箱 上 组 合 , 每 一 个 过 程 都 经过 了 大 家 的 共 同 探 讨 , 其 过 程 中 出 现 了 不 少 的 问 题 , 我 们 没 有气 馁 , 没 有 退 缩 , 我 们 积 极 向 同 学 和 老 师 请 教 , 并 且 一 遍 又 一遍 的 重 复 实 践 , 直 到 我 们 期 望 的 结 果 实 现 。

事 实 也 证 明 我 们 的努 力 没 有 白 费 , 认 真 严 谨 的 实 习 态 度 给 我 们 带 来 了 成 功 的 喜悦 !

通 过 这 次 电 子 系 统 设 计 , 我 们 掌 握 了 设 计 一 个 数 字 电 路 的基 本 方 法 和 基 本 步 骤 , 实 际 解 决 了 设 计 中 出 现 的 问 题 , 增 强 了寻 找 问 题 , 解 决 问 题 的 能 力 。

此 次 电 子 设 计 的 成 功 不 仅 帮 助 我们 更 好 地 掌 握 书 本 知 识 , 尤 其 重 要 的 是 增 强 了 我 们 的 自 信 , 培养 了 我 们 独 立 思 考 的 能 力 。

严 格 说 来 , 我 们 组 的 作 品 只 是 在 功 能 上 实 现 了 拔 河 机 的 拔河 功 能 , 虽 然 算 不 上 真 正 意 义 上 的 拔 河 游 戏 机 , 但 这 次 设 计 实验 不 失 为 一 次 有 意 义 的 挑 战 。

参考文献

[1] 阎石主编:《数字电子电路》,北京,中央广播电视大学出版社,1993 年 [2] 李国丽 朱维勇 《电子技术实验指导书》 中国科技大学出版社 [3] 蔡惟铮主编:《数字电子线路基础》,哈尔滨,哈尔滨工业大学出版社,1988 年 [4] 李 士雄、丁康源主编:《数字集成电子技术教程》,北京,高等教育出版社,1993 年 [5] 欧阳星明:《数字逻辑》华中科技大学出版社,2005 年 年3 月

K Ω附 2

系统原理图

&

Cc40193

& & & & & & & & & & =1 & & 日 日 日 日 Cc4511 D C B A Cc4511 D C BA Cc4511 D C B A Cc4511 D C B A

74LS90

Cc4514

74LS90

741LS90

74LS90 +5V +5V +5V

第三篇:C语言扫雷源代码

C语言扫雷源代码.txt如果背叛是一种勇气,那么接受背叛则需要更大的勇气。爱情是块砖,婚姻是座山。砖不在多,有一块就灵;山不在高,守一生就行。 #include #include #include #include

/*鼠标信息宏定义*/ #define WAITING 0xff00 #define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define RIGHTPRESS 0xff02 #define RIGHTCLICK 0xff20 #define RIGHTDRAG 0xff2a #define MIDDLEPRESS 0xff04 #define MIDDLECLICK 0xff40 #define MIDDLEDRAG 0xff4c #define MOUSEMOVE 0xff08 struct { int num;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/ int roundnum;/*统计格子周围有多少雷*/ int flag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/ }Mine[10][10];

int gameAGAIN=0;/*是否重来的变量*/ int gamePLAY=0;/*是否是第一次玩游戏的标志*/ int mineNUM;/*统计处理过的格子数*/ char randmineNUM[3];/*显示数字的字符串*/

int Keystate; int MouseExist; int MouseButton; int MouseX; int MouseY; int up[16][16],down[16][16],mouse_draw[16][16],pixel_save[16][16];

void MouseMath()/*计算鼠标的样子*/ {int i,j,jj,k; long UpNum[16]={ 0x3fff,0x1fff,0x0fff,0x07ff, 0x03ff,0x01ff,0x00ff,0x007f, 0x003f,0x00ff,0x01ff,0x10ff, 0x30ff,0xf87f,0xf87f,0xfc3f }; long DownNum[16]={ 0x0000,0x7c00,0x6000,0x7000, 0x7800,0x7c00,0x7e00,0x7f00, 0x7f80,0x7e00,0x7c00,0x4600, 0x0600,0x0300,0x0300,0x0180 }; for(i=0;i<16;i++) { j=jj=15; while(UpNum[i]!=0) { up[i][j]=UpNum[i]%2; j--; UpNum[i]/=2; } while(DownNum[i]!=0) { down[i][jj--]=DownNum[i]%2; DownNum[i]/=2; } for(k=j;k>=0;k--) up[i][k]=0; for(k=jj;k>=0;k--) down[i][k]=0; for(k=0;k<16;k++)/*四种组合方式*/ { if(up[i][k]==0&&down[i][k]==0) mouse_draw[i][k]=1; else if(up[i][k]==0&&down[i][k]==1) mouse_draw[i][k]=2; else if(up[i][k]==1&&down[i][k]==0) mouse_draw[i][k]=3; else mouse_draw[i][k]=4; } } mouse_draw[1][2]=4;/*特殊点*/ }

void Init(void);/*图形驱动*/ void MouseOn(int,int);/*鼠标光标显示*/ void MouseOff(void);/*鼠标光标隐藏*/ void MouseSetXY(int,int);/*设置当前位置*/ int LeftPress(void);/*左键按下*/ int RightPress(void);/*鼠标右键按下*/ int MiddlePress(); void MouseGetXY(void);/*得到当前位置*/ int MouseStatus(); void Control(void);/*游戏开始,重新,关闭*/ void GameBegain(void);/*游戏开始画面*/ void DrawSmile(void);/*画笑脸*/ void DrawRedflag(int,int);/*显示红旗*/ void DrawEmpty(int,int,int,int);/*两种空格子的显示*/ void GameOver(void);/*游戏结束*/ void GameWin(void);/*显示胜利*/ int MineStatistics(int,int);/*统计每个格子周围的雷数*/ int ShowWhite(int,int);/*显示无雷区的空白部分*/ void GamePlay(void);/*游戏过程*/ void Close(void);/*图形关闭*/

void main(void) { Init(); MouseMath(); //MouseOn(MouseX,MouseY); Control(); Close(); }

void Init(void)/*图形开始*/ { int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,""); } void Close(void)/*图形关闭*/ { closegraph(); } /*鼠标光标显示*/ void MouseOn(int x,int y) { int i,j; int color;

for(i=0;i<16;i++)/*画鼠标*/ { for(j=0;j<16;j++) { pixel_save[i][j]=getpixel(x+j,y+i);/*保存原来的颜色*/ if(mouse_draw[i][j]==1) putpixel(x+j,y+i,0); else if(mouse_draw[i][j]==2) putpixel(x+j,y+i,15); } } } /*隐藏鼠标*/ void MouseOff() { int i,j,x,y,color; x=MouseX; y=MouseY; for(i=0;i<16;i++)/*原位置异或消去*/ for(j=0;j<16;j++) { if(mouse_draw[i][j]==3||mouse_draw[i][j]==4) continue; color=getpixel(x+j,y+i); putpixel(x+j,y+i,color^color); putpixel(x+j,y+i,pixel_save[i][j]); } } void MouseSetXY(int x,int y)/*设置当前位置*/ { _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33); } int LeftPress(void)/*鼠标左键按下*/ { _AX=0x03; geninterrupt(0x33); return(_BX&1); } int RightPress(void)/*鼠标右键按下*/ { _AX=0x03; geninterrupt(0x33); return(_BX&2); } /*是否按下中键

返回值同上 */ int MiddlePress() { _AX=0x03; geninterrupt(0x33); return(_BX&4); } void MouseGetXY(void)/*得到当前位置*/ { _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX; } /*鼠标按键情况,返回0表示只移动,返回1表示左右键同时按下,2表示只按了左键,3表示只按了右键*/

int MouseStatus() { int x,y; int status; int press=0;

int i,j,color; status=0;/*默认鼠标没有移动*/

x=MouseX; y=MouseY;

while(x==MouseX&&y==MouseY&&status==0&&press==0) { if(LeftPress()&&RightPress()) press=1; else if(LeftPress()) press=2; else if(RightPress()) press=3; MouseGetXY(); if(MouseX!=x||MouseY!=y) status=1; } if(status)/*移动情况才重新显示鼠标*/ { for(i=0;i<16;i++)/*原位置异或消去*/ for(j=0;j<16;j++) { if(mouse_draw[i][j]==3||mouse_draw[i][j]==4) continue; color=getpixel(x+j,y+i); putpixel(x+j,y+i,color^color); putpixel(x+j,y+i,pixel_save[i][j]); } MouseOn(MouseX,MouseY);/*新位置显示*/ } if(press!=0)/*有按键的情况*/ return press; return 0;/*只移动的情况*/ }

void Control(void)/*游戏开始,重新,关闭*/ { int gameFLAG=1;/*游戏失败后判断是否重新开始的标志*/ while(1) { MouseStatus(); if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/ {

GameBegain(); /*游戏初始画面*/ GamePlay();/*具体游戏*/ if(gameAGAIN==1)/*游戏中重新开始*/ { gameAGAIN=0; continue; } }

gameFLAG=0; if(LeftPress())/*判断是否重新开始*/ { if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85) { gameFLAG=1; continue; } } if(kbhit())/*判断是否按键退出*/ break; } } void DrawSmile(void)/*画笑脸*/ { MouseOff(); setfillstyle(SOLID_FILL,YELLOW); fillellipse(290,75,10,10); setcolor(YELLOW); setfillstyle(SOLID_FILL,BLACK);/*眼睛*/ fillellipse(285,75,2,2); fillellipse(295,75,2,2); setcolor(BLACK);/*嘴巴*/ bar(287,80,293,81); MouseGetXY(); MouseOn(MouseX,MouseY); } void DrawRedflag(int i,int j)/*显示红旗*/ { MouseOff(); setcolor(7); setfillstyle(SOLID_FILL,RED); bar(198+j*20,95+i*20,198+j*20+5,95+i*20+5); setcolor(BLACK); line(198+j*20,95+i*20,198+j*20,95+i*20+10); MouseGetXY(); MouseOn(MouseX,MouseY); } void DrawEmpty(int i,int j,int mode,int color)/*两种空格子的显示*/ { MouseOff(); setcolor(color); setfillstyle(SOLID_FILL,color); if(mode==0)/*没有单击过的大格子*/ bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8); else if(mode==1)/*单击过后显示空白的小格子*/ bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7); MouseGetXY(); MouseOn(MouseX,MouseY); } void GameBegain(void)/*游戏开始画面*/ { int i,j; cleardevice(); if(gamePLAY!=1) { MouseSetXY(290,70); /*鼠标一开始的位置,并作为它的初始坐标*/ MouseX=290; MouseY=70; } gamePLAY=1;/*下次按重新开始的话鼠标不重新初始化*/ mineNUM=0; setfillstyle(SOLID_FILL,7); bar(190,60,390,290); for(i=0;i<10;i++)/*画格子*/ for(j=0;j<10;j++) DrawEmpty(i,j,0,8); setcolor(7); DrawSmile();/*画脸*/ randomize(); for(i=0;i<10;i++)/*100个格子随机赋值有没有地雷*/ for(j=0;j<10;j++) { Mine[i][j].num=random(8);/*如果随机数的结果是1表示这个格子有地雷*/ if(Mine[i][j].num==1) mineNUM++;/*现有雷数加1*/ else Mine[i][j].num=2; Mine[i][j].flag=0;/*表示没红旗标志*/ } sprintf(randmineNUM,"%d",mineNUM); /*显示这次总共有多少雷数*/ setcolor(1); settextstyle(0,0,2); outtextxy(210,70,randmineNUM); mineNUM=100-mineNUM;/*变量取空白格数量*/ } void GameOver(void)/*游戏结束画面*/ { int i,j; setcolor(0); for(i=0;i<10;i++) for(j=0;j<10;j++) if(Mine[i][j].num==1)/*显示所有的地雷*/ {

DrawEmpty(i,j,0,RED); setfillstyle(SOLID_FILL,BLACK); MouseOff(); fillellipse(200+j*20,100+i*20,7,7);

MouseGetXY(); MouseOn(MouseX,MouseY); } } void GameWin(void)/*显示胜利*/ { setcolor(11); settextstyle(0,0,2); outtextxy(230,30,"YOU WIN!"); } int MineStatistics(int i,int j)/*统计每个格子周围的雷数*/ { int nNUM=0; if(i==0&&j==0)/*左上角格子的统计*/ { if(Mine[0][1].num==1) nNUM++; if(Mine[1][0].num==1) nNUM++; if(Mine[1][1].num==1) nNUM++; } else if(i==0&&j==9)/*右上角格子的统计*/ { if(Mine[0][8].num==1) nNUM++; if(Mine[1][9].num==1) nNUM++; if(Mine[1][8].num==1) nNUM++; } else if(i==9&&j==0)/*左下角格子的统计*/ { if(Mine[8][0].num==1) nNUM++; if(Mine[9][1].num==1) nNUM++; if(Mine[8][1].num==1) nNUM++; } else if(i==9&&j==9)/*右下角格子的统计*/ { if(Mine[9][8].num==1) nNUM++; if(Mine[8][9].num==1) nNUM++; if(Mine[8][8].num==1) nNUM++; } else if(j==0)/*左边第一列格子的统计*/ { if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; } else if(j==9)/*右边第一列格子的统计*/ { if(Mine[i][j-1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; } else if(i==0)/*第一行格子的统计*/ { if(Mine[i+1][j].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; } else if(i==9)/*最后一行格子的统计*/ { if(Mine[i-1][j].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; } else/*普通格子的统计*/ { if(Mine[i-1][j].num==1) nNUM++; if(Mine[i-1][j+1].num==1) nNUM++; if(Mine[i][j+1].num==1) nNUM++; if(Mine[i+1][j+1].num==1) nNUM++; if(Mine[i+1][j].num==1) nNUM++; if(Mine[i+1][j-1].num==1) nNUM++; if(Mine[i][j-1].num==1) nNUM++; if(Mine[i-1][j-1].num==1) nNUM++; } return(nNUM);/*把格子周围一共有多少雷数的统计结果返回*/ } int ShowWhite(int i,int j)/*显示无雷区的空白部分*/ { if(Mine[i][j].flag==1||Mine[i][j].num==0)/*如果有红旗或该格处理过就不对该格进行任何判断*/ return; mineNUM--;/*显示过数字或者空格的格子就表示多处理了一个格子,当所有格子都处理过了表示胜利*/ if(Mine[i][j].roundnum==0&&Mine[i][j].num!=1)/*显示空格*/ { DrawEmpty(i,j,1,7);

Mine[i][j].num=0; } else if(Mine[i][j].roundnum!=0)/*输出雷数*/ { DrawEmpty(i,j,0,8); sprintf(randmineNUM,"%d",Mine[i][j].roundnum); setcolor(RED); MouseOff(); outtextxy(195+j*20,95+i*20,randmineNUM); MouseGetXY(); MouseOn(MouseX,MouseY); Mine[i][j].num=0;/*已经输出雷数的格子用0表示已经用过这个格子*/ return ; } /*8个方向递归显示所有的空白格子*/ if(i!=0&&Mine[i-1][j].num!=1) ShowWhite(i-1,j); if(i!=0&&j!=9&&Mine[i-1][j+1].num!=1) ShowWhite(i-1,j+1); if(j!=9&&Mine[i][j+1].num!=1) ShowWhite(i,j+1); if(j!=9&&i!=9&&Mine[i+1][j+1].num!=1) ShowWhite(i+1,j+1); if(i!=9&&Mine[i+1][j].num!=1) ShowWhite(i+1,j); if(i!=9&&j!=0&&Mine[i+1][j-1].num!=1) ShowWhite(i+1,j-1); if(j!=0&&Mine[i][j-1].num!=1) ShowWhite(i,j-1); if(i!=0&&j!=0&&Mine[i-1][j-1].num!=1) ShowWhite(i-1,j-1); } void GamePlay(void)/*游戏过程*/ { int i,j,Num;/*Num用来接收统计函数返回一个格子周围有多少地雷*/ for(i=0;i<10;i++) for(j=0;j<10;j++) Mine[i][j].roundnum=MineStatistics(i,j);/*统计每个格子周围有多少地雷*/ while(!kbhit()) { MouseStatus(); if(LeftPress())/*鼠标左键盘按下*/ {

if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)/*重新来*/ {

gameAGAIN=1; break; } if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/ { j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ if(Mine[i][j].flag==1)/*如果格子有红旗则左键无效*/ continue; if(Mine[i][j].num!=0)/*如果格子没有处理过*/ { if(Mine[i][j].num==1)/*鼠标按下的格子是地雷*/ {

GameOver();/*游戏失败*/ break; } else/*鼠标按下的格子不是地雷*/ {

Num=MineStatistics(i,j); if(Num==0)/*周围没地雷就用递归算法来显示空白格子*/ ShowWhite(i,j); else/*按下格子周围有地雷*/ { MouseOff(); sprintf(randmineNUM,"%d",Num);/*输出当前格子周围的雷数*/ setcolor(RED); outtextxy(195+j*20,95+i*20,randmineNUM); mineNUM--;

MouseGetXY(); MouseOn(MouseX,MouseY); }

Mine[i][j].num=0;/*点过的格子周围雷数的数字变为0表示这个格子已经用过*/ if(mineNUM<1)/*胜利了*/ { GameWin(); break; } } } } } if(RightPress())/*鼠标右键键盘按下*/ {

if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*当前鼠标位置在格子范围内*/ { j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/

if(Mine[i][j].flag==0&&Mine[i][j].num!=0)/*本来没红旗现在显示红旗*/ { DrawRedflag(i,j); Mine[i][j].flag=1; } else if(Mine[i][j].flag==1)/*有红旗标志再按右键就红旗消失*/ { DrawEmpty(i,j,0,8); Mine[i][j].flag=0; } } delay(1000000); delay(1000000); delay(1000000); delay(1000000); delay(1000000); } } }

第四篇:《幼儿园游戏与课程整合研究》开题报告

课题名称:幼儿园游戏与课程整合研究

课题类别:甘肃省教育科学“十一五”规划课题

所属领域:学前教育

课题主持人:许多青

承担单位:民勤县新民小学

一、课题提出的背景及研究的意义

幼儿园游戏与课程整合在幼儿园的教学中具有十分重要的意义。从课程的发展历史来看,课程整合并非新生事物。广义上讲,人类知识从一开始出现就处在不断整合的过程之中,课程也是从诞生之日起就处在不断的整合过程中,由于分科课程的长期存在,课程整合大多局限于某一学科内部小范围的整合,学科和领域之间缺乏有机的整合。从上个世纪80年代,进入我国幼教理论研究与实践探索的视野已有20多年的发展,但不能否认的是,目前实践中的整合存在诸多偏差,很多整合仍摆脱不了“学科式”的藩篱,停留在拼凑、无机、杂乱的状态。近年来,随着对《纲要》的学习研究及对现行的《生活化幼儿园课程》和《幼儿园建构式课程》的探索和实施,对于分科课程的弊端有了明确的认识,我们清楚地认识到幼儿园课程整合的重要性,明白了游戏与课程整合,能促进幼儿全面、和谐的发展,并能给幼儿提供融生活、游戏、学习为一体的整合课程。因此,针对我园的教学实际,提出了游戏与课程整合这一研究课题。通过该课题的研究,不断深化幼儿园教育改革,为我园健康向前发展开辟了一条新路子。

幼儿园游戏与课程整合具有一定的研究背景:

第一,顺应国内外学前教育改革的潮流。近十多年来,在国外学前教育改革中,出现了许多教育课程改革方案,如美国的“早期开端”、新西兰“新课程方案”,特别是意大利的“瑞吉欧方案教学”,它强调的是从儿童出发,选择符合儿童天性的主题来实施活动整合课程,并在预设的计划中,根据儿童发展的需要允许生成课题。国内如南京、上海、台湾在几年前就开展了幼儿园活动整合课程的研究,是以“活动”、“整合”来建构课程的主要形式,依据加德纳提出的“多元智能理论”,该理论主张尊重每一个儿童的独特性,而不能将他们单一化。在新教材实施以来,各地幼教研究会及幼儿园也纷纷对“活动与课程整合”进行探讨与研究,这些教育改革的共同点就是“以儿童发展为本”,将课程改革的研究视为教育研究,( )视课程为连接实践与理论的一个桥梁。伟大教育家陈鹤琴说过:“我们不能把幼稚园里的课程象大学的课程那样独立,什么音乐是音乐,故事是故事,相互间不发生影响。应把幼儿园的课程打成一片,成为有系统的组织。因此,为顺应当今教育改革的潮流,立足于国际视野,推动幼儿园课程改革的步伐,我园不失时机地提出“幼儿园游戏与课程整合”的研究。

第二,符合新《纲要》与《基础教育课程改革纲要》的精神。新《纲要》指出:“幼儿园的教育内容是全面、启蒙性的。各领域的内容应相互渗透,从不同角度促进幼儿情感、态度、能力、知识、技能等各方面的发展。“教育活动内容的组织应充分考虑幼儿的学习特点和认识规律,各领域的内容要注重趣味性,寓教育于生活、游戏之中。以上论述反映了幼儿教育课程整体观的导向。而幼儿园活动整合课程强调的是相互渗透和有机结合,在课程实施过程中树立一日活动都是课程的整合观,将课程融入幼儿一日生活、游戏、学习之中,使幼儿在学习、生活、游戏过程中整体、和谐、全面的发展。

第三,改变当前幼儿园教育状况的需要。从实践调查表明,当前幼儿教育中,存在着一些较为突出的问题。从教师、家长的角度看:教师注重知识和技能传授而忽视情感、态度能力等方面的培养;缺乏灵活、多样、开放的教育教学形式;缺乏现代教育的观念;缺少利用现代科技改进教育方法手段。如上网查找资料,利用多媒体教学等;缺乏有效教育资源的利用,如家长、社区的资源。从家长的角度看:过早的定向教育,注重的是知识的传授、灌输,期望的是孩子学会念几首儿歌、会写几个字而忽视幼儿素质的全面发展,缺乏与幼儿园的交流与互动。从幼儿的角度看,主要的问题有:幼儿缺乏自主性和独立性;缺乏自主的探究精神;幼儿与物交往的机会多于与同伴交往;缺少走出课堂教学,到大自然和社区去学习的实践活动等等。有鉴以此,力求通过“活动整合课程”的实践研究来解决存在的这些问题,并带动整个幼儿园工作的改革。

二、课题研究的目标、内容

(一)研究目标

1.以《纲要》为依据,使幼儿园课程以游戏为主,让幼儿真正成为活动的主人,实现游戏与教学的最优化的结合。

2.让游戏精神成为贯穿和融入整个幼儿园课程实施的灵魂或主线。

3.通过研究,提高教师的教研水平,不断改善教育行为和优化教学过程,将学习理论与教学实践相结合,总结经验,写出游戏与课程整合研究的论文,积累相关资料,有效地完成课题研究。

(二)研究内容

幼儿园游戏与课程的整合研究,主要包括游戏主题与课程的整合;游戏指导与课程的整合;游戏材料与课程的整合。

1.构建教师学习模式,探索游戏与幼儿园课程整合的方法。

2.教师通过集体备课,发挥集体智慧,研究游戏在幼儿园课程中的地位与作用。

3.完成子课题研究:

(1)游戏与语言课的整合;(2)音乐游戏与课程的整合;

(3)游戏与社会的整合;(4)游戏与科学的整合;

(5)游戏与健康的整合;(6)游戏与艺术的整合。

三、课题研究的思路及方法

(一)研究思路

1.理念引领:较系统地学习蒙台梭利、皮亚杰、加德纳“多元智能理论”等先进的教育理念,以《纲要》为依据,指导教师在理念上确立正确的研究与

第五篇:道路勘测设计课程设计报告

土木08071208080702 柴远龙

一、设计目的和要求

通过课程设计教学所要达到的目的是:使理论知识与实践相结合,熟悉路线设计的步骤和方法。进一步巩固和加深及运用课堂上所学的勘测设计原理、标准、方法、理论基础知识,培养学生的分析问题、解决问题、独立设计的能力,使知识系统化,从而为毕业实习和设计打下基础。

二、课程设计的任务

学生应该完成1560米的路线设计图标、计算和说明。公路等级为三级公路,设计车速为30KM/h。

三、路线起讫点

本路段起点QD:K0+000为所给地形图坐标(41950,48150),终点ZD:K2+

四、沿线地理情况

该工程位于XX省惊雷,公路自然区划为XX。整个地形、地貌特征XX,地形起伏XX,最高海拔为XX米,河谷海拔高为XX米,总体高差在XX米左右。

五、沿线建筑材料等建设条件

沿线地方材料有:碎石、砾石、砂、石英、粉煤灰等。其他材料如沥青、水泥、矿粉需到外地采购。

六、参考资料

(1)交通部《公路工程设计标准》(JTJB01-2003),北京:人民交通出版社,2004年

(2)交通部《公路路线设计规范》(JTGD20-2006),北京:人民交通出版社,2004年

(3)交通部《公路路基设计规范》(JTGD30-2004),北京:人民交通出版社,2004年

(4)交通部《公路工程基本建设项目设计文件编制方法》,北京:人民交通出版社,1996年

路线设计

上一篇:水利局的整改报告方案下一篇:市领导在环保会上讲话

本站热搜