毕业设计-学生论坛的设计与实现论文.doc_第1页
毕业设计-学生论坛的设计与实现论文.doc_第2页
毕业设计-学生论坛的设计与实现论文.doc_第3页
毕业设计-学生论坛的设计与实现论文.doc_第4页
毕业设计-学生论坛的设计与实现论文.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)毕业设计(论文) 学生论坛的设计与实现学生论坛的设计与实现 学生论坛的设计与实现学生论坛的设计与实现 摘要摘要 论坛也称为 bbs,bbs 是 bulletin board system 的缩写,意思是电子公告 版,一种在 internet 上常见的用于信息服务的 web 系统,它的主要服务是用来 帮助浏览者相互沟通、吸引用户、服务用户的。他起源于 20 世纪 80 年代初, 最初只是用于发布公告信息和讨论问题的在线交流平台,后来随技术的发展与 网络的普及功能越来越强大。由于得到了广大网友的欢迎,越来越多的商业网 站开始重视论坛,把论坛作为与用户交流的平台和在线技术支持与服务的平台。 论坛的功能是多种多样的,现在流行的各种论坛插件让这些功能更加的多元化, 但论坛的基本功能依然是信息的发布与讨论,在实现基本功能的同时也要丰富 论坛的其他功能,如建立网友的荣誉系统,美化论坛的界面。按照论坛的基本 功能,论坛的开发可以归结为 web 开发技术和数据库应用技术。目前主要的开 发技术有 asp、asp.net、php、jsp 等,本文主要采取 asp 为开发技术,并 使用了一些 vbscript 语言来实现论坛基本功能。目前常用的数据库有 mysql、oracal 等,在数据库的选取上,为了简化架设的实现,采取 microsoft 公司的 access 作为数据库平台,这样在单机上架设一个简单的论坛几 乎不需要安装任何程序。本文设计的流程是从系统的需求分析开始,确定系统 的流程与设计,到模块的划分,再到数据加结构的设计,最后开始每个模块的 编程与开发。 关键字:关键字:论坛;internet;javascript;asp;数据库 design and implement of students forum abstract forum, also called bbs, is short for bulletin board system. bbs is a web system that often seen on internet for information service. its main purpose is to help the viewer to communicate with each other, attract user and serve them. bbs was originating in the 1980s. at first its only an online flat roof that is used for delivers announcements and discusses problems. with technical developments and the popularity of internet, its function becomes more and more powerful. welcomed by large amount of net friends, more and more business websites pay regard to the bbs and make bbs an online communicate flat roof for delivers announcements and discusses problems. forum combines many functions in one. many kinds of plug-ins in the fashion help these functions to be more disparate, however, the main function of bbs is to deliver announcements and discuss problems. based on that, other functions of bbs could be extended, for example, honor system of the net friends and sugar up the interface of the forum. due to the main function of the bbs, developments of forum come down to developments in technology and application technology in database. now we have asp, asp.net, php, jsp and so on. this paper use asp and some vbscript computer language to carry out the mainly function of the bbs. databases like mysql and oracal is popular now days. we choose access produced by microsoft company. it is easy to span a simple forum, hardly any programs to install. the design flow of this paper starts with analyzing the needs of the system, by confirming the processes and designs of the system, dividing modules, then designs of date and structures, finally developments and programming of every module. key words:forum;internet;javascript;asp;database 目目 录录 摘要2 第 1 章 系统功能设计5 1.1 引言5 1.2 需求分析6 1.3 功能设计7 1.4 扩展功能设计10 第 2 章 系统架构与数据库设计11 2.1 功能模块的划分11 2.2 数据库设计14 第 3 章 基本设计16 3.1 论坛首页设计16 3.2 数据库连接函数16 第 4 章 模块的实现18 4.1 用户模块18 4.1.1 用户的登陆18 4.1.2 用户的注册18 4.2 帖子模块23 4.2.1 发布、修改、删除帖子23 4.2.2 帖子浏览模块24 4.2.3 帖子搜索模块25 4.3 管理人员模块25 4.3.1 系统参数设置25 4.3.2 用户授权26 4.3.3 数据库的备份与还原27 第 5 章 论坛的架构28 5.1 安装环境和参数设置28 5.2 运行论坛30 第 6 章 结论32 参考文献33 致 谢34 附录 a asp 的介绍35 附录 b ado 对象42 第第 1 1 章章 系统功能设计系统功能设计 1.11.1 引言引言 随着网络的越来越普及,人们越来越关于这样一种交流平台论坛。很 多商业网站都开设自己论坛来提供交流和服务,也有很多的个人网站和个人论 坛的出现,论坛已经不光是一种交流平台,甚至是成为了实现自我价值的一个 舞台。正因为论坛越来越重要,所以论坛的维护也变成了一种职业,而更好的 维护则需要从设计这个层面来了解和进行。 在论坛里大家最熟悉的就是用户浏览论坛中已有的内容,针对别人的主题 展开讨论,也可以发表自己的观点供大家品评。同时为了防止用户发布一些不 健康不合法的内容,需要有管理人员来对这些内容进行删除、修改。而且用户 想在论坛发布信息则要求他注册,这样来控制用户发布信息和方便管理者操作 用户的信息。论坛也要有多个版面和分区,用来区分各种帖子的内容范畴,方 便整理和管理。所以论坛的基本功能就是要实现用户的数据库管理和帖子的数 据库管理,以及怎么样让这些数据库和网页的操作联系起来。 1.21.2 需求分析需求分析 要设计一个一个论坛,首先要分析论坛里需要那些内容,以及各种内容之 间的关系。 首先列出论坛常用的名词:用户、版面、公共信息、帖子、主题、积分、 称号、版主、注册信息、管理员、系统参数。 对于以上名词可以精简。主题是帖子的一个特例、积分和称号是用户的一 个属性、版主是增加了权限的用户,注册信息是用户的具体属性。 所以具体的对象有:用户、版面、公共信息、帖子、管理员、系统参数。 具体的操作包括:管理员对用户、帖子、版块的管理;客人和用户的对版 块、帖子的浏览;客人的注册;用户的发帖、回帖、搜索等操作。 把具体的对象和具体的操作相联系,我们可以归结出论坛基本操作的流程 图,如图 1-1。 浏览帖子回 帖浏览版块 搜 索 客 人 注册登陆用 户发 帖 管理用户管理帖子 管理版块管 理 员 图 1-1 论坛基本功能流程图 图 1-1 中个将具体的对象和操作直观的表达了出来,为了更具体的细化对象 和操作的关联,用来划分开发的模块,我们将对象与对象之间的关联可以建立 出一张表,对象如表 1-1。 表 1-1 各对象间的关联表 用用 户户版版 面面公共信息公共信息帖帖 子子管理人员管理人员系统参数系统参数 用 户 注 册 修 改 浏 览 联 系 浏 览浏 览 发 布 浏 览 发 布 修 改 删 除 特殊操作 版 面 公共信息 帖 子 管理人员 删 除 授 权 添 加 删 除 修 改 添 加 删 除 修 改 添 加 删 除 修 改 设 置 系统参数 表 1-1 中的对象是单向关联,是指左侧对象对上方对象的活动。表示没有 关联,表示存在单向关联。通过以上设计,论坛需要些什么以及所需要的对 象之间存在着怎么的关系就有了基本的概念。 1.31.3 功能设计功能设计 表 1-1 中用户关联的对象是自身、版面、公共信息、帖子。分别根据用户与 这些对象的联系给出一个明确的菜单,如表 1-2。 表 1-2 用户功能列表 功能名称功能名称说明说明 用户注册 用户在论坛填写必要信息后就可以注册为注册用户,并能在 登陆后对注册信息进行更改 用户登陆 注册后的用户可利用用户名和密码在论坛登陆 浏览其他用户信息 用户注册后可以查看其他用户的公开信息 与其他用户联系 可以在论坛内给其他用户私下留言,或直接发送邮件等 浏览版面 用户可以看到以列表形式展现的版面信息和版面说明 浏览发布公共信息 未登陆的用户可以浏览公共信息,登陆后可以发布允许范围 内的公共信息 浏览帖子 用户可以以列表形式浏览帖子主题及其全部内容 发布修改删除帖子 用户在登陆后可以发布帖子、修改自己的帖子,被给予版主 权限后还可以编辑、修改、删除权限范围内的其他用户帖子 对帖子特殊操作 主要针对版主权限用户,对帖子进行置顶、加精华等特殊操 作,是帖子主题不同于其他主题 版面、公共信息、帖子都没有和其他对象的关联,都属于被动的对象,是 被其他对象所操作的,因此针对它们的功能主要是有其他对象产生。版面和帖 子是有一定关系的,可以看作是对帖子内容的归类,类似文件夹与文件的关系, 有时候可以认为版面是帖子的一个属性。 对于管理员的功能,应该认为管理员是论坛的特殊群体,工作是设置论坛 参数规则和维护论坛的正常运转。管理员可以和所有对象产生关联,所以其功 能设定也很丰富,如表 1-3。 表 1-3 管理员功能列表 功能名称功能名称说明说明 用户删除 对于一些蓄意破坏的用户,删除其身份,不允许其存在 用户权限 对于一个具有管理能力的用户给予一些特殊的权限,让他们 在权限范围内帮助管理和维护论坛 版面管理 版面是论坛的枝干,要设定论坛需要的合适版面,让论坛的 功能更明细,分类更规范,方便大家的浏览 公共信息管理 公共信息是向用户展现论坛状态的部分,由于信息的普遍性, 其删除和修改权限需要由管理人员来完成 帖子管理 帖子是论坛的叶子,是基本数据库,反映了论坛使用者和管 理者的水平,所以需要管理人员的全权管理来规范其内容 设置系统参数 系统参数包含的内容很多,直接关系到论坛的正常运行,包 括网址在内的各种参数全部要由管理人员统一设置和变更 对于管理员和用户功能关系可以细化成以下几个相关用例图。 论坛设置参数,可以把设置一组参数作为一个方法,也可以把设置一个参 数作为一个方法,如图 1-2。 管理员设置论坛参数 论坛分页参数 基本参数 用户相关参数 图 1-2 论坛对象的相关用例图 各个版块有浏览列表和管理两个操作,管理方法又包括了创建、修改和删 除这 3 个子方法,如图 1-3。 管理员管理版块 创建版块 修改版块 删除版块用户浏览列表 图 1-3 版块对象的相关用例图 帖子有浏览、发帖、回帖、搜索和管理 5 种方法,浏览方法又可以分列表 和查看 2 个子方法,管理方法又可分编辑、删除、置顶、转移、加精华 5 个子 方法,如图 1-4。 管理员用户管理帖子 删除 转移 置顶 加精华编辑发帖 回帖 搜索 浏览 图 1-4 帖子对象的相关用例图 用户类有注册、登陆和管理 3 个方法,管理方法又分为添加、删除、设置 权限 3 个子方法,如图 1-5。 管理员用户管理用户 删除 添加 设置权限发帖 回帖 浏览 图 1-5 用户对象的相关用例图 这样,表 1-2 和 1-3 就分别有了各自的归属对象。 论坛一般存在两种用户:注册用户和管理员。用户的权限是向下覆盖的, 即上级权限包含下级权限。这样论坛的基本功能就可以从各种需求中筛选出来 了,即发帖、浏览帖子、回帖。基本功能就是构成论坛系统的必要功能,具备 这些功能的 web 系统即是论坛。 1.41.4 扩展功能设计扩展功能设计 具备了发帖、浏览帖子、回帖的 web 系统就构成论坛了,但是这样的论坛 很简单,没有吸引力,用户使用起来也不会很舒服,无论是作为商业还是个人 论坛都是没有竞争力的。所以需要为其添加一些更人性化的功能使内容更丰富。 用表格形式列出可能的扩展功能,如表 1-4。 表 1-4 扩展功能列表 功能名称功能名称说明说明 用户控制自己的信息用户可控制自己的信息是否公开 用户登陆添加验证码 登陆时需输入验证码,如登陆信息错误则重新生成验证码。 这样可以防止一些软件偷取用户名和密码 站内短信 让两个用户能在论坛内更方便的交流 帖子评价 给予用户对一个帖子评价好坏的功能 帖子发布添加多媒体 如可在帖子内使用表情图片、插入 flash、音乐等功能 帖子类别多样化 让用户可以发起投票、买卖等功能的帖子 帖子收藏 在论坛中加入搜索但效率却不一定很高,对于好的帖子为了 方便用户以后更方便找到这个帖子,可以让用户收藏帖子 用户等级 建立一个荣誉体系,对于对论坛贡献大的用户给予一定的荣 誉称号或者高的论坛等级 论坛情况显示 让用户直接看到一些论坛统计数据,如主题总数、在线人员 等 数据备份 论坛最重要的就是数据库,但数据库系统的安全并不是 100% 的,所以为了论坛能持续发展,需要定期对论坛数据库进行备 份 非法言论过滤 对于一些非法言论或不良词汇可以在论坛进行过滤设置,一 旦有人使用也会被过滤掉而不至于造成不良影响 非法 ip 限制 对于一个蓄意捣蛋的用户,限制他的 ip 不能访问论坛,但这 个有很大的局限性,一般情况下用处不会很大 添加了以上功能,论坛就显得更具有亲和力了,而且也更具有实用性。 第第 2 2 章章 系统架构与数据库设计系统架构与数据库设计 2.12.1 功能模块的划分功能模块的划分 模块的划分主要是按每一个对象的操作来归类。论坛操作的对象在第一章 里归纳为用户、版面、公共信息、帖子、管理员、系统参数这 6 个对象,所以 就要针对这 6 个对象划分功能模块。 (1) 用户:有两个模块,一个是用户注册、登陆、修改信息等功能组合,是 用户对自身的操作;另一个是管理人员对用户进行删除、授权的操作;如表 2- 1。 表 2-1 用户功能模块列表 模块模块模块包含的功能模块包含的功能 用户注册 用户登陆 浏览其他用户信息 与其他用户联系 用户控制自己的信息 用户登陆添加验证码 用户模块 用户等级 用户删除 管理人员模块 用户授权 (2) 版面:有两个模块,一个是浏览模块,一个是管理模块。如表 2-2。 表 2-2 版块功能模块列表 模块模块模块包含的功能模块包含的功能 版面浏览模块 浏览版面 版面管理模块 版面管理 (3) 公共信息:将用户发布和浏览公共信息的功能划分为一个模块,对象是 用户对公共信息的操作;管理员对公共信息的操作划分为另一个模块。如表 2- 3。 表 2-3 公共信息功能模块列表 模块模块模块包含的功能模块包含的功能 公共信息显示模块 浏览、发布公共信息 公共信息管理模块 公共信息管理 (4) 帖子:帖子是论坛的基本,其功能是最多最复杂的,但仍然可以分为两 个模块,根据操作对象来区分。如表 2-4。 表 2-4 帖子功能模块列表 模块模块模块包含的功能模块包含的功能 浏览帖子 发布、修改、删除帖子 对帖子特殊操作 帖子评价 帖子发布增加多媒体 帖子类别多样化 帖子移动(单个) 帖子收藏 帖子模块 帖子搜索 帖子管理 帖子管理模块 帖子移动(批量) (5) 管理员:管理员主要是对其他对象进行操作,是对其他模块的操作人员, 同时系统参数设置模块的功能也可以划分进来。如表 2-5。 表 2-5 管理员管理功能模块列表 模块模块模块包含的功能模块包含的功能 设置系统参数 数据备份 非法言论过滤 管理员管理模块 非法 ip 限制 通过以上分析,论坛的模块划分也就完成了。但如果要把整个论坛系统完 整的架构出来,还要分析模块与模块之间的关系,把零散的功能模块用一条主 线串联起来。对于论坛系统来说,联系各个模块的主线是使用者的权限,用户 能使用论坛的哪些功能是由用户的权限决定的,论坛的每个功能都与相应的权 限对应。同一类用户使用的功能模块。是以使用者为中心连接起来的。另外, 操作同一类事物的功能模块,也是相互关系的。 浏览模块与发帖回帖模块、管理帖子模块关联,是由论坛的系统流程决定 的;管理版块模块与浏览模块关联,是有帖子与版块的父子关系决定的,帖子 依附与版块,先有版块后有帖子,帖子必须发表在某个版块中;管理用户模块 与注册登陆模块关联,是由同一类对象用户决定的,注册后获得论坛的身份, 成为用户,所有的用户需要接受管理员的管理,用户登陆证明自己在论坛中的 身份。分析了这些关系,我们可以得到论坛系统的整体架构,如图 2-1。 管 理 员 管理用户 管理版块 管理帖子 用 户 选择版块 浏览帖子 注册登陆 发帖回帖 搜 索 图 2-1 论坛整体架构图 对于用户使用的模块成为前台模块,管理员使用的模块称为后台模块。其 划分如图 2-2。 图 2-2 功能模块划分 2.22.2 数据库设计数据库设计 论坛系统信息的储存一般是在文件或者数据库中,相比之下数据库要简单 高效,能对论坛进行更好的控制,也能对资料提供一些严正和保护。所以目前 流行的论坛都是使用的数据库系统。使用数据库的首先就是要设计数据库的表 结构,一个设计良好的数据库结构可以提高效率、方便维护,而且对于可能的 扩充也会留有余地。 论坛系统 论坛系统论坛系统 用 户 模 块 版 面 浏 览 模 块 公 共 信 息 显 示 模 块 帖 子 模 块 用 户 管 理 模 块 版 面 管 理 模 块 公 共 信 息 管 理 模 块 帖 子 管 理 模 块 管 理 人 员 管 理 模 块 第第 3 3 章章 基本设计基本设计 3.13.1 论坛首页设计论坛首页设计 当用户打开论坛时,首先看到的是论坛首页,用户从首页可以看到和论坛 相关的内容,发帖数、用户数量和主要版面的情况等。首先这个页面应该尽量 的美观,操作截面也要看起来简单易用而且具有实用性。 一般论坛的首页分 4 个部分,上面是论坛的顶部 logo,一般这个要体现出 论坛的一个主题;接着是论坛的导航部分,包括了用户状况和论坛了基本状况, 且这两个状况应该左右分开;再下面就是论坛主题部分的各个版面信息;最下 面就是论坛用户在线状况论坛当前的情况。 基本上可能变动大的只有版面部分,所以其他变动小的部分可以做成公用 文件,让其他页面可以重用。这 3 部分不写在文件里,而是直接写进数据库中。 如程序 3-1。 首页里用到了很多“”包括的字符,里面的内容是变量,因为论坛信息 会随一些操作而改变而不同的显示状态,这些信息将随这些状态的改变而改变 成及时的真实的状态。这些是要与数据库连接的,所以下面将说明数据库的连 接函数。 3.23.2 数据库连接函数数据库连接函数 数据库连接在论坛运行中是必不可少的,把这部分单独做成一个函数,在 需要的时候只需要调用这个函数就可以了,而不用每次去写连接程序,这种复 用可以让操作更加方便快捷。 选择的 access 作为数据库,功能不强大,不能让很多人连接,但是可以省 掉很多设置,对机器要求也相对要低得多,适合用 pc 机架设论坛。asp 中与数 据相关紧密的是 ado,要让 ado 对象能存取数据库,最重要的东西是 ole db 和 odbc 的驱动程序,必须具备对应数据库的其中一种驱动程序,ado 对象才能进 行存取。因为根据 microsoft 公司的说法,ole db 驱动程序的执行效能比 odbc 要好,所以选择用 ole db 驱动程序。 利用 ado 的 connection 来建立同数据库的连接。建立 adodb.connection 对象,使用此对象的 open 方法打开数据库。用 access 在论坛路径下建立一个 数据库存储路径“data” ,然后建立一个名为 mybbs7.mdb 的数据库,建立之前 数据库设计中的表。利用 microsoft 公司的 ole db 机制连接 access,用 ole db 不用建立 odbc 就可以直接连接 access 数据库。 sub 声明了函数 connectiondatabase,end sub 结束这个函数。dim 声明了 变量 connstr,这个变量是用来存储连接数据库信息的。变量 db 声明了数据库 文件所在的路径。为 connstr 赋值是声明 ole db 连接数据库的方式,data source 后面跟的是数据库文件所在的路径。server.mappath 是 asp 内置 server 对象一个函数,用来取得网站目录下文件的绝对路径。712 行是一个判 断错误的信息,如果连接出错,asp 的 err 对象判断系统给出错误的存在,然 后清除。 第第 4 4 章章 模块的实现模块的实现 4.14.1 用户模块用户模块 .1 用户的登陆用户的登陆 首先看用户的登陆。在用户信息表里用户名和用户密码字段是用来验证用 户身份的,用这两个字段来写验证用户登陆的程序。 登陆页面命名为 login.asp,这个页面包含了输入用户名和密码、cookie 选项、和隐身登陆选项。隐身登陆只是一个判断登陆状态的标识。主要是验证 用户身份和把用户信息写入 cookie。 首先是一个查询用户身份的 sql 语句,输入某个用户后将从数据表 user_t 中查找该用户。set rsuser=mybbs.execute(sql)一句是用来执行这条 sql 语句, 同时返回一个包含了查询信息的记录集。if rsuser.eof and rsuser.bof then 一句判断用户信息是否存在。如果不为空,就将把数据集的信息写入储存用户 信息的字符串中。if trim(password)10 or len(request.form(“psw“)“+template.strings(13) (3) 电子邮件的验证:邮件的地址一般是“用户名域名” ,采用 vbscript 的函数 split(),可以返回一个一维数组。在参数部分可以设置“”为字符串 的标识界限。用这个符号来拆分电子邮件地址,形成数组。ubound()函数返回 了数组维数的最大可用下标。 dim names,name,i,c is validemail=true names=split(email,”) if ubound(names)“0“ then set rs=mybbs.execute(“select userquesion,useranswer,username,usergroupid from dv_user where username=“&username&“) else set rs=mybbs.execute(“select userquesion,useranswer,username,usergroupid from dv_user where username=“&username&“ and usergroupid3“) end if if rs.eof and rs.bof then showerr template.strings(8) exit sub elseif rs(3) m. 北京: 清华大学出版社 .2002 10邓文渊, 陈惠贞, 陈俊荣. asp 与网页数据库设计 m. 北京 中国铁道出 版社. 2001 11张海藩.软件工程导论(修订版). 北京:清华大学出 版社 2002 12张海藩,牟永敏。面向对象程序设计实用教程。 北京 清华大学 出版社 2001 致致 谢谢 光阴似箭,四年的大学生活转眼即将过去。这四年是我人生中最重要的阶 段。在这期间,我幸运的遇到了许多好老师,在他们的帮助和指导下,我学到 了大量专业知识及学习方法,这些知识和方法为我日后进一步学习打下坚实基 础。在此,我要感激所有教过我,给予我帮助的老师们,正是他们无私奉献精 神和诲人不倦的育人态度,才使我顺利成长。 感谢大学四年中所有的任课老师,感谢他们对我学习上的帮助和影响,他 们特色的教学风格,渊博的专业知识,高度的责任感给我留下深刻印象。 感谢大学四年和我一同走过的朋友们,与他们一起学习,生活,让我拥有 许多难忘时光。我们共同经历成长中的一点一滴,无论是欢笑还是泪水,我都 将铭记一生。 本论文是在指导老师指导下完成的。在本人毕业设计过程中, 。父母的鼓励 和支持帮助作者克服了许多困难,使得本科学业顺利完成。作者向邓老师及本 人父母表示衷心的感谢!另外,同窗好友蒋鹏也给予了大力的帮助和悉心的指 导,借此机会,一并向他表示感谢! 感激大学四年在这里度过,它给我留下了最美好的回忆。 anyway, i was here in amber some years ago. not doing much of anything. just visiting and being a nuisance. dad was still around, and when i noticed that he was getting into one of his grumpy moods, i decided it was time to take a walk. a long one. i had often noticed that his fondness for me tended to increase as an inverse function of my proximity. he gave me a fancy riding crop for a going- away present-to hasten the process of affection, i suppose. still, it was a very nice crop-silver-chased, beautifully tooled-and i made good use of it. i had decided to go looking for an assemblage of all my simple pleasures in one small nook of shadow. it was a long ride-i will not bore you with the details-and it was pretty far from amber, as such things go. this time, i was not looking for a place where i would be especially important. that can get either boring or difficult fairly quickly, depending on how responsible you want to be. i wanted to be an irresponsible nonentity and just enjoy myself. texorami was a wide open port city, with sultry days and long nights, lots of good music, gambling around the clock, duels every morning and in-between mayhem for those who couldnt wait. and the air currents were fabulous. i had a little red sail plane i used to go sky surfing in, every couple of days. it was the good life. i played drums till all hours in a basement spot up the river where the walls sweated almost as much as the customers and the smoke used to wash around the lights like streams of milk. when i was done playing id go find some action, women, or cards, usually. and that was it for the rest of the night. damn eric, anywayl that reminds me again . . . he once accused me of cheating at cards, did you know that? and thats about the only thing i wouldnt cheat at. i take my card playing seriously. im good and im also lucky. eric was neither. the trouble with him was that he was good at so many things he wouldnt admit even to himself that there were some things other people could do better. if you kept beating him at anything you had to be cheating. he started a nasty argument over it one night-could have gotten serious-but gerard and caine broke it up. give caine that. he took my part that time. poor guy . . . hell of a way to go, you know? his throat . . . well, anyhow, there i was in texorami, making music and women, winning at cards and jockeying around the sky. palm trees and night- blooming wallflowers. lots of good port smells-spices, coffee, tar, salt-you know. gentlefolk, merchants, and peons-the same straights as in most other places. sailors and assorted travelers passing in and out. guys like me living around the edges of things. i spent a little over two years in texorami, happy. really. not much contact with the others. sort of postcard like hellos via the trumps every now and then, and that was about it. amber was pretty much off my mind. all this changed one night when i was sitting there with a full house and the guy across from me was trying to make up his mind whether or not i was bluffing. the jack of diamonds began talking to me. yes, that is how it started. i was in a weird frame of mind anyway. i had just finished a couple very hot sets and was still kind of high. also, i was physically strung out from a long days gliding and not much sleep the night before. i decided later that it must be our mental quirk associated with the trumps that made me see it that way when someone was trying to reach me and i had cards in my hand-any cards. ordinarily, of course, we get the message empty-handed, unless we are doing the calling. it could have been that my subconscious-which was kind of footloose at the time-just seized on the available props out of habit later, though, i had cause to wonder. really, i just dont know. the jack said, “random.“ then its face blurred and it said, “help me.“ i began getting a feel of the personality by then, but it was weak. the whole thing was very weak. then the face rearranged itself and i saw that i was right. it was brand. he looked like hell, and he seemed to be chained or tied to something. “help me,“ he said again. “im here,“ i said. “whats the matter?“ “. . . prisoner,“ he said, and something else that i couldnt make out. “where?“ i asked. he shook his head at that. “cant bring you through,“ he said. “no trumps, and i am too weak. you will have to come the long way around“ i did not ask him how he was managing it without my trump. finding out where he was seemed of first importance. i asked him how i could locate him. “look very closely,“ he said. “remember every feature. i may only be able to show you once. come armed, too. . . .“ then i saw the landscape-over his shoulder, out a window, over a battlement, i cant be sure. it was far from amber, somewhere where the shadows go mad. farther than i like to go. stark, with shifting colors. fiery. day without a sun in the sky. rocks that glided like sailboats across the land. brand there in some sort of tower-a small point of stability in that flowing scene. i remembered it, all right. and i remembered the presence coiled about the base of that tower. brilliant. prismatic. some sort of watch-thing, it seemed-too bright for me to make out its outline, to guess its proper size. then it all just went away. instant off. and there i was, staring at the jack of diamonds again, with the guy across from me not knowing whether to be mad at my long distraction or concerned that i might be having some sort of sick spell. i closed up shop with that hand and went home. i lay stretched out on my bed, smoking and thinking. brand had still been in amber when i had departed. later, though, when i had asked after him, no one had any idea as to his whereabouts. he had been having one of his melancholy spells, had snapped out of it one day and ridden off. and that was that. no messages either-either way. he wasnt answering, he wasnt talking. i tried to figure every angle. he was smart, damn smart. possibly the best mind in the family. he was in trouble and he had called me. eric and gerard were more the heroic types and would probably have welcomed the adventure. caine would have gone out of curiosity, i think. julian, to look better than the rest of us and to score points with dad. or, easiest of all, brand could have called dad himself. dad would have done something about it. but he had called me. why? it occurred to me then that maybe one or more of the others had been responsible for his circumstances. if, say, dad was beginning to favor him . . . well. you know. eliminate the positive. and if he did call dad, he would look like a weakling. so i suppressed my impulse to yell for reinforcements. he had called me, and it was quite possible that i would be cutting his throat by letting anyone back in amber in on the fact that he had gotten the message out. okay. what was in it

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论