骑士源码网
① 网游的发展史
以下停运网游不完全名单,你可曾在这些虚拟世界存活过?
A
A3 2006年1月23日 北极冰
B
霸业 2003年8月1日 乐乐在线娱乐
哔哔曼 2005年 圣堂科技
冰冰帮 2006年 华友世纪
百战天虫 2004年 亚联游戏
碧雪情天 2005年 新浪igame(已复活)
C
重生 2003年4月1日 北京华义
宠物王 2003年 第三波软件
成吉思汗 2003年5月 盘古软件
赤龙剑心 2006年 万马网络
D
大法师 2003 年 华义国际
豆豆秀 2006年 谱索网络
大清帝国 2006年 宝德网络
帝国在线 2003 年 时达铭泰
第四世界 2003 年 乐乐科技
夺宝奇兵 2005年 金山华络
F
封神传说 2003年 由智冠电子
疯狂坦克 2005年7月27日 盛大网络
G
咕噜咕噜 2004年 友联坊
广东麻将 2005年 广州正联
古龙群侠传 2003年 智傲软件
怪兽总动员 2003年12月17日 昱泉国际
H
红月 2005年 亚联游戏
海盗时代 2005年 北京移彩
火线任务 2005年1月 东方资通
欢乐潜水艇 2003年 上海热线
黑暗之光 2003年 宇智科通
J
精灵 2004年8月23日 网易
骄城 2002年7月 由第九城市
机甲战神 2004年 万向通信
绝对女神 2005年2月 北京金玉天立科技
机动战士敢达在线 2007年6月15日 北京中视网元
K
科洛斯 2006年3月31日 国研科技
开天 2005年 奥美电子
孔雀王OL 2003年5月26日 奥美电子
L
领土 2004年 上海聚商科技
龙魂 2006年 联梦在线
轮回 2005年 时轮宝数码
流星学院 2005年4月14日 上海森蓝软件
流星蝴蝶剑 2005年 昱泉国际
M
魔剑 2003年年末 天人互动公司
梦想 2005年 硅谷动力
秘境 2004年 南京阳展科技公司
魔幻蛇 2004年 深圳网城娱乐
MK星云战记 2004年 O2OE
马场大亨 2003年 新先科技
魔幻森林 2004年 北京大娃娃网络科技
梦幻之星 2006年5月9日 朝华数字娱乐
P
嘭嘭帮 2004年 MagicSky
苹果派 2004年 中青旅创格科技
碰碰i时代 2004年 北京泰德时代在线
破碎银河系 2005年 上海盛大网络
Q
千年 2006年3月 北极冰文化传播
齐天大圣OL 2002年11月1日 金智塔
骑士 2006年11月15日 搜狐
R
荣耀 2005年 赛博先锋
S
圣战 2005年 中游中心
神泪 2003年 上海创驰
神兵传奇 2003年7月1日 金智塔
神曲 2006年 上海软金
神话 2005年4月18日 聚友网络
3D西游 2005年 唐人互动
圣者无敌 2004.05 北京捷三峰
搜神记 2005年 欢乐时代
神之领域 2004年 上海兆鸿
水晶时代 2005年 南京万马
三国世纪 2003年 华彩
使命 2004年4月1日 世模科技
神泪 2004年8月中旬 上海创驰软件
赛车OL 2005年 易时空
神州天戈 2005年 万向通信
神甲奇兵 2004年 琦乐信息
树世界 2006年8月16日 SEC
食神 2006年 卓智时代
T
天煞 2003年 华网汇通
天地 2005年年初 北京亚洲互动(海虹体系)
天空之城 2003年4月 上海风之谷数字娱乐科技
天翼之链 2006年2月28日 上海天纵网络
天剑 2003年5月 昱泉国际
天使 2003年10月31日 运营商高嘉科技
W
武魂 2003年 中公网
网络三国 2004年 智冠科技
网金2 2006年3月 金山华络(已复活)
无尽的任务 2005年年初 上海育碧
无尽的任务2 2006年3月30日 游戏橘子
万王之王 华彩软件/亚洲互动 (无法确定具体时间,请您指出)
万王之王2 2007年3月20日 亚洲互动
武林外史 2007年3月20日 盛大网络
X
星际OL 2006年09月08日 上海坤迈
笑傲江湖 2006年4月1日 昱泉国际
新英雄门 2005年 盛大网络
星河贝贝 2003年 金智塔
星战情缘 2005年 嘉连互动
幸福花园 2005年 第三波
新西游记OL 2004年 21cn.com
西游伏魔录 2004年 中机电投资
新绝代双骄 2006年 游戏新干线
咻咻大作战 2006年 卓智时代
Y
英雄世纪 2004年 安捷数码
英雄 2006年 山东聚丰(已复活)
永恒 2004年12月31日 金山华络
雅典娜 2005年 深圳谋略高手
遗忘传说OL 2003年9月1日 上海依星软件
佣兵传说 2004年9月7日 汉娃娃软件
Z
战场 2003年 亚联游戏
② 帮我推荐一些好玩的单机游戏(高分悬赏)
轩辕剑系列:
轩辕剑3、天之痕、苍之涛。轩辕剑4也算不错。
仙剑系列:
仙剑一、仙剑三、仙剑四(4代超赞啊!!!)
幻想三国志系列:3部都可以试试,最喜欢2代。
剑侠情缘系列:
ARPG,2代白金版是我的RPG启蒙游戏。新剑侠情缘也很不错,月影传说么……游戏本身还好,但是我不喜欢主角杨影枫。
天地劫系列:
高难度的完美RPG。如果时间不够,建议先玩《幽城幻剑录》。无可比拟的系统、构思还有剧情,一定会让你感动的。(玩时务必备好补丁攻略,否则后果自负)
天河传说:
最大的特典就是别出心裁,真正是一群热爱游戏的制作人用心打造出来的精品。玩的时候,有一种奇妙的难以言述的感觉,嘿嘿~
绝代双骄系列:
我就只玩了3代,感觉一般。听说2代是最好玩的。
楚留香新传:
根据古龙故事改编,所以个人觉得剧情相当的好——但似乎真正的古龙迷们非常不满意呢!其他方面倒是一般了,场景也有一点点单调。
这个一定要安装上桃花传奇的资料片,否则故事不完整。
碧血晴天:
ARPG,和它的外传《冰雪传奇》讲的是同一个故事,只是主角不同而已,两部我都打了,剧情比剑侠情缘差些,但是画面效果不错。要玩的话建议你玩冰雪就好。
秦殇
ARPG,还有前传《复活》。蛮好的剧情,自由度也挺大。
有一定难度,玩起来非常有气氛,嘿嘿。
三国赵云传:
ARPG,还有第二部《纵横天下》。因为题材是三国故事,所以比起剑侠系列来更显得大气一些,音乐也做的非常好!不过,在战斗模式上,倒没有太体现出“战争”的感觉,还是个人单打独斗,哈哈……
XX群侠传:
有金庸群侠传、武林群侠传、三国群侠传,是战棋RPG。各有特色,都非常非常的棒!不过,金庸群侠传年代太久画面很差。
啊,对了,还有天龙八部和如来神掌,不过这2个我没有玩过,只是听说很不错。
上面的都垃圾,去迅雷然后打仙剑奇侠传四,(URL:http://www.d4.gpxz.com/gpxz_d3-d4/%CF%C9%BD%A3%C6%E6%CF%C0%B4%AB4.rar)(3D版的超好玩单机游戏)我吐血推荐接下来是秘籍:晚起祭父
黄山清鸾峰,人际罕至.云天河正在拜祭亡父云天青.正当天河要将早晨抓到的小山猪当贡品时,屋外传来一阵山猪吼叫.天河出门发现一头答山猪吐气扬尘,瞬间跑进了一侧的石沉溪洞.天河当下回房,取来惯用的长弓和宝剑,追进了石沉溪洞.
在进洞之前仙搜一搜周围的物品,树屋上有一双软麻鞋,底下的凉亭也有一些装备,地上经常有一些显眼的草,树上也东西,两桥之间的大石头下有一颗石头(月长石),别忘了捡起来.仙四的操作系统和以往不同,单击只能向人物的方向移动,因此始终不能看到人物的脸~需要右击的旋转才能改变移动方向,因此我建议用键盘比较方便.镜头石自动拉申的,不知是好是坏.熟悉操作后进洞!
神秘墓室
天河进洞后惊讶的发现洞门上的机关被破解,追进洞中发现一红衣少女,少女身手敏捷,抛出迷烟后瞬间消失,天河怀疑少女就是猪妖,进洞寻找.在洞中天河回忆起与父亲与天青的事,此时红衣少女赶到,经少女解释,天河才知少女并非猪妖所变,得知少女叫韩菱纱,正当天河想要问菱纱闯入洞的目的,空中出现一只叫"魁召"的符灵,不由分说就攻击两人.
因为魁召有物理免疫,这场战斗必输,只要防几回合就行了,之后菱纱教天河口诀,就可以使用仙术了.接下来的战斗也不必赢,二人不敌魁召,天河张弓搭剑拼命一搏.魁召看见天河手中的"这是剑",竟然俯首认主化作一张符纸.同时,冰壁上出现一到暗门.
进入暗门,天河看见了父母的棺木,查看一番后,(动画)天河手中剑光大盛,好奇挥剑,未料剑气激发,瞬间将墓室毁去!
决意下山
天河心中十分害怕被父亲惩罚,同时又对菱纱所说的山下世界以及父母的神秘过往很感兴趣,决定下山.
山洞里有两块(天河石,天青石)石头,捡上.从山洞出来,回到屋中带上父亲的牌位和香炉(云天青叮嘱天河早晚三支香),在回到树屋去一些草药,下山!
开头动画2(和仙二有点像)
从一旁藤蔓下山,最好让菱纱带队,可以及时发现宝箱,与以往不同,每次战斗后系统不会自动回一定的血,所以要及时补血.路边有石头草药别落下,有些石头取不下来,等慕容紫英来再取.
从紫云架下山,来到黄山脚下的太平村.正至端午,村中热闹非常.眼看天色不早,菱纱前去村长家请求借宿一晚.
第一章
无心闯祸
因为要等菱纱,天河四处闲逛,顺便搜点东西。天河吃了李慎小吃摊上的粽子,却不懂得金钱买卖之事,菱纱赶到时摊主已经恼怒不堪.然而一波未平一波又起,宋大田正在追赶母鸡,扬言要杀掉它,天河信以为真,拉弓射死母鸡,终于引起村人恼怒.
李慎请来扮演钟馗的王魁山教训天河,随即进入战斗,先让菱纱搜囊探宝偷得"钟馗"身上的1000文钱,天河用飞羽箭,很快打败钟馗,引起更大骚动,将村长引来.村长一眼认出云天河是云天青之子,并且痛斥天青再太平村的叛逆顽皮等行径,最终将二人赶出村子.
露宿湖边
二人无法再回太平村,天色渐渐变暗,无奈之下天河菱纱赶到巢湖边,生火露宿(路上有些地方需要跳跃,根据下方的力量条控制远近,有一个靠近水边的芦苇丛可以跳过小河,对岸有宝箱).虽然菱纱带了干粮,还拿出了顺手"拿"的粽子(他们不仁,我就不义).但是天河是个饭桶,不但没给菱纱留多少,吃光后仍然觉得不饱.午夜时分,天河又饿醒了,施展捕野猪的绝活,却引来一群妖怪,进入战斗.
两个妖怪是风系的,攻比较高,即使补血,逐个击破应该没问题.战斗过后又来了三只妖怪.然而双拳难敌四掌,菱纱受了伤,天河张弓射箭,菱纱想要天河逃走,天河却不肯.(动画)眼看就要丧命,一英武少年御剑而来,几下就把妖精消灭,之后又御剑而去,天河羡慕不已.
忽然有一男(怀朔)一女(璇玑)从林间跑来,似乎正在追那少年,从他们的对话中得知御剑少年是"慕容师叔"(就是慕容紫英了),他们似乎要赶往陈州.看着天河远去的身影,菱纱告诉天河这便是传说中的剑仙,而天河一心想着慕容紫英的剑术以及来去如风的御剑之法.随后两人发现,少年身上的图案,竟和石沉溪洞中玉石的图案相同!当下决定去陈州寻找怀朔璇玑.
寿阳揭榜
次日凌晨,二人来到寿阳城.菱纱要去阳春客栈买一些吃的.此时先不要逛城了,直接到阳春客栈.再一次被留在街上的天河四处张望.在客栈前的告示牌上天河看到一幅菱纱的画像,撕下告示准备仔细查看,未料引来了一群捕快意图逮捕菱纱.
此时寿阳城捕头裴剑赶到,邀请天河到县令柳世封府上作客.无奈之下菱纱被捕快带走,而天河跟着裴剑到柳府上做客
柳府故人
在柳州见到县令柳世封阮慈夫妇,原来柳世封竟世云天青成年之后行侠仗义所结识的故友之一.然而云天青生前行踪飘忽,柳世封对云天青之事也不甚了解,只是告知天青曾送来一个女婴到柳府,如今是柳家大小姐(就是柳梦璃啦).
半夜在柳府客房中,天河吃饱喝足好睡去,被恼怒的菱纱叫醒.菱纱得知柳知府不知道云天青曾经在何处休仙,当下便要求天河与自己一同离开寿阳.继续赶往陈州.两人走出房门,却陷入了一团迷雾之中.
这个迷宫比较诡异,不但音乐听起来瘆得慌,地图很阴森,毫无规律可言.走错门有可能回到起点,而且怪物的攻击力也很高,最好吃雪饼(元祖星空)存档一个一个试吧.
迷宫步骤:1进入唯一的门 2走离你较远的那间房子 3右边那扇门 4影壁后的那扇大门 5走墙壁上的那扇门(需从花持边走过) 6走离宝箱近的那扇门 7到花园里找到存点,旁边的那扇门进入,再往前走就到了.好像第五步后少了一步,我步想再去那个地方了,请玩家们帮我考证吧.
来到柳府后院,却见一美若天仙的女子正在等待天河.上前一问,方知此女是柳府千金柳梦璃,施法是为了试一试天河的身手.梦璃心中长念天青救命之恩,得知恩人已故后,十分感伤.言谈之间柳世封也已赶到.梦璃提出要以菱纱帮忙调查八公山女罗岩妖怪之事为代价,撤除城中对她的缉拿告示,菱纱一口答应.次日,天河菱纱梦璃三人结伴上山调查.
上山之前先搜柳府,再全城搜,顺便逛一下商店,小吃摊上的食物不错,即便宜补得又多,不过不能在战斗中吃.再药店买一些香(丁香和没香)和药品,因为每战斗一次后就要补一次血.杂货铺和铁匠铺的图谱和矿石都买上,虽然现在还打不了装备,武器防具就不要买了,也没那么多闲钱,出发!
(未完待续)
③ 易语言dnf技能源码
[设置]
;注:当DLL处于目标进程中才会载入,重启程序后生效!
进程名=DNF.exe
;注:以下设置均在修改后直接生效!
[属性]
标题=小烦专用DNF辅助模型
热键=36
热键1=96
热键1恢复时间=100
热键1地址=007B35D0=49984|007B3620=49984
热键2=113
热键2恢复时间=0
热键2地址=
热键3=114
热键3恢复时间=0
热键3地址=
热键4=115
热键4恢复时间=0
热键4地址=
热键5=116
热键5恢复时间=0
热键5地址=
[技能地址]
;十六进制技能地址
魔法星弹=01B3FAED
光电鳗=01D303E4
杰克爆弹=006A0B61
反重力装置=00694235
魔法师 - 反重力装置=006942C5
魔法师 - 舒露露吸怪=00A14611
;搜:技能代码+E8
念气环绕=005A1B2B
;搜:技能代码+8D
十字斩=0079556D
烈波斩=007951B4
银光落刃=00799F38
抓头前爆=00796D61
小邪光斩=0079CC5A
波动剑=0061DBD8
锁人球=00794F8E
不动明王的球=0079481F
格挡气波=00793CF2
光球=007978EE
出血捉头=00796D5A
小崩山=00795CD9
;搜:技能代码+8B
小机器人=860554
神枪手 - 银弹=00682466
神枪手 - 狙击枪爆炸=00686BEB
神枪手 - 爆炎弹=00682961
神枪手 - 冰冻弹=00682677
;搜:技能代码+8B
落凤锤=00620D47
意念驱动=00763C0A
蓝旋风=01C5D7DA
破魔符=01DBA3CC
**球=006B0890
虎袭=00769D2E
;搜:技能代码+8B
[技能代码]
;十进制整数型数值,修改技能地址中的值可实现修改技能
冰落刺=8022
固定风暴=8142
全屏爆(秒友)=8362
扔炸弹=8462
念气波(群体)=8485
天雷(秒无敌)=8498
定身叉=8602
地毒(秒友)=8625
乱刺=8654
轮子=20057
风暴=21017
黑洞=23025
火岩浆(秒)=23044
岩浆爆=30495
冰秒=30554
全屏秒杀=22227
全秒1=88543
全秒2=860143
爆炎=860330
分针=860622
气空炮=860816
*石化=899987
*睡觉=899988
*混乱100%=899989
*冰冻100%=899993
^天落震^=30054
¢大叔觉醒=24029
¢驱魔觉醒=24030
¢女机械觉醒=22269
¤招唤火精灵=8090
¤招唤土龙-复仇之骑士阿勒克图=8075
¤招唤赤龙-复仇之骑士提西福涅=8076
¤招唤暗龙-复仇之骑士墨该拉=8077
集中队友=8071
[招唤仓库]=51200
;以下参数支持自定义内存代码
;示例:0512F1BC+56B+17D={12,25,0,141,32}
;其中:0512F1BC是基址,56B是一级偏移,17D是二级偏移(十六进制)
;而{12,25,0,141,32}是要写入到内存的字节集数据(易语言格式)
;示例:我的地址=0512F1BC+17D=123
;其中123表示欲写入的整数型数值
;示例:010CEE1C+373c+50={1}|010CEE1C+3738={0}
;|分割两个代码,分别是010CEE1C+373c+50={1}与010CEE1C+3738={0}
;示例:010CEE1C+2FC4+8+C+204=010CEE1C+2FC4+8+C+388=4
;=号左边的010CEE1C+2FC4+8+C+204表示写入到的内存基址加偏移量
;=号中间的010CEE1C+2FC4+8+C+388表示读取数据的基址加偏移量
;=号右边的4表示读取的长度
;表示将010CEE1C+2FC4+8+C+388中4字节读取出来写入010CEE1C+2FC4+8+C+204中
[保护属性]
;时钟周期内不断读取数值显示在进度条上,锁定后会不断写入
HP地址=014D1D84
HP最大值=014D1D84
MP地址=014D1F80
MP最大值=014D1F80
[加倍功击]
;可由滑块条自由修改攻击倍数
物理倍数地址=0
物理辅助地址=0=-1008535808
魔法倍数地址=0
魔法辅助地址=0=-1008535808
[周期地址]
;时钟周期内不断写入内存
人物透明(稳定)=010CF69C+219C=010CF69C+21A4=4
城镇无限加速=010CF69C+1964=010CF69C+1754=4
锁定无敌状态(高封号率)=010CF69C+2184=010CF69C+4a8=4
锁定MP蓝值=007B3620=457752961
鬼剑士开双刀=010CF69C+398c=1
锁定连发=010CF69C+9056=0
攻击加速=010CF69C+O3518D1F+O5582FF=010CF69C+OB402C9=4
A键技能免CD=010CF69C+2FC4+8+0+204=010CF69C+2FC4+8+0+388=4
S键技能免CD=010CF69C+2FC4+8+4+204=010CF69C+2FC4+8+4+388=4
D键技能免CD=010CF69C+2FC4+8+8+204=010CF69C+2FC4+8+8+388=4
F键技能免CD=010CF69C+2FC4+8+C+204=010CF69C+2FC4+8+C+388=4
G键技能免CD=010CF69C+2FC4+8+10+204=010CF69C+2FC4+8+10+388=4
H键技能免CD=010CF69C+2FC4+8+14+204=010CF69C+2FC4+8+14+388=4
F1键技能免CD=010CF69C+2FC4+8+360+204=010CF69C+2FC4+8+360+388=4
F2键技能免CD=010CF69C+2FC4+8+364+204=010CF69C+2FC4+8+364+388=4
F3键技能免CD=010CF69C+2FC4+8+368+204=010CF69C+2FC4+8+368+388=4
F4键技能免CD=010CF69C+2FC4+8+36C+204=010CF69C+2FC4+8+36C+388=4
F5键技能免CD=010CF69C+2FC4+8+370+204=010CF69C+2FC4+8+370+388=4
F6键技能免CD=010CF69C+2FC4+8+374+204=010CF69C+2FC4+8+374+388=4
修改武器属性(攻击石化)=10CF69C+1E38+390=7|10CF69C+1E38+3A0=010CF69C+196C=9
修改武器属性(回避率)PK=010CF69C+1E38+300=010CF69C+1E38+188=7
修改武器属性(回血)=10CF69C+1E38+331=100
修改武器属性(附加物理攻击)=010CF69C+1E38+410=0|010CF69C+1E38+420=010CF69C+1E44+50=4|010CF69C+1E38+418=010CF69C+380=4
修改武器属性(减少物理攻击)=010CF69C+1E38+410=2|010CF69C+1E38+418=010CF69C+380=4
[固定地址]
;只写一次内存
远程卖装备=01080FD4+1CA8=5
远程修装备=01080FD4+1CA8=6
装备锁耐久=010CF69C+OC517CF9+OE393EC=010CF69C+O26D2A5=4
3S评分(所有队友有效)=01775108={144,144,144}
无限霸体状态(稳定)=010CF69C+4F0=1
全屏秒怪锁满血(刷塔稳定)=007B3510=49984
锁满蓝=007B3620=49984
使用S键技能让别人掉线(PK场)=010CF69C+2fc4+8+4=010CF69C+27B8=4|010CF69C+27B8+324=010CF69C+27B8+44=4
修改A键技能及等级=010CF69C+2fc4+8+0=010CF69C+276c=4|010CF69C+276c+324=010CF69C+276c+44=4
;在A键上添加大神技能,提升A键上技能等级
;上面的276c,从2700开始一直往上找,全是各种技能
④ 求一款基于php的招聘网站的程序源码。
骑士cms php的 我用了几次 还差不多 可以去看看
⑤ 求C语言小程序源代码,300行左右
黑白棋游戏
#include "graphics.h" /*图形系统头文件*/
#define LEFT 0x4b00 /*光标左键值*/
#define RIGHT 0x4d00 /*光标右键值*/
#define DOWN 0x5000 /*光标下键值*/
#define UP 0x4800 /*光标上键值*/
#define ESC 0x011b /* ESC键值*/
#define ENTER 0x1c0d /* 回车键值*/
int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/
char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/
void playtoplay(void);/*人人对战函数*/
void DrawQp(void);/*画棋盘函数*/
void SetPlayColor(int x);/*设置棋子第一次的颜色*/
void MoveColor(int x,int y);/*恢复原来棋盘状态*/
int QpChange(int x,int y,int z);/*判断棋盘的变化*/
void DoScore(void);/*处理分数*/
void PrintScore(int n);/*输出成绩*/
void playWin(void);/*输出胜利者信息*/
/******主函数*********/
void main(void)
{
int gd=DETECT,gr;
initgraph(&gd,&gr,"c:\\tc"); /*初始化图形系统*/
DrawQp();/*画棋盘*/
playtoplay();/*人人对战*/
getch();
closegraph();/*关闭图形系统*/
}
void DrawQp()/*画棋盘*/
{
int i,j;
score1=score2=0;/*棋手一开始得分都为0*/
setbkcolor(BLUE);
for(i=100;i<=420;i+=40)
{
line(100,i,420,i);/*画水平线*/
line(i,100,i,420); /*画垂直线*/
}
setcolor(0);/*取消圆周围的一圈东西*/
setfillstyle(SOLID_FILL,15);/*白色实体填凳颤充模式*/
fillellipse(500,200,15,15); /*在显示得分的位置画棋*/
setfillstyle(SOLID_FILL,8); /*黑色实体填充模式*/
fillellipse(500,300,15,15);
a[3][3]=a[4][4]=1;/*初始两个黑棋*/
a[3][4]=a[4][3]=2;/*初始两个白棋*/
setfillstyle(SOLID_FILL,WHITE);
fillellipse(120+3*40,120+3*40,15,15);
fillellipse(120+4*40,120+4*40,15,15);
setfillstyle(SOLID_FILL,8);
fillellipse(120+3*40,120+4*40,15,15);
fillellipse(120+4*40,120+3*40,15,15);
score1=score2=2; /*有棋后改变分数*/
DoScore();/*输出开始分数*/
}
void playtoplay()/*人人对战*/
{
int x,y,t=1,i,j,cc=0;
while(1)/*换棋好悄手走棋*/
{
x=120,y=80;/*每次棋子一开始出来的坐标,x为行坐标,y为列坐标*/
while(1) /*具体一个棋手走棋的过程*/
{
PrintScore(1);/*输出棋手1的成绩*/
PrintScore(2);/*输出棋手2的成绩*/
SetPlayColor(t);/*t变量是友粗渣用来判断棋手所执棋子的颜色*/
fillellipse(x,y,15,15);
key=bioskey(0);/*接收按键*/
if(key==ESC)/*跳出游戏*/
break;
else
if(key==ENTER)/*如果按键确定就可以跳出循环*/
{
if(y!=80&&a[(x-120)/40][(y-120)/40]!=1
&&a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置没有棋子*/
{
if(t%2==1)/*如果是棋手1移动*/
a[(x-120)/40][(y-120)/40]=1;
else/*否则棋手2移动*/
a[(x-120)/40][(y-120)/40]=2;
if(!QpChange(x,y,t))/*落子后判断棋盘的变化*/
{
a[(x-120)/40][(y-120)/40]=0;/*恢复空格状态*/
cc++;/*开始统计尝试次数*/
if(cc>=64-score1-score2) /*如果尝试超过空格数则停步*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
break;
}
else
continue;/*如果按键无效*/
}
DoScore();/*分数的改变*/
break;/*棋盘变化了,则轮对方走棋*/
}
else/*已经有棋子就继续按键*/
continue;
}
else /*四个方向按键的判断*/
if(key==LEFT&&x>120)/*左方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
x-=40;
fillellipse(x,y,15,15);
}
else
if(key==RIGHT&&x<400&&y>80)/*右方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
x+=40;
fillellipse(x,y,15,15);
}
else
if(key==UP&&y>120)/*上方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
y-=40;
fillellipse(x,y,15,15);
}
else
if(key==DOWN&&y<400)/*下方向键*/
{
MoveColor(x,y);
fillellipse(x,y,15,15);
SetPlayColor(t);
y+=40;
fillellipse(x,y,15,15);
}
}
if(key==ESC)/*结束游戏*/
break;
if((score1+score2)==64||score1==0||score2==0)/*格子已经占满或一方棋子为0判断胜负*/
{
playWin();/*输出最后结果*/
break;
}
t=t%2+1; /*一方走后,改变棋子颜色即轮对方走*/
cc=0; /*计数值恢复为0*/
} /*endwhile*/
}
void SetPlayColor(int t)/*设置棋子颜色*/
{
if(t%2==1)
setfillstyle(SOLID_FILL,15);/*白色*/
else
setfillstyle(SOLID_FILL,8);/*灰色*/
}
void MoveColor(int x,int y)/*走了一步后恢复原来格子的状态*/
{
if(y<100)/*如果是从起点出发就恢复蓝色*/
setfillstyle(SOLID_FILL,BLUE);
else/*其他情况如果是1就恢复白色棋子,2恢复黑色棋子,或恢复蓝色棋盘*/
switch(a[(x-120)/40][(y-120)/40])
{
case 1:
setfillstyle(SOLID_FILL,15);break; /*白色*/
case 2:
setfillstyle(SOLID_FILL,8);break; /*黑色*/
default:
setfillstyle(SOLID_FILL,BLUE); /*蓝色*/
}
}
int QpChange(int x,int y,int t)/*判断棋盘的变化*/
{
int i,j,k,kk,ii,jj,yes;
yes=0;
i=(x-120)/40; /*计算数组元素的行下标*/
j=(y-120)/40; /*计算数组元素的列下标*/
SetPlayColor(t);/*设置棋子变化的颜色*/
/*开始往8个方向判断变化*/
if(j<6)/*往右边*/
{
for(k=j+1;k<8;k++)
if(a[i][k]==a[i][j]||a[i][k]==0)/*遇到自己的棋子或空格结束*/
break;
if(a[i][k]!=0&&k<8)
{
for(kk=j+1;kk<k&&k<8;kk++)/*判断右边*/
{
a[i][kk]=a[i][j]; /*改变棋子颜色*/
fillellipse(120+i*40,120+kk*40,15,15);
}
if(kk!=j+1) /*条件成立则有棋子改变过颜色*/
yes=1;
}
}
if(j>1)/*判断左边*/
{
for(k=j-1;k>=0;k--)
if(a[i][k]==a[i][j]||!a[i][k])
break;
if(a[i][k]!=0&&k>=0)
{
for(kk=j-1;kk>k&&k>=0;kk--)
{
a[i][kk]=a[i][j];
fillellipse(120+i*40,120+kk*40,15,15);
}
if(kk!=j-1)
yes=1;
}
}
if(i<6)/*判断下边*/
{
for(k=i+1;k<8;k++)
if(a[k][j]==a[i][j]||!a[k][j])
break;
if(a[k][j]!=0&&k<8)
{
for(kk=i+1;kk<k&&k<8;kk++)
{
a[kk][j]=a[i][j];
fillellipse(120+kk*40,120+j*40,15,15);
}
if(kk!=i+1)
yes=1;
}
}
if(i>1)/*判断上边*/
{
for(k=i-1;k>=0;k--)
if(a[k][j]==a[i][j]||!a[k][j])
break;
if(a[k][j]!=0&&k>=0)
{
for(kk=i-1;kk>k&&k>=0;kk--)
{
a[kk][j]=a[i][j];
fillellipse(120+kk*40,120+j*40,15,15);
}
if(kk!=i-1)
yes=1;
}
}
if(i>1&&j<6)/*右上*/
{
for(k=i-1,kk=j+1;k>=0&&kk<8;k--,kk++)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]&&k>=0&&kk<8)
{
for(ii=i-1,jj=j+1;ii>k&&k>=0;ii--,jj++)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i-1)
yes=1;
}
}
if(i<6&&j>1)/*左下*/
{
for(k=i+1,kk=j-1;k<8&&kk>=0;k++,kk--)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&k<8&&kk>=0)
{
for(ii=i+1,jj=j-1;ii<k&&k<8;ii++,jj--)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i+1)
yes=1;
}
}
if(i>1&&j>1)/*左上*/
{
for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&k>=0&&kk>=0)
{
for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i-1)
yes=1;
}
}
if(i<6&&j<6)/* 右下*/
{
for(k=i+1,kk=j+1;kk<8&&kk<8;k++,kk++)
if(a[k][kk]==a[i][j]||!a[k][kk])
break;
if(a[k][kk]!=0&&kk<8&&k<8)
{
for(ii=i+1,jj=j+1;ii<k&&k<8;ii++,jj++)
{
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*40,15,15);
}
if(ii!=i+1)
yes=1;
}
}
return yes;/*返回是否改变过棋子颜色的标记*/
}
void DoScore()/*处理分数*/
{
int i,j;
score1=score2=0;/*重新开始计分数*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
if(a[i][j]==1)/*分别统计两个人的分数*/
score1++;
else
if(a[i][j]==2)
score2++;
}
void PrintScore(int playnum)/*输出成绩*/
{
if(playnum==1)/*清除以前的成绩*/
{
setfillstyle(SOLID_FILL,BLUE);
bar(550,100,640,400);
}
setcolor(RED);
settextstyle(0,0,4);/*设置文本输出样式*/
if(playnum==1)/*判断输出哪个棋手的分,在不同的位置输出*/
{
sprintf(playone,"%d",score1);
outtextxy(550,200,playone);
}
else
{
sprintf(playtwo,"%d",score2);
outtextxy(550,300,playtwo);
}
setcolor(0);
}
void playWin()/*输出最后的胜利者结果*/
{
settextstyle(0,0,4);
setcolor(12);
if(score2>score1)/*开始判断最后的结果*/
outtextxy(100,50,"black win!");
else
if(score2<score1)
outtextxy(100,50,"white win!");
else
outtextxy(60,50,"you all win!");
}
五子棋游戏
/*五子棋*/
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<bios.h>
#include<conio.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
#define SPACE 0x3920
#define BILI 20
#define JZ 4
#define JS 3
#define N 19
int box[N][N];
int step_x,step_y ;
int key ;
int flag=1 ;
void draw_box();
void draw_cicle(int x,int y,int color);
void change();
void judgewho(int x,int y);
void judgekey();
int judgeresult(int x,int y);
void attentoin();
void attention()
{
char ch ;
window(1,1,80,25);
textbackground(LIGHTBLUE);
textcolor(YELLOW);
clrscr();
gotoxy(15,2);
printf("游戏操作规则:");
gotoxy(15,4);
printf("Play Rules:");
gotoxy(15,6);
printf("1、按左右上下方向键移动棋子");
gotoxy(15,8);
printf("1. Press Left,Right,Up,Down Key to move Piece");
gotoxy(15,10);
printf("2、按空格确定落棋子");
gotoxy(15,12);
printf("2. Press Space to place the Piece");
gotoxy(15,14);
printf("3、禁止在棋盘外按空格");
gotoxy(15,16);
printf("3. DO NOT press Space outside of the chessboard");
gotoxy(15,18);
printf("你是否接受上述的游戏规则(Y/N)");
gotoxy(15,20);
printf("Do you accept the above Playing Rules? [Y/N]:");
while(1)
{
gotoxy(60,20);
ch=getche();
if(ch=='Y'||ch=='y')
break ;
else if(ch=='N'||ch=='n')
{
window(1,1,80,25);
textbackground(BLACK);
textcolor(LIGHTGRAY);
clrscr();
exit(0);
}
gotoxy(51,12);
printf(" ");
}
}
void draw_box()
{
int x1,x2,y1,y2 ;
setbkcolor(LIGHTBLUE);
setcolor(YELLOW);
gotoxy(7,2);
printf("Left, Right, Up, Down KEY to move, Space to put, ESC-quit.");
for(x1=1,y1=1,y2=18;x1<=18;x1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI);
for(x1=1,y1=1,x2=18;y1<=18;y1++)
line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI);
for(x1=1;x1<=18;x1++)
for(y1=1;y1<=18;y1++)
box[x1][y1]=0 ;
}
void draw_circle(int x,int y,int color)
{
setcolor(color);
setlinestyle(SOLID_LINE,0,1);
x=(x+JZ)*BILI ;
y=(y+JS)*BILI ;
circle(x,y,8);
}
void judgekey()
{
int i ;
int j ;
switch(key)
{
case LEFT :
if(step_x-1<0)
break ;
else
{
for(i=step_x-1,j=step_y;i>=1;i--)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(i<1)break ;
step_x=i ;
judgewho(step_x,step_y);
break ;
}
case RIGHT :
if(step_x+1>18)
break ;
else
{
for(i=step_x+1,j=step_y;i<=18;i++)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(i>18)break ;
step_x=i ;
judgewho(step_x,step_y);
break ;
}
case DOWN :
if((step_y+1)>18)
break ;
else
{
for(i=step_x,j=step_y+1;j<=18;j++)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(j>18)break ;
step_y=j ;
judgewho(step_x,step_y);
break ;
}
case UP :
if((step_y-1)<0)
break ;
else
{
for(i=step_x,j=step_y-1;j>=1;j--)
if(box[i][j]==0)
{
draw_circle(step_x,step_y,LIGHTBLUE);
break ;
}
if(j<1)break ;
step_y=j ;
judgewho(step_x,step_y);
break ;
}
case ESC :
break ;
case SPACE :
if(step_x>=1&&step_x<=18&&step_y>=1&&step_y<=18)
{
if(box[step_x][step_y]==0)
{
box[step_x][step_y]=flag ;
if(judgeresult(step_x,step_y)==1)
{
sound(1000);
delay(1000);
nosound();
gotoxy(30,4);
if(flag==1)
{
setbkcolor(BLUE);
cleardevice();
setviewport(100,100,540,380,1);
/*定义一个图形窗口*/
setfillstyle(1,2);
/*绿色以实填充*/
setcolor(YELLOW);
rectangle(0,0,439,279);
floodfill(50,50,14);
setcolor(12);
settextstyle(1,0,5);
/*三重笔划字体, 水平放?5倍*/
outtextxy(20,20,"The White Win !");
setcolor(15);
settextstyle(3,0,5);
/*无衬笔划字体, 水平放大5倍*/
outtextxy(120,120,"The White Win !");
setcolor(14);
settextstyle(2,0,8);
getch();
closegraph();
exit(0);
}
if(flag==2)
{
setbkcolor(BLUE);
cleardevice();
setviewport(100,100,540,380,1);
/*定义一个图形窗口*/
setfillstyle(1,2);
/*绿色以实填充*/
setcolor(YELLOW);
rectangle(0,0,439,279);
floodfill(50,50,14);
setcolor(12);
settextstyle(1,0,8);
/*三重笔划字体, 水平放大8倍*/
outtextxy(20,20,"The Red Win !");
setcolor(15);
settextstyle(3,0,5);
/*无衬笔划字体, 水平放大5倍*/
outtextxy(120,120,"The Red Win !");
setcolor(14);
settextstyle(2,0,8);
getch();
closegraph();
exit(0);
}
}
change();
break ;
}
}
else
break ;
}
}
void change()
{
if(flag==1)
flag=2 ;
else
flag=1 ;
}
void judgewho(int x,int y)
{
if(flag==1)
draw_circle(x,y,15);
if(flag==2)
draw_circle(x,y,4);
}
int judgeresult(int x,int y)
{
int j,k,n1,n2 ;
while(1)
{
n1=0 ;
n2=0 ;
/*水平向左数*/
for(j=x,k=y;j>=1;j--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*水平向右数*/
for(j=x,k=y;j<=18;j++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}
/*垂直向上数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;k>=1;k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*垂直向下数*/
for(j=x,k=y;k<=18;k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}
/*向左上方数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;j>=1,k>=1;j--,k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*向右下方数*/
for(j=x,k=y;j<=18,k<=18;j++,k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}
/*向右上方数*/
n1=0 ;
n2=0 ;
for(j=x,k=y;j<=18,k>=1;j++,k--)
{
if(box[j][k]==flag)
n1++;
else
break ;
}
/*向左下方数*/
for(j=x,k=y;j>=1,k<=18;j--,k++)
{
if(box[j][k]==flag)
n2++;
else
break ;
}
if(n1+n2-1>=5)
{
return(1);
break ;
}
return(0);
break ;
}
}
void main()
{
int gdriver=VGA,gmode=VGAHI;
clrscr();
attention();
initgraph(&gdriver,&gmode,"c:\\tc");
/* setwritemode(XOR_PUT);*/
flag=1 ;
draw_box();
do
{
step_x=0 ;
step_y=0 ;
/*draw_circle(step_x,step_y,8); */
judgewho(step_x-1,step_y-1);
do
{
while(bioskey(1)==0);
key=bioskey(0);
judgekey();
}
while(key!=SPACE&&key!=ESC);
}
while(key!=ESC);
closegraph();
}