騎士源碼網
① 網游的發展史
以下停運網游不完全名單,你可曾在這些虛擬世界存活過?
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();
}