数学建模社区-数学中国
标题: C语言技术文章 [打印本页]
作者: 韩冰 时间: 2004-10-4 02:34
标题: C语言技术文章
<DIV align=left>
1 k, z) ?2 _- d: F4 l! X$ }<
align=left>程序目的:; Y5 [# u, J- d- R5 G
输入一个任意大小的迷宫,用栈求出一条走出迷宫的路径,并1 u; Z/ c o4 v% A
显示在屏幕上。
6 ~7 {) _2 e$ o; d y/ u1 `3 j程序实现:$ Z5 B1 H a! `
可以实现载入迷宫和保存迷宫,附带文件中有4个测试迷宫路径的
5 { o$ E& t- S9 m& F文件test1~4.dd。请将这些文件拷贝到TC当前目录下,或者在载
2 e7 g1 G2 H# d9 E) ~" n入时写明完全路径。由于屏幕大小的限制,当用户自己输入迷宫
- t! U* m- v: j: j时一定要注意:迷宫大小是有限制的,不小于4*3,不大于30*20。
5 X6 s- h2 r0 V6 T否则会出现错误信息。输入开始时全是墙,用上下左右键移动,
7 t' j* [% W. a/ [( F用Del键删除墙,形成通路,用Enter键添加墙。输入结束时可以
/ ~2 q- y0 U6 p. S9 L将迷宫保存下来,以dd为扩展名。输入完毕时用F9键来得到结果,9 n6 H: r, y- ~: H& L& I
找到路径时,屏幕下方会出现Path found,否则出现Path not found。; c1 B3 x- E" n8 o a( ]
程序经Turbo C 2.0编译调试成功。运行时不用添加任何运行库。
& A! p+ S8 O6 C不可以在VC上编译。. Z2 n# G% Q6 Q" [" B0 M$ [2 ` W
下载DOS版和windows版的迷宫游戏全部代码
% s+ d! N( r# _3 ^0 ]( |用户名:migong
8 H6 @$ X# n. ?3 l----------------------------------------------------------------------------------9 |4 P3 { A; A+ q! [$ d
/*; _" b1 D$ ^, q5 ~% h
MazePath Demo BY Turbo C 2.0
. d* X% r/ p& q6 _, z- @; D5 ~8 A; FCopyright(c) RoverUnion. All right reserved.3 [+ K2 i) E; U' [
Filename: Maze.c
* R- u C9 {: M0 qAuthor Dongchengyu.6 f( l9 m. S3 w3 x( L; N- O" S* ]
Ver 1.10
6 h8 O6 h6 i: z. G8 f*/' A' w: ^% S% w9 E# x5 V2 Y
#include <stdio.h>
) e; G9 P: d: H* k7 d5 i#include <stdlib.h>
, j7 i3 I" x; n- _& Z% S! A#include <malloc.h>
8 R$ Q5 `) T$ I+ K- P#include <conio.h>4 ^2 L/ k* y" C5 }2 Z, D( E
#include <dos.h>+ G G9 x1 ~% q$ m
#define OK 1/ b) K6 o. B4 F
#define ERROR 0
?- O, ~0 b% R+ I#define TRUE 1
- J. C( ?" D6 l7 p#define FALSE 0+ ^' L1 }. l$ H8 N$ X6 W* H! I
#define F9 0x43+ @+ P) W3 F3 a9 h
#define Esc 0x1b7 G1 A- U' c2 t1 u6 R, M0 d
#define Del 0x53
c2 V7 R. j+ M7 T: `#define Home 0x47( H8 P& y, b5 j& E, @
#define End 0x4f
9 G& X3 j. q# j#define Space 0x20
4 i! g9 ?" Y9 D+ m3 w% \5 Z#define Up 0x48
4 V6 S& `: E# S7 T$ r#define Down 0x500 o# \# @' u3 P: z' ~7 j: `
#define Left 0x4b5 _& V f" \2 w" _6 u
#define Right 0x4d
& b0 z% A3 u/ s1 R) X5 J2 s#define Enter 0x0d
% R; `+ c& y ~/ I) v6 p#define F2 0x3c/ u. b! l" _8 I. ? D8 j3 w' w! `
#define F3 0x3d' I+ I# }9 n6 v+ P$ i
#define STACK_INIT_SIZE 200- o5 s5 s0 H7 L4 R
#define STACKINCREMENT 108 x! |, i! ^, o0 g+ z
typedef int Boolean;
& T4 t# n/ V% M! A2 b2 c2 Rtypedef int Status;2 M: ^5 v4 d( n. f) y6 e7 x- D! J
typedef struct {. t- v- ^ J1 C. x
int x;
0 X4 {2 u% _, u1 i$ {( p+ b9 dint y;$ I4 N. @; K/ n8 |
} PosType;
2 \2 ?$ p* w8 B+ o. w1 vtypedef struct {! f" w7 e7 G% T' ]- a) r
int ord;; t3 j% |! m+ T& E
PosType seat;
8 S+ a- v" }) mint di;( [5 r& q, x" q6 P
} SElemType;
( s8 p, e3 O- X: K! @$ Ctypedef struct {8 r( j* u. o3 R7 d+ {* p+ C
int td;* m N; y2 _2 Q1 j0 _( T7 R4 }( M
int foot;4 g! a$ E4 H; r& @+ g, R
int mark;6 C( L9 q9 K7 B- ~- |0 F6 i! g
} MazeType;
4 c8 _. P# H5 F1 ~6 [+ E: ?typedef struct {- `1 n+ I" O: i; G4 R) Z
SElemType *base;* X' z- O' A! m. H1 n* O
SElemType *top;
. u: Z7 _8 a. A" Zint stacksize;
4 S) I4 s% O* F( S. K$ `! |+ T} Stack;5 V7 s8 w" `% L; Q2 u. @- E
int Maze[20][30];+ l- }$ S' I/ z; X' I
MazeType maze[20][30];
9 d' @5 @% Z+ ^, m `PosType StartPlace;
5 Y% i! [, [& @3 gPosType EndPlace;) L+ v7 U& Y7 B/ c3 Z
int count;0 B4 }1 z+ G) R1 ?
int m,n;
2 B5 d% h, D/ j0 hBoolean b_start=FALSE,b_end=FALSE;
" ~8 x+ P7 F# g2 F9 X Lvoid CreatMaze(void);
1 p: J g' a% z& W" uStatus SaveMaze(char *filename);
* |4 L# }, m- e; U, |Status LoadMaze(char *filename);
: n$ @9 r- n Z2 L0 _1 P8 Hvoid Error(char *message);; [2 |( a2 e' v7 T# p( q/ d' p
Status InitStack(Stack *s);$ h7 V/ w h% n8 j
Status DestroyStack(Stack *s);
/ X5 x {% ^. RStatus ClearStack(Stack *s);
( O; y: s0 H! ^7 f3 q5 TBoolean StackEmpty(Stack *s);
# @) c* m* L5 b3 `int StackLength(Stack *s);
+ u" J/ k) `3 N# Y: c3 A, t$ AStatus Push(Stack *s,SElemType e);
! F+ E( X8 A5 CSElemType Pop(Stack *s,SElemType e);
2 g+ }* ~* V3 w6 S8 a& e# aStatus GetTop(Stack *s,SElemType *e);
: t) Y- f$ ^; AStatus StackTraverse(Stack *s,Status (* visit)(SElemType *se));
4 [. S+ w# G) C. P& PBoolean Pass(PosType curpos);. a+ c" @' j! h+ t7 {
void MarkPrint(PosType seat);
* f. t: w6 `2 {9 H. B3 Hvoid FootPrint(PosType curpos);
) l9 c+ a2 A, w' ] }PosType NextPos(PosType seat,int di);7 j9 W$ a- s3 i% O( P
Status MazePath(PosType start,PosType end);
" [* x) D( r$ o- ?% ~void CreatMaze(void)2 k3 K0 w) Z7 L
/* Form the maze. */
7 F! h. f$ S2 S0 b{
?% S" h3 Q( J7 [/ i bvoid Error(char *message);" B$ j1 D) s: Q
Status SaveMaze(char *filename);; e. g1 Y/ G7 V/ p1 F
Status LoadMaze(char *filename);' [" L0 U" ]/ s/ p
int i,j;8 i% | }+ d+ {1 `2 t6 w! p3 r1 r
int x,y;3 q$ B5 [) s Q, m$ z9 W4 m9 o" u
char c;
4 z: D6 ~2 e; H0 Q( }% pchar savename[12],loadname[12];8 T' n$ g' d8 A, l. B. G L3 Z
Boolean flag=FALSE,load=FALSE;
2 ~) K% Q( R% h1 A; {$ zclrscr();, W2 A6 J9 B% k- e3 r
printf("Menu:\n\n");
5 k; S; D& R X1 Eprintf("1.Load Mazefile
*.dd)\n\n");
7 _# R4 c8 I4 { ~; v3 A% b& yprintf("2.Input Maze:\n\n");& T: j3 _- G# q- Q2 k; ]
printf("Input your choice: ");
R: g3 I' g2 m y! V2 p' L: zdo
|9 Z. D f- O7 I* I{
* u) L' u, O z9 ec=getch();6 M6 ?$ o/ n7 h: T! L0 X
switch(c)
( v7 Q! Q! A( ^9 E, F6 T{
$ Y9 M7 H8 P0 R% ocase ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;" w% h- ]& V" K6 V
case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;
, J- d; J' T% ?" S9 H0 \% a6 N' Dcase Esc: sleep(1); exit(1);& U: s @2 O: A' i% T) z
default: break;
( t9 k' C: ^7 e9 ]5 C& X/ \+ U}
; a2 K, f0 j$ _# F$ t}
# h1 [4 a" o* Q* D$ s, Ywhile(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;* |- c+ L) k* h8 B# u2 C
if(c==''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''')
# a( T, W9 N4 D9 K5 X* c; T{
3 x/ [" S+ k2 c, t/ N3 c, fprintf("\n\nLoadName: ");
. n" p; m5 V5 a, Cscanf("%s",loadname);
5 [, d7 g$ d( _. \0 c( ^9 h. O' uif(LoadMaze(loadname))
* `3 Z+ |; Q! o% p" Y8 z$ f{1 T J) z! s( P z" `: k9 @
sleep(1); load=TRUE;/ g1 w$ M' f# b. Y7 x1 ~2 T# |; v
}3 c" W6 I& ?; x" L7 [) n) Z
else { gotoxy(1,9); printf("Load fail! "); }
) T7 {% y% W) G) w7 l- b' D4 h}' {/ _- o+ `! }7 x+ h# t, ~6 I
if(!load)
2 M& Y* o4 V4 d) r- M+ \{7 O# U @6 N) V& ]" N
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");
4 w+ y1 a" E, |' j( I5 d( Tprintf("\nInput Length :\n");
2 y8 t- c* B6 [; }scanf("%d",&m);
' }6 G6 V; T& O. q6 c. p& y, ~printf("\nInput Width :\n");
& g( T5 v0 W, }, Qscanf("%d",&n); z& u v8 c! x8 B4 i
if(m<4||n<4) Error("Input");
# D3 X9 f7 Y! Y% Pif(m>30||n>20) Error("Maze too large");
# u: b2 ~" q2 P# y9 v; j9 xfor(i=0;i<30;i++)
5 ^& |7 T) z3 z9 M- E- jfor(j=0;j<20;j++)8 ]- S4 J# f, c- A' w6 U# g3 K
Maze[j]=2;. I- W& _8 x1 L+ i7 s. G5 P
StartPlace.x=0;
. f* W+ y4 s) o# ]StartPlace.y=0;
$ s* H8 p8 ~# C1 O! PEndPlace.x=0;
% U5 A9 M/ @: o* i. o' r. u2 s' S/ R0 WEndPlace.y=0;
/ R3 k+ t9 U: H/ Pclrscr();4 g9 O; x; G( z) y% h' a
printf("\n");
$ {& }, o" ?* D* xfor(i=1;i<=n;i++)
/ ~; F5 Z( r8 V% G5 u! A{" h5 T; k, P% G& t# C
for(j=1;j<=m;j++)6 u, _. N% h! |$ Y
{
) Q$ \3 H, R, v, Y2 t9 u8 tprintf(" #");
* m. K2 X- E" |8 d! m- J7 K1 IMaze[i-1][j-1]=0;3 e0 w9 p* U7 \& [3 t' e
}, t9 d* o5 L6 j+ C4 B& R4 D
printf("\n");4 l& S: N$ e0 Y
}* ~) I5 F4 z3 D) Y% Z4 K
}& `& e# D2 E+ P
gotoxy(65,5);( _6 L. X, u* G& N2 a4 z3 u% u
printf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");2 ?. n" }9 R" C4 x$ m& V* Q7 O9 l
gotoxy(65,7);
3 I u) M( u- |6 ~printf("Start:Home");
! t ?2 \7 F6 P1 Zgotoxy(65,9);8 n9 j k5 {* u
printf("End:End");
( [/ C f& F( _1 n7 d' egotoxy(65,11);/ t7 J+ T+ {4 B7 i3 G6 D8 g* q2 m
printf("Delete Wall
el");8 b9 j& n2 m% r; G; }% s- t8 ~
gotoxy(65,13);* K- y5 f; ^* X, j' ?1 z
printf("Enter Wall:Enter");$ F F( H& }) q: w1 m# g* `
gotoxy(65,15);) k: k/ B5 O& j: i- C
printf("Save Maze:F2");' y5 |) t# }$ T5 E( c' U a5 R
gotoxy(65,17);
3 N) i) j0 O6 Oprintf("Complete:F9");
6 y# g! b2 b. O4 Y8 K5 S% rgotoxy(65,19);
: z$ V, n+ r( m6 }1 B9 ~$ ~printf("Exit:Esc");
/ V* M% D9 d- o' b6 tgotoxy(4,3);% R5 H/ w3 |4 u8 d, P2 z
x=4;y=3;, x& I; n n6 {- Z2 ~6 P+ z
do2 P' J3 D g+ g1 Q2 A- m. b* y
{
8 X" t3 R5 V' ?% }4 {" P4 h, rc=getch(); C- g9 n' x1 e' W( A* ?* Z
switch(c)
+ _+ N2 D' _/ C$ B, u1 W{, x/ ` ]1 K$ V) B" F
case Up: if(y>3) { y--; gotoxy(x,y); }
' |7 G$ P% h0 K- ?break;
2 n% `( h4 E/ p4 {7 l3 H' G# J( pcase Down: if(y<n) { y++; gotoxy(x,y); }
% [# ]6 S0 v7 W1 R9 H/ H4 H8 J+ ~break;
+ x1 s- a/ U% r& Hcase Left: if(x>4) { x-=2; gotoxy(x,y); }
& O) b+ Z; e6 B+ |. @; }6 b1 Z: ybreak;
: |# l H9 y7 `9 {; F, J5 pcase Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }
" e6 o) u7 A! ~0 N( O5 m8 z: tbreak;
2 X1 Q$ a+ @6 T( j2 R. ~" `case Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE;& _/ ^' z; }! x! Y: \$ c W2 s) A' d# \$ Z
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;
7 H5 V O( o/ E$ m' ]putch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);1 v5 _1 _% ~- k; P
break;
* W# U7 G B0 U% U3 W! A7 [) Fcase Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;( l& q3 u8 s3 C- C5 ]0 I
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;$ t4 z9 T6 K1 A& M* V$ Y4 o- w0 Z3 a1 w. O
putch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);- Y/ {0 z. { L4 q$ @
break;% N1 v4 f* J7 Y* E4 C9 \
case Home: if(Maze[y-2][x/2-1]&&!b_start)) K2 a V' ]2 ?4 R8 M
{0 a+ Q, R9 b' ^6 X9 ^! ]# r1 i
StartPlace.x=x/2-1;% O& |' {0 W5 `8 c# N+ A" O2 {
StartPlace.y=y-2;
' `2 y7 {- S. I* Tputch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');. J" \/ g& j: \* W- y' j
gotoxy(x,y);) V, B" Z$ F4 J& p$ y9 F& J
b_start=TRUE;- P! h" n- r- y3 I- X9 s7 k( b
}$ W( a7 O$ D) l/ X$ V( }
break;
5 B3 Y7 R0 t- Y7 Wcase End: if(Maze[y-2][x/2-1]&&!b_end)
0 T# E3 o3 h- ?/ n{& X0 a3 k2 M7 @. _9 |4 e
EndPlace.x=x/2-1;0 K+ a* t( Z8 w3 V
EndPlace.y=y-2;
) L0 {, u/ G$ ]6 jputch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');2 [3 {7 q2 O+ X3 Q% S
gotoxy(x,y);$ d! I, Y9 V+ ]3 A0 E$ @% z
b_end=TRUE;
+ s+ d. ]$ `& {) b* n) [, r}
) ?7 x1 J: c1 O" J$ e+ Qbreak;
1 I- m( R, l# F d. Acase Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);$ W7 c z- v! b/ u# ~
case F9: if(b_start&&b_end) flag=TRUE; break;" T$ }! H) s: @" c8 A
case F2: gotoxy(2,22);, F! `9 L. B& y8 u, p
printf("Savename:");* x+ F& ~* L5 U4 b
scanf("%s",savename);
5 a1 v! w" z+ sgotoxy(2,22); }. u& j0 s7 M# e R
if(SaveMaze(savename)) printf("Save OK! ");
X$ {' F2 B& n3 W! J! u1 X! {else printf("Save fail! ");
+ M+ ?+ Y7 G! y! v0 k- J$ B' ksleep(1);
) U9 L2 y% }9 Z, J" l4 wgotoxy(2,22);
3 F) S8 [# i$ A3 [& v) X6 r) xprintf(" ");' H& y3 j4 r8 Z$ q( u9 m
gotoxy(x,y);5 y1 _" Y/ ]9 Q
break;5 S* ^/ q/ G6 E' o' y
default: break;5 q+ b; p. X( V; r, u9 o7 f
}
+ m7 r7 O# J/ J1 Z/ v& L3 m5 y) _}
, g4 x! ~# s, s1 p0 gwhile(!flag);
3 H( {, w+ g; p- Q- Xfor(i=0;i<30;i++)
. G q) L2 `$ j9 rfor(j=0;j<20;j++)
; @7 r/ U$ R7 H{
0 B# p7 L- C6 n) m! zmaze[j].td=Maze[j];4 r0 r y; m/ l9 z) T. y
maze[j].mark=0;5 d0 C" h6 Q7 ]. }, _( k8 W
maze[j].foot=0;- H1 @0 V7 |8 [, v% A# X
}# v6 E9 ^# g! y' j) n
}! Q! F9 F1 }% ]* v2 {; [
Status LoadMaze(char *file)
+ I. u: l6 @& S( M+ U) {/* The maze has been loaded. */
3 x* w- @$ r' _6 R{
* k- E+ a. O: Q( x) J- M1 F: O. @ y5 ]FILE *fp;
7 n% d/ }! p6 s" t, i; ochar *buffer;9 \# ?* V9 M4 p1 S# V$ T* @0 e
char ch;9 i9 |2 R; a0 V2 S! q) j4 V
int i=0,j,k;
& H0 Z0 n d! Z- @ Q5 t3 pBoolean len=FALSE,wid=FALSE;
) w- e9 P- ?2 Y3 K) a/ ?% z# _if((fp=fopen(file,"r"))==NULL)
+ l7 \9 u7 n" K' r/ V& u0 Freturn ERROR;
" u/ c4 N& G$ r. y+ xbuffer=(char *)malloc(600*sizeof(char));
" w7 H u7 W9 wch=fgetc(fp);
- c, k( Z# o$ L5 Twhile(ch!=EOF)* v. y, E. p" |9 i: O9 W# A% m
{- T, _8 F. z) S' n9 P
buffer=ch;
0 x/ Q2 m$ S1 Ui++;
2 z9 Z, D) _) mch=fgetc(fp);! A$ v4 B, ^% b
}
. O3 Y k1 A) f' gm=30;n=20;
* o( A+ D7 S2 L. ~$ A: V. c5 Dfor(i=0;i<600;i++)
3 W7 `, b* }. e; J8 f- @4 n{
, Q. n6 c, g# D! h" M" G- \( pj=i/30; k=i%30;
& [3 L9 [! `: T3 j9 nif(buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }3 x# T- ~/ Z9 z
if(k==0&&buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }
* \ v8 |. t, q9 Y& w" k% qswitch(buffer)
% p1 H* Y! Q4 G5 J( v+ G. D& [+ N{
, h4 F! j( L$ {! f3 B i7 z" [- ^* icase ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;) {5 x Y& f( q/ s8 N; E
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;! \' n; I* S2 U8 R7 J
case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;$ h2 ]; i2 ~( k' i1 Q
case ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;/ S4 q! i# L' f$ \
StartPlace.x=k;1 w5 W( J6 d/ f3 R2 V
StartPlace.y=j;" q, a$ D) p$ z- v @6 ^
b_start=TRUE;
' \) i, k% Q* w, b& l* }* [break;+ x' f7 ^( k' n$ G* v6 m+ b
case ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;
; ^# h& S( w) ~( A- u$ g MEndPlace.x=k;
! j9 y u" w# S7 O ^EndPlace.y=j;
1 j' v6 c+ s Y1 ?b_end=TRUE;; P2 b& ~7 k4 z" W: l( Z
break;
! E2 z5 `& W# |! I4 `* x, }default : break;
( B: Y4 @7 ?8 M0 a3 T: @2 S}- k1 B9 L4 w+ V4 [1 V* V. j9 y
}
# f8 o! H1 o. H( ufclose(fp);- Z! r/ Y6 c. J7 k' Y
clrscr();& a5 ?! M- W- T. n! `* D
for(i=0;i<30;i++)
/ m1 ?' U4 a+ F: {; q% Qfor(j=0;j<20;j++)4 f4 }, J1 l& e. v0 I
{
7 d: B& C2 c1 X" r9 q6 s& L1 H: Ymaze[j].td=Maze[j];
! _( M5 N2 F( x# r1 p2 r- f% ^maze[j].foot=0;( g, N* K/ l0 k
maze[j].mark=0;
. l! n& Y' m1 ~. Y, aif(Maze[j]==0)+ J5 d c3 G; N z
{2 j$ ], ?. s1 p- `! A9 p: D
gotoxy(2*i+2,j+2);
" A, N+ w8 j3 q! Z1 gputch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');9 b+ {5 |4 R) O9 S, E' B1 v
}
1 k( H* G; y9 \7 x7 P, ?/ f* b}
' b8 A9 P0 M E2 Ugotoxy(2*StartPlace.x+2,StartPlace.y+2);
- A/ }, ~- b0 ^. H3 q7 m5 }putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');. Q2 I+ \3 @' O
gotoxy(2*EndPlace.x+2,EndPlace.y+2);6 i4 h# B$ @# [5 |+ k
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
; Z/ u8 ] l, a Y* Ereturn OK;
, F6 c8 I! r' x7 O. u w}6 j3 s& L |" L; `
Status SaveMaze(char *filename)$ U" f4 b4 p2 M5 n
/* The maze has been saved. */
8 @0 R8 I7 ~; Y' f{8 d# _7 F- G4 |. {/ L
FILE *fp;
3 f6 B* s' g0 W/ b0 @char *buffer;
# x8 \4 E7 d# u. K6 Sint i,j,k;7 N) T9 n% V5 A; }' ?
fp=fopen(filename,"wb");+ [0 {: x7 v1 S. K1 ^% t$ E: b
buffer=(char *)malloc(600*sizeof(char));
2 f' W- F1 \) x7 s7 S* Afor(i=0;i<600;i++)
+ Y0 S/ i, @/ D8 L2 m$ } n{: W7 `: T7 Q/ {
j=i/30; k=i%30;3 H% M* I5 F0 f
switch(Maze[j][k])
$ b0 G9 W, h9 t' s+ K{
! F. x: N) w9 a5 I7 Wcase 0: buffer=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break;
# t* g K- u; C' ~case 1: buffer=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;3 R8 M. U, ], L( j9 ^1 }2 d( I
case 2: buffer=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;
$ a. k" R' z5 K jdefault : Error("Write"); break;
, o! A+ i7 _5 k) q8 d& X3 J}. _* B& u B8 _' P. C
if(k==StartPlace.x&&j==StartPlace.y) buffer=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';
`. i+ ~& D- J% p3 m# i- Cif(k==EndPlace.x&&j==EndPlace.y) buffer=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';
% D( I- g9 M5 ^# O! G$ b1 X}
, i( q* r, m+ x8 W- T% h" cfwrite(buffer,600,1,fp);
) o! r3 g1 N% a& x; R% J. h I+ {free(buffer);# Q! V; T- v( C* N( d
fclose(fp);9 v6 `% Q) x2 N4 |1 s
return OK;
A' j% L8 j! ]3 ?* J}8 g3 L$ I; `8 y- A" p- Q' _0 X
void Error(char *message)
- W' b. D. y& p( A# x{$ w* c7 p( a% K* M* D* g! Y/ K. _! R
clrscr();
0 o" t4 s' q3 |fprintf(stderr,"Error:%s\n",message);
8 k- D* ?1 _2 W+ n8 |exit(1);2 ~4 U! q* }6 o6 j& t
} /* Error */3 n% H2 v( X3 q! @, z7 e, U
# G' y8 B( p% ~ d9 H4 Y
Status InitStack(Stack *s)' l% B6 t9 T" ?4 B A2 B/ h/ x
/* The stack s has been created and is initialized to be empty. */
5 K" J/ {1 l6 k& ?& }2 K; {! i{) N4 J d" u" E, {; {; u
s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
/ E( O+ x7 D- X- G4 oif(!s->base) Error("Overflow");
$ H& `, N$ E( r2 [3 c! i" C5 us->top=s->base;
, g- r+ q& P& q4 {! R) ps->stacksize=STACK_INIT_SIZE;
3 f! E9 m( y$ I/ j% {0 U0 qreturn OK;5 K l3 j0 n5 {& B& v" L$ e
} /* InitStack */
4 y1 [" P% D# F7 l, e9 g' _$ lStatus DestroyStack(Stack *s)
; y# Q, i1 v8 W, P# u$ R; K/* The stack s has been destroyed. */
; ~& Q) F! o+ C/ u{
) W% j. f7 k8 t! ts->top=NULL;
: Q7 O. K2 ^; _7 Y/ ?% ^2 ?s->stacksize=0;
; M" I$ Q/ I1 ~- `) v. Z8 Ofree(s->base);
6 c0 x/ I3 C" r& n# A# Z6 B+ is->base=NULL;
3 B( a) V' u1 O/ N" V. H+ treturn OK;! _+ u; s: J5 e
} /* DestroyStack */
! \4 o. e+ E- l! Q% KStatus ClearStack(Stack *s) ?8 I. \$ W& Y& g: s
/* The stack has been clear to be maximum. */
+ Q+ i" U2 k- [; B; W{! r7 f( ]" k# J7 f7 {8 l# C8 p
s->top=s->base;8 C- a+ B1 c y) X( o+ Z6 q
s->stacksize=STACK_INIT_SIZE;
; u3 v; K% D, d; }; ]return OK;: A0 P8 G q, |' k9 I) A% a
} /* ClearStack */
7 r2 \4 @ A. S' n& `& r' bBoolean StackEmpty(Stack *s)
9 ~& D7 N' x' N0 U/* Check if the stack s is empty. */" ?/ Q$ W, R9 D1 Y5 c: X0 R0 R
{
0 a0 K2 {: v% s* W! yif(s->top==s->base) return TRUE;, a5 K; @( P1 l6 E4 | e2 \
else return FALSE;
: f+ D& s) a( Y3 O7 T% ~- L! D; @} /* StackEmpty */- v8 r0 O; O: a) y1 g' I" f
int StackLength(Stack *s)
" D: z! R$ e( V$ B) T/* Gain the length of the stack s. */9 ?: N7 E% Q% `
{
3 s. L& M8 D ]# y bif(s->top>s->base) return (int)(s->top-s->base);
5 h% H$ k9 \2 J6 \else return 0;
+ H' N" ?% f- W' ~6 h- D, x} /* StackLength */: n1 F) e" e) \. L+ Y# a
Status Push(Stack *s,SElemType e)7 V0 v7 h) H" [" Z% \: I6 c
/* The element e has been pushed into the stack s. *// V* r& o# _8 d
{
! a k, S+ x2 u0 [if(s->top-s->base>=s->stacksize)
& t2 m. e7 Z P( ^{2 l( b9 s E: l2 M* ]8 w8 m4 a2 J
s->base=(SElemType *)realloc(s->base,
5 t: x- T B7 [% R(s->stacksize+STACKINCREMENT)*sizeof(SElemType));
+ V7 p5 h h. eif(!s->base) Error("Overflow");% T- d/ \+ H7 {! Q1 h
s->top=s->base+s->stacksize;
- [$ p6 ^1 f/ S& ^, N' j: Zs->stacksize+=STACKINCREMENT;7 s D7 J& }5 h" I! T1 H
}
: t' i$ }) p: @: T. D3 y# Y) y& y*s->top++=e;
& D2 x' Y2 o+ [* q0 t$ t t8 \1 Freturn OK;
/ S0 `2 k# r2 @# L5 z3 @9 H2 ~} /* Push */
6 u& T9 e! F1 \5 i$ oSElemType Pop(Stack *s,SElemType e)% m* p! A4 K3 F% n4 o
/* The element e has been removed from the stack s. */
' [) f8 D+ \- E{
4 W( |$ \" U2 Xif(s->top==s->base) Error("
op");* Y* f" W; d2 i. \3 p
e=*--s->top;6 r& x0 F, Q1 J5 w' b" _
return e;% ]6 K) Q6 B; Q( q3 k
} /* Pop */
* z$ u" \/ r$ {Status GetTop(Stack *s,SElemType *e)' N8 M! F2 O2 ^! g
/* The element e has got to the top of the stack s.*/
% b1 p5 A( s- \! z. N& z# M9 z{5 H& `6 s% d4 s+ E5 D& w
if(s->top==s->base) Error("GetTop");
: J& k: y9 u5 I- e$ m*e=*(s->top-1);
2 s# v* D9 `) w8 G& B2 D2 J6 G Mreturn OK;- A9 b% K. F$ P* L6 m; P1 W4 y
} /* GetTop */
' c9 X) S) T" r' y7 {/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */& z o& j) j( g o- z1 F2 _
/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))
6 P/ ~7 E' p% e: F{/ Q0 s; u& A' v
SElemType p;
; X/ n0 @/ B y- w9 \int result;4 x; o8 h0 K. H: Z7 c3 Q5 {; Y; t- n
if(s->top==s->base) return ERROR;
% U* k9 Z7 b8 w. o5 ]- ^9 ip=s->base;
# b/ z4 A* X! o. ]6 Cwhile(!(p==s->top))
& J3 q1 R0 h6 I# m- w5 @# S{% T" y1 b3 m& E7 @' s& k! y
result=(*visit)(p);
3 C& M& ?5 B$ S6 ?p++;
- N! Y. o7 e7 \& c( `5 p}
. F1 i4 z; D/ A* \; D. d creturn OK;
, K q% H1 [6 D- N% o} */
3 M H8 |% `: ]$ \/ F3 s7 GBoolean Pass(PosType curpos)
9 H' t/ a3 h* l- ^# k/* Check if the current position can be passed. */
- [6 A& g* r8 u% L9 N9 ?{5 z* b- `" B6 E5 u& K
if(maze[curpos.x][curpos.y].td==1&&
+ D2 N* t& g- [5 K/ \. F1 r) W* [maze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)- O. |8 P' q$ _7 d
return TRUE;" b3 V! Z6 Y! W5 V4 X" b' E$ l
else return FALSE;8 z" T0 j9 e. Q' r5 K
} /* Pass */
( L* T5 s$ b: w9 H0 Z1 Y& h4 ]void MarkPrint(PosType seat)
! E" V) V' z! b% w- J4 E/* Mark the position seat. */ c/ B2 ]% {. V1 d( J0 K
{! A, m! m3 u5 r- {
maze[seat.x][seat.y].mark=-1;
, q" A8 P# `% w) l: A: @/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */
' E5 i$ Q$ f2 g$ {# c} /* MarkPrint */
7 H( _/ N8 N- _/ X; [void FootPrint(PosType curpos)
. [# v2 r4 a8 F- j! ~+ z0 e/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */7 J6 L) H$ W" r/ b9 F6 [
{3 n- ^$ k3 ]( m
maze[curpos.x][curpos.y].foot=1;
0 \- B2 n' Q f! h" @$ V: e} /* FootPrint */ r; |: }( i" i9 f
PosType NextPos(PosType seat,int di)
) f5 M; F( }- b$ z+ X0 O1 m{# J& j1 ^, H' L4 Y- [9 T
switch(di)4 w; |# |( x) ]' G
{* b; x3 i! P5 P$ I3 S
case 1: seat.y++; return seat; /* Eastward */
2 ^, O5 W! B9 m, R t$ @7 _5 Acase 2: seat.x++; return seat; /* Southward */
% l- O8 m% S' j: A5 _case 3: seat.y--; return seat; /* Westward */
8 S- p/ R" \& g$ |8 w' Wcase 4: seat.x--; return seat; /* Northward */
, e$ L' ~8 u! O- C! O& q; v: `default: seat.x=0; seat.y=0; return seat;
+ p: c# t# y- t9 v4 F j}! v, \8 V6 f7 Z) o; w+ M3 @: W* O
} /* NextPos */
- S! d; ]* t# l. y E! s+ ^ y. s' U( e
/* The key to the program. */
& V$ l1 n& o+ E5 n: E8 \* k/* Pre: The maze array & the startplace & the endplace.
; I; {4 F; v9 {2 w" _Post: Find the one traverse of the maze and perform the mazepath.
3 P1 ^% e: v5 T. f* L/ i1 F7 PUses: The ADT stack class.
0 @% {4 {9 K) U3 y*/; u$ I- l+ _7 p
Status MazePath(PosType start,PosType end) [6 W4 g$ m& X7 \# _1 C
{
& g, \; J" @% }& pPosType curpos;
, g. A* V7 g$ a2 }int curstep;
3 x, A4 a/ h6 [' J; p/ h% H- eSElemType e;3 p4 R+ {1 m" r: P2 b1 w0 o) Z
Stack *s,stack;
# q% Q( g; Q% s7 d T, |stack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));8 o: e& G+ d6 J
if(!stack.base) Error("Overflow");
5 V# l; F. v- ?7 ]8 p0 Y! L! vstack.top=stack.base;3 t0 n& {) _2 Q
stack.stacksize=STACK_INIT_SIZE;9 m' \2 s `* k+ J) o
s=&stack;
- l6 g" `: R V+ Lcurpos=start;
+ x9 C5 R% A, [- w1 R, G- C. Qcurstep=1;
7 {4 S0 ?9 W' u6 t3 ~/ Edo/ U d' S: _( ]! n
{1 } B3 ?! D. b& C- D1 q
if(Pass(curpos))
( C9 M& G2 _% E+ G{
: I5 p v8 h6 V9 B$ tFootPrint(curpos);) g9 c) W8 y- P
e.ord=curstep; e.seat=curpos; e.di=1;9 }! F6 `. b; w# K
gotoxy((curpos.y+1)*2,curpos.x+2);& d6 ]5 ]4 b( }* B% s5 h. N6 N
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');6 h4 H9 m+ ?: ^2 ^4 X5 F
delay(8000); /* pospone time. */
( L3 J3 B9 x0 G: W6 a1 F- TPush(s,e);% T; o$ f- W7 `- `, L) i( O U6 h! Z
if(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */
% b' \" t( ?; N* K: D{
) ^! R0 e$ d# w( u) xDestroyStack(s);, _5 t$ N6 g3 m6 J: E
return TRUE;
4 y m; i' l+ q1 `0 B9 Z}
3 p; N0 v3 X$ `9 e0 I: C& \curpos=NextPos(curpos,1); /* Try next position. */
( M" R: x8 a# \$ G2 u9 u( mcurstep++;$ d$ _9 ]' G" p! A- G( {
}
9 i6 G; S- e# X% [9 ^else. y5 v2 U, |- I, q; o1 s
{' ~2 ~& T* l7 W9 @
if(!StackEmpty(s))
- V) F9 |; B! n$ e/ p( t; Y" }! k{5 b/ P2 l& f- y* P5 ~( v
e=Pop(s,e); /* Removed e from s. */
7 V1 L% N9 H) F0 r" [8 o/ pwhile(e.di==4&&!StackEmpty(s)) /* Four directions have been checked8 I+ k+ u. f' C0 T# W0 X
and s is not empty. */
/ m9 ?7 Y6 _! T& l4 B{7 v/ O- l. K5 u+ M9 d
MarkPrint(e.seat);+ U/ N9 h' H5 y
gotoxy((e.seat.y+1)*2,e.seat.x+2);
+ a$ V# l, H+ `/ d! P3 nputch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
+ m; o7 G" o$ P; y: odelay(8000); /* Pospone time. */
) y# R& b3 R: H6 T; [" P2 ?( j" Ugotoxy((e.seat.y+1)*2,e.seat.x+2);0 `, `, u# A# W' r
putch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');
* x5 p% Z/ t( L+ \e=Pop(s,e); /* Remove e from s. */
, E4 _) k7 ^' [9 _+ }- r3 A8 Kcurstep--;
b: a$ g. D) o, s/ H6 `9 @}
+ u9 p7 S6 E( i9 rif(e.di<4) /* The current position hasnot been checked. */
6 ]: q& n i4 s{
1 ^) @/ \! a$ Ue.di++;
3 w$ O$ q6 D2 {3 j+ x- B5 [. kPush(s,e); /* Insert e into s. */
3 Z$ a6 N) H! i9 \" R( u: Fcurpos=NextPos(e.seat,e.di); /* Try next position. */' A. k c2 c9 W7 e# L7 q9 z/ W
}
8 ?8 \$ `* I @: s! e3 p& F5 x}
) r5 ?3 e* E" @# R}
. A$ r/ R$ F. O}
& [' ?, y# e( j: }3 |while(!StackEmpty(s));9 _) v7 y p: T: y, O B
DestroyStack(s);4 X' ?0 t( B$ i
return FALSE;
' a6 S/ h& R# x- b+ B} /* MazePath */
* R( l, G. |8 T+ Hvoid main()
/ r, E z6 A0 I5 V8 }0 |7 H( C{
4 I, x( |5 u: w' b# _: [PosType start,end;
( S& x* ]* [7 D8 Q+ KCreatMaze();
% o7 M3 h* L7 Dstart.x=StartPlace.y;
+ Y2 D0 a' f9 b3 m: pstart.y=StartPlace.x;5 D+ r O/ i6 ?0 @' P: B1 T
end.x=EndPlace.y;" f- G2 I% {- i6 F
end.y=EndPlace.x;
( s! S' D- n8 I7 X9 D: Mif(MazePath(start,end))
" c/ A, C" N* a( b* i, ?' J. j& v{
' q0 F+ y1 ^7 qgotoxy(2,22);/ a2 _5 t7 X+ D8 M; l
printf("
ath found\n");
$ i+ b/ g. I5 U$ Q! k2 h6 _}# a9 G* G/ {6 l- k% D5 [
else
8 N$ p C$ J! F: j9 M. R{; p. q" F, _; \/ V4 [. s
gotoxy(2,22);
' Z6 }- h; V+ D2 h2 P/ n! Eprintf("
ath not found\n");! h/ ?9 u- w$ c' j$ q9 i
}. w5 I7 |" X8 P- Y8 g' L9 U
getch();/ m6 P, l0 [# h& Q8 L
clrscr();
5 L! ^1 f4 v8 H# j} </P></DIV>
作者: 韩冰 时间: 2004-10-4 02:36
<
><b><FONT color=#000000>.:.:上海黑暗之龙--麻将原代码:.:.</FONT></b></P><DIV 626px; HEIGHT: 132px" align=left><
align=left>部分图片未上传
; c2 O1 b: f0 h3 B8 p. f/*天宇软件
% @( `0 o9 `& T) C4 W; Q2 u作者:上海黑暗之龙
, {/ e: A5 _% f, D+ T2002/10/307 R* K7 G/ ]% i, E p2 W* O' _
麻将原代码*/
. Y e9 c2 T! o! f#include "dos.h"
6 @8 q5 h- _; |+ ^5 g! R#include "stdio.h"
" w$ ?& B, {0 Z2 `! H( y#include "graphics.h" v" W3 ^2 E' T. W) @. z' f' d
#include "bios.h"
|' y& ?4 H/ H8 ~#include "conio.h"" B9 h z/ \' j! [0 z
#include "stdlib.h"
. v) j& v" {" v4 G5 S+ L" i- {% `* Yunsigned char far *video_buffer=(char far *)0xA0000000L;
$ w% [; b0 r- h9 i: a#define VGA256 0x13 /*图形模式13h*/
" G, r- ^0 D/ N; j9 K; N) K5 E#define TEXT_MODE 0x03 /*普通文本模式*/2 X; E1 k7 M& H) T; @
#define SETVGA Set_Video_Mode(VGA256)
6 {) s E7 }- u- V+ q, d$ y#define OUTVGA Set_Video_Mode(TEXT_MODE)
: f( L/ a9 p* }: `2 M#define BYTE unsigned char
. m" _/ N* I/ ^3 T#define WORD unsigned int( I& m* n. y7 C) L1 L2 H- g6 B
#define DWORD unsigned int' N+ Z0 A' E6 r1 D6 O4 v Q8 x- } M
#define ESC 283
4 X! |4 j9 e' k/ D#define LEFT 192002 u- C) x( D, V) h; H
#define RIGHT 197127 F" G! a- O& e
#define H 9064
6 G, G+ Q9 ?$ G. S3 F q#define ENTER 7181
0 W/ ?9 v& v3 D1 ^, k0 h4 j" Zunsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;# r, N: _4 x% t. [
int key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;
# P. y7 O/ C2 c% Nstruct chi
0 q. T; w- _) V2 D% ?{+ \# [5 |2 T& U$ s8 h
int lg;8 @3 |6 B6 z. M) g, s( ]
int lgg;
: c2 c2 v' a. T}ch[13];
# p2 g: X5 I5 O& X$ lstruct mj( I/ L- h. H' E0 \
{ char *name; /*名字*/
- R0 g1 p) W5 aint data1; /*是否已出,无用了*/+ P) h( d; G+ p* O
int data2; /*是否在手中,1为自己,2为对方*/+ h n: t- A; ^ U& {
int number; /*同一个花色的第几张,共4张*/( V2 V7 F8 z" H- i4 L
}m[136]={"1.bmp",0,0,1,"1.bmp",0,0,2,"1.bmp",0,0,3,"1.bmp",0,0,4,"2.bmp",0,0,1,
$ x9 i" K8 C9 b2 w8 C"2.bmp",0,0,2,"2.bmp",0,0,3,"2.bmp",0,0,4,"3.bmp",0,0,1,"3.bmp",0,0,2,$ R5 B7 q# L. j
"3.bmp",0,0,3,"3.bmp",0,0,4,"4.bmp",0,0,1,"4.bmp",0,0,2,"4.bmp",0,0,3,/ q# J6 m3 V x3 |+ x
"4.bmp",0,0,4,"5.bmp",0,0,1,"5.bmp",0,0,2,"5.bmp",0,0,3,"5.bmp",0,0,4,) Q* d& ^& q5 u p: ~
"6.bmp",0,0,1,"6.bmp",0,0,2,"6.bmp",0,0,3,"6.bmp",0,0,4,"7.bmp",0,0,1,( U2 e. k- b; f( ]3 H
"7.bmp",0,0,2,"7.bmp",0,0,3,"7.bmp",0,0,4,"8.bmp",0,0,1,"8.bmp",0,0,2,
1 o# G* C# Z+ D+ r4 T ~"8.bmp",0,0,3,"8.bmp",0,0,4,"9.bmp",0,0,1,"9.bmp",0,0,2,"9.bmp",0,0,3,7 _5 r8 N5 }0 @" z. Z% R# m
"9.bmp",0,0,4,"10.bmp",0,0,1,"10.bmp",0,0,2,"10.bmp",0,0,3,"10.bmp",0,0,4,
) `: ?9 G% t! k$ G! j$ h5 W6 t"11.bmp",0,0,1,"11.bmp",0,0,2,"11.bmp",0,0,3,"11.bmp",0,0,4,"12.bmp",0,0,1,) D% G9 K2 ?" z+ j( z
"12.bmp",0,0,2,"12.bmp",0,0,3,"12.bmp",0,0,4,"13.bmp",0,0,1,"13.bmp",0,0,2,
( l8 n0 \% ]1 U9 m. C"13.bmp",0,0,3,"13.bmp",0,0,4,"14.bmp",0,0,1,"14.bmp",0,0,2,"14.bmp",0,0,3,; q4 a5 u" l2 h/ `
"14.bmp",0,0,4,"15.bmp",0,0,1,"15.bmp",0,0,2,"15.bmp",0,0,3,"15.bmp",0,0,4,
; F+ ]" R. b1 Q8 S' C"16.bmp",0,0,1,"16.bmp",0,0,2,"16.bmp",0,0,3,"16.bmp",0,0,4,"17.bmp",0,0,1,
/ _' W& i8 x7 R3 @ x' @"17.bmp",0,0,2,"17.bmp",0,0,3,"17.bmp",0,0,4,"18.bmp",0,0,1,"18.bmp",0,0,2,
7 A0 ?* L$ l u0 S M: d# E# V"18.bmp",0,0,3,"18.bmp",0,0,4,"19.bmp",0,0,1,"19.bmp",0,0,2,"19.bmp",0,0,3,8 h/ @8 m, j# z8 p) u4 T( }
"19.bmp",0,0,4,"20.bmp",0,0,1,"20.bmp",0,0,2,"20.bmp",0,0,3,"20.bmp",0,0,4,
8 R2 \$ d9 V7 \"21.bmp",0,0,1,"21.bmp",0,0,2,"21.bmp",0,0,3,"21.bmp",0,0,4,"22.bmp",0,0,1,
' O2 r* s3 W" I6 X; R"22.bmp",0,0,2,"22.bmp",0,0,3,"22.bmp",0,0,4,"23.bmp",0,0,1,"23.bmp",0,0,2,
8 F) F2 i& G3 T9 p) W"23.bmp",0,0,3,"23.bmp",0,0,4,"24.bmp",0,0,1,"24.bmp",0,0,2,"24.bmp",0,0,3,9 d7 u% k2 L# r( O
"24.bmp",0,0,4,"25.bmp",0,0,1,"25.bmp",0,0,2,"25.bmp",0,0,3,"25.bmp",0,0,4,/ D# w ^7 V: [* k
"26.bmp",0,0,1,"26.bmp",0,0,2,"26.bmp",0,0,3,"26.bmp",0,0,4,"27.bmp",0,0,1,) x1 Z+ j' c+ ^9 D0 o# ?& u6 q8 M
"27.bmp",0,0,2,"27.bmp",0,0,3,"27.bmp",0,0,4,"28.bmp",0,0,1,"28.bmp",0,0,2,
& n3 v- V# ~4 [0 `7 g! v8 g, y. K$ k"28.bmp",0,0,3,"28.bmp",0,0,4,"29.bmp",0,0,1,"29.bmp",0,0,2,"29.bmp",0,0,3,
]. }- o+ p$ ?4 c& I- a"29.bmp",0,0,4,"30.bmp",0,0,1,"30.bmp",0,0,2,"30.bmp",0,0,3,"30.bmp",0,0,4,) }6 O" g$ y5 m$ U% z" E
"31.bmp",0,0,1,"31.bmp",0,0,2,"31.bmp",0,0,3,"31.bmp",0,0,4,"32.bmp",0,0,1,6 x, T$ Z/ C, Y
"32.bmp",0,0,2,"32.bmp",0,0,3,"32.bmp",0,0,4,"33.bmp",0,0,1,"33.bmp",0,0,2,
- N( Y$ j3 ]1 `' W9 v, X/ |"33.bmp",0,0,3,"33.bmp",0,0,4,"34.bmp",0,0,1,"34.bmp",0,0,2,"34.bmp",0,0,3,5 A5 o! S* d" h4 r* Q- |
"34.bmp"};
h, H' b/ {( P1 j& S4 gstruct every% r! L# [% e; a, t7 d& r
{ int *k; /*名字*/
3 K# K& o5 F3 zint oneorfour; /*同一张牌的第几张*/
5 Z8 Z9 f7 `% j! O+ Pint number; /*第几张牌136*/
& H$ Z$ ]& T+ A+ X. qint p;
2 T' p& s% R E- D: q6 E; P5 hint g;; a# c" d* Y4 s' U! K5 ^
int c;0 e$ N5 X- O }
int d[2];' d! L* N+ a( f+ b$ W/ j% L# s& O
};
1 c# p4 |1 O9 S+ U) ]* w2 vstruct me
3 w1 q$ X5 D2 j+ V/ p# L5 x{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/# T9 s6 d$ D) Z/ ?7 t% _
int p; /*乓对方*/
7 R2 D d8 L. W4 L M+ L Jint c; /*吃对方*/
0 B+ n% [- T+ U6 M* H3 K8 M, mint g; /*杠*/4 j4 p/ [6 k) `9 j" D# T7 ^
0 C1 p6 S9 L- x( ^0 a' V
struct every pp[14]; /*存放手上的牌*/
7 O" D7 E9 n- n- m}me;
2 _# }. P2 r( p; d: istruct computer* q+ a1 ?, E" a' I) b+ q9 | R
{ int m;
" o5 a, \6 c; O+ p" C3 W4 Fint p;! B3 K7 `% m1 s
int c;
; F4 e/ G* s, u. l3 z7 X- aint g;7 i2 g, I7 Y& c
struct every pp[14];; Q- M6 Z5 X# `5 e) G
}computer,comp;! q; E" ?, r3 |; `+ Z0 _
, F- ?" M! ^& M/ c `2 c: ~ d( k
/* 设置调色板 */
4 w/ e; f8 @" |5 \# w, T3 B! o, Fvoid Set_Palette(int Color,BYTE r,BYTE g,BYTE b)8 r, V$ r* g1 ?( Y2 x$ f! m( W
{2 M' A) l) N) m% {" B
outportb(0x3c8,Color); /*0x3c8写端口 写色号*/( M0 k* V( y: L# V; E- [
outportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/
9 }* a& s2 d1 j8 o( S, a( Koutportb(0x3c9,g);" @, G3 |4 F( z! f0 Q* m9 J
outportb(0x3c9,b);* x3 ?. D# s. B4 A( Z6 `1 c I* D
}
- ^3 U) Q0 X2 |5 ^+ i* v8 I3 ?- m5 b/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*/" ?$ C% j. A9 i! Y1 }) l
/* 设置显示模式的函数 */
# m! y1 s9 J0 k, L8 rvoid Set_Video_Mode(int mode)+ x. o7 p) i g" l! V5 s
{" V% ^- U) j8 m3 `, ~1 F7 D
union REGS inregs,outregs; /*定义输入和返回寄存器*/+ o5 D) E9 ^6 S/ R" o8 B
inregs.h.ah=0; /*ah存放功能号0h表示进入视频模式*/
/ H, [, d9 P3 w5 S, R7 w8 |inregs.h.al=(unsigned char)mode; /*al存放要设定的视频模式*/; K5 o% T9 @" g+ ~2 N( A/ A2 y4 ^
int86(0x10,&inregs,&outregs); /*通过10h中断设定显示模式int86()包含在dos.h*/' X' v2 y' J2 Q5 K
}
8 s/ T4 K6 d( |. P! o" l5 `& Zvoid v_line(int y0,int y1,int x,unsigned int color)7 ^9 h( S9 k3 w, g
{ unsigned int address,n,temp;2 V: T8 N. E% _/ J1 ~
if(y0>y1)
; w6 _4 \. k4 [' B6 O{
. F s: e# P' Mtemp=y1;
3 Z) c( T5 Q5 L6 y, ry1=y0;
! E! C7 s# ~8 m' T/ ]y0=temp;9 }; H' A6 Q n7 a' ^) G
}
' H, l1 {: X, laddress=320*y0+x;" q& D7 ~" @& v( C* C7 t
for(n=0;n<=y1-y0;n++)
8 G) j. d; o4 E2 F, d, {{5 [, {/ n1 ?# O* A1 G8 U& f2 M* b
video_buffer[address]=color;
$ A. {; E# M7 W6 faddress+=320;' F/ @' ]+ X( {
}0 D- |7 R8 ^- ?
}
! N2 C+ O/ G- Wvoid h_line(int x0,int x1,int y,unsigned int color)6 v- U" M/ |8 ]2 L- s* C1 |
{ unsigned int address,n,temp;
9 R- z3 f9 |* n& T$ [; kif(x0>x1)
0 f! @/ M* Y' e; r9 e+ i/ Q{
' J6 i, e: L; `4 _1 u* x! k% ptemp=x1;1 Y4 f5 O6 r. N& _
x1=x0;
: s" q# z5 S1 Q# s) T9 Ux0=temp;8 P$ o+ d- c9 p( O
} A, N" {+ [! M- S
address=320*y+x0; I& e6 t3 U/ B
for(n=0;n<=x1-x0;n++)9 _- ]' v* r5 V( b5 U' S% G4 \
{4 r! q# v$ _6 U
video_buffer[address]=color;
, Q( ?( K6 l0 f1 s$ { M" j& g2 Baddress+=1;
/ Q b8 e# y6 H. ?0 b" f5 C}0 G! g* [/ d! Q3 S8 Z. k; v( h
}, q( n4 h+ x* Z' _9 J
void p_pixel(int x,int y,unsigned int color)3 e- T' O( B; i1 F& d g: {
{ video_buffer[y*320+x]=color;
) l, i r! n: G' T! t, Q}
; y! J8 [0 [1 T2 Ivoid s_square(int x,int y,int side,int color); C2 b \- [% [; ^. D' d
{8 c0 M5 Z' Z3 Z2 s* ?" Q) T
h_line(x,x+side,y,color);/ W. S, i9 I/ F0 x, R
h_line(x,x+side,y+side,color);
& t& U" ?; S2 B& j4 Gv_line(y,y+side,x,color);
9 j0 k' |- o; C( B. X) zv_line(y,y+side,x+side,color);
+ @: y- V9 C% s+ u) M+ ^" T d0 C}5 p j4 X( K: g: o/ a! ?# ?
void r_rectangle(int x1,int y1,int x2,int y2,int color)$ k! {5 P4 I: X
{8 k2 n* t( i0 x; ~
h_line(x1,x2,y1,color);
. g$ H5 k, c+ y) V# th_line(x1,x2,y2,color);
( U! L+ w. { o' S5 u1 fv_line(y1,y2,x1,color);
2 \, {+ _: G$ P" y, W/ u: mv_line(y1,y2,x2,color);/ P0 i$ b) A9 X
}
0 {7 L8 x/ K0 W0 f+ h. R9 ivoid fillRectangle(int x1,int y1,int x2,int y2,int color)2 _0 A; Q y6 B9 B6 L
{% B' t* Z& F0 s- J
int i;4 V7 b/ K' @ _: N q3 C; w" |
for(i=y1;i<=y2;i++). B- ^3 D4 j; }+ W6 h2 f- I
{0 i3 z, W% \' y6 d6 U, ]
h_line(x1,x2,i,color);
; E0 r8 K3 b7 \! q}
$ S/ T7 `5 u" Z! U7 c0 v! {' ~ ^: `}/ p5 l2 d# d9 `1 c# q# j9 v Z
void showbmp(int l); n- y" K1 G, G; {
{ FILE *bmp;% B" C0 H% X# z" X' ^3 L: { ^4 `
int i,x,y;: H- }5 h# C; u! Y! v
BYTE palette[256][3];4 r# ?4 @$ B8 ^. B" w" A7 g
bmp=fopen(me.pp[l].k,"rb");& a1 C6 f: y# M6 a% ]- D7 q' q
fseek(bmp,54,SEEK_SET);
2 x$ v) E$ g$ o) l' C$ D0 C2 Nfor(i=0;i<256;i++)) S% d" @$ ~3 z: s+ ^
{
- q: l8 h# T( Ypalette[2]=fgetc(bmp)>>2;+ b& f, ?1 {9 [" I
palette[1]=fgetc(bmp)>>2;
) v8 ~4 {, U0 d& npalette[0]=fgetc(bmp)>>2;
0 R0 ?% L4 o+ u' H+ Bfgetc(bmp);* S% ]7 v( A# y. h, A
Set_Palette(i,palette[0],palette[1],palette[2]);
9 }( x9 |% v& l}
1 ?. f- A K' @for (y=0;y<30;y++); K" u0 ]8 F @% K4 l& \, u
for(x=0;x<20;x++)# s3 W: \, {1 a4 g
pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));
* F }9 c8 i4 u3 m0 I8 z* qfclose(bmp);8 e# r5 g6 k7 u% |
}! [( n. Q v5 Q. T: d! q @
void showbmpd(int l)5 j$ L3 U$ v5 o& y$ ^6 x
{ FILE *bmp;# I$ D# f" B( P; d
int i,x,y;' ^) l' u; k: m5 T( S! k
BYTE palette[256][3];
% a# Y3 [+ Q* t* Nbmp=fopen(me.pp[l].k,"rb");: ?8 l, p" H. J8 O( S1 ]. O
fseek(bmp,54,SEEK_SET);
1 e. p7 K( L: H; N8 K0 m- zfor(i=0;i<256;i++)
( ~! ~( p/ W1 Z- f F! j9 {{) ~- Q- u3 r: L2 I) f# X3 u* q
palette[2]=fgetc(bmp)>>2;
" o& B* Z/ C5 A) E+ Ipalette[1]=fgetc(bmp)>>2;
. O4 w* g/ V* Q S( s* y4 epalette[0]=fgetc(bmp)>>2;
( X2 n) |; Q* K3 K+ f$ Ffgetc(bmp);& }- ~: P& c+ G$ U
Set_Palette(i,palette[0],palette[1],palette[2]);
7 G) g$ R. j6 A" t% `9 F}' Y: ^$ t- W5 V2 {1 r
for (y=0;y<30;y++)2 p0 r8 U8 E, d$ `$ i
for(x=0;x<20;x++)
! F, \* X, m7 D1 f, _9 X1 C# hpokeb(0xa000,y*320+x+zyy,fgetc(bmp));7 I0 T, [7 g5 Q. }
fclose(bmp);! D# u+ q- O i/ \9 z
}
9 \0 ]0 N; G$ Y. g4 `# x ovoid showybmp(int ll)& u# C6 O2 y2 {$ y' e# z5 p% q* x; E9 O
{ FILE *bmp;
2 N; R: S' c r% v- S" O' V$ Kint i,x,y;
2 H7 v% R9 N6 g2 a) ^) W' J: l" WBYTE palette[256][3];: P2 s5 I& m, K& }
bmp=fopen(computer.pp[ll].k,"rb");
/ p! x3 ]8 L# z. U4 ]9 xfseek(bmp,54,SEEK_SET);
( m2 c2 N9 ^3 U) Y6 Ifor(i=0;i<256;i++)+ W ~8 S$ H8 {+ ]$ {0 n9 w; n
{
" X1 j' ]) i! w$ K/ ^palette[2]=fgetc(bmp)>>2;
) V, J8 y2 Q8 ^* V" \% r' qpalette[1]=fgetc(bmp)>>2;
! F; `) \" r$ D k) e% Upalette[0]=fgetc(bmp)>>2;
4 \" a- [; s) E( c) xfgetc(bmp);
9 h/ t" c6 E7 X( o( h' @4 l4 E, eSet_Palette(i,palette[0],palette[1],palette[2]);
' H% |% m! |( V$ ?; v}5 |$ Q% F I5 j' E0 C* M# z2 c8 B
for (y=0;y<30;y++)
$ [8 e& f- Z. K, {' K0 e4 w% ifor(x=0;x<20;x++)4 t8 f8 Z6 S: V4 J/ r; {% R, C
pokeb(0xa000,y*320+x+zy,fgetc(bmp));
) z9 e, Q/ x" B, sfclose(bmp);
7 `0 j- f4 X/ |5 c}0 O" D$ z. E9 z& {
void showcbmp(int ll)
' v8 J Z: Q9 F$ _1 u{ FILE *bmp;& @( H6 B2 v s+ j& }
int i,x,y;0 ? q7 u2 d1 |
BYTE palette[256][3];" k8 z; }% f% A2 F! G
bmp=fopen(computer.pp[ll].k,"rb");
9 k8 H1 Z- Q6 @9 ~% I& ufseek(bmp,54,SEEK_SET);
+ c7 r& Y1 q1 R$ x, z5 U% d6 pfor(i=0;i<256;i++)
. @+ j& \ [' f6 C% j{
& X4 X y% X& s8 k+ Upalette[2]=fgetc(bmp)>>2;5 M( Z+ U5 K3 `, D: P$ P
palette[1]=fgetc(bmp)>>2;6 i& z0 q$ Y; \) ] T+ m
palette[0]=fgetc(bmp)>>2;, h6 t, A4 P: b: s
fgetc(bmp);
/ ~4 t& H+ M+ i& y& w9 LSet_Palette(i,palette[0],palette[1],palette[2]);5 g) l$ k/ E# g! \
}
/ V' `3 x% c- }9 H- \/ a# Ifor (y=0;y<30;y++)! ?) y3 h0 d* `' B. a+ ~3 ?, O' }$ E
for(x=0;x<20;x++)
- R: D p/ z) m# B z) Opokeb(0xa000,y*320+x+zyy,fgetc(bmp));
6 _, D" p1 g! e. pfclose(bmp);
) [/ n; Y [2 n4 H/ H- u: r3 f0 h, q}
: r, ~2 v; O! q( {: p- @$ ~void bmpp(int number)
& J: Y; T) Y5 U: R; D{ FILE *bmp;4 K7 A5 q0 j* |8 l4 k. R
int i,x,y;) }: q) }5 ~5 R
BYTE palette[256][3];
8 s0 | N0 f" l# p3 lbmp=fopen(m[number].name,"rb");9 J& \- i, o, {0 H+ C; P: X
fseek(bmp,54,SEEK_SET);
C8 O3 D: x+ f; J/ rfor(i=0;i<256;i++)! {6 S+ ?/ p% R0 N( B' |
{- m% P5 y/ o0 h) Z& E, d: k* `% k
palette[2]=fgetc(bmp)>>2;& \* \/ h" a2 V5 N. w
palette[1]=fgetc(bmp)>>2;3 `) n% @' F5 p- M9 l- k
palette[0]=fgetc(bmp)>>2;
+ Z; r2 h0 [+ a0 Zfgetc(bmp);" b" F) q& v; W. j$ U, p
Set_Palette(i,palette[0],palette[1],palette[2]);
7 t, A. [' k; a3 a}
: g: X$ @+ z% K! Hfor (y=0;y<30;y++)
) i% c, D/ w) ?; Z/ ]" m+ Lfor(x=0;x<20;x++)
8 H: j) R/ m6 Q' S4 j* W0 @pokeb(0xa000,y*320+x+zl,fgetc(bmp));
0 Q, L& V, Y3 A! W! p G; `8 [fclose(bmp);4 P- B9 P" G3 N& N$ C
}) \* T ^- o0 l: [7 G0 }5 G
void comlipai() /*整理电脑的牌*/
% c( \# Y9 m% g8 f! p{ int n,j,u;6 k# a' j: s* X& d Q9 c0 }
int *lingshi;
! n/ [9 _6 S$ ^+ u' T4 Ffor(n=0;n<computer.m;n++)+ ^* M$ b S. i! C
for(j=n;j<computer.m;j++)
& p! x$ S. W5 d) F{1 Z3 l/ l! m, k9 d+ G
if(computer.pp[n].number>computer.pp[j+1].number)5 I @1 @& ?% w4 Q. N
{0 v. D# f" M' {
lingshi=computer.pp[n].k;+ M% N* |4 J% {
computer.pp[n].k=computer.pp[j+1].k;' A- D2 w m1 z0 x! F6 U
computer.pp[j+1].k=lingshi;
5 y1 s$ J2 B, hu=computer.pp[n].oneorfour;& H$ o/ y# \5 ~* F+ r9 t/ r# e" A! s
computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;
v8 l% N& l! O9 Y2 \, c+ tcomputer.pp[j+1].oneorfour=u;+ \7 h6 x) A" U) a/ @1 I
u=computer.pp[n].number;% N0 L6 {* ^% b7 R8 u, H) q
computer.pp[n].number=computer.pp[j+1].number;
, Z4 q8 U1 p; I1 U$ [. \computer.pp[j+1].number=u;
* `0 L' x2 c2 Y4 d; B- f}% J: ~$ J7 b4 j* w0 A$ v
else
9 r! j9 o2 }/ L; g) _& q0 l6 G% Lif(computer.pp[n].number==computer.pp[j+1].number)
2 K8 D* O+ W' a9 p; b8 U- y( A) }if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)
& A/ f/ v4 {. \1 b% G: g{ d! O& ^" `, V& R
lingshi=computer.pp[n].k;1 C( C9 v+ e, z5 F+ C
computer.pp[n].k=computer.pp[j+1].k;- e; H3 X3 b; Y1 z7 l3 F" L
computer.pp[j+1].k=lingshi;1 y: H; W* a' R* u/ F) `
u=computer.pp[n].oneorfour;5 P' ~( ?8 l/ g- V( l
computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;' W$ M' A3 q. l$ a4 ^6 d
computer.pp[j+1].oneorfour=u;
( }% m: Z6 \2 S5 x1 z+ gu=computer.pp[n].number;6 F) D8 ~0 [8 h4 T
computer.pp[n].number=computer.pp[j+1].number;+ G, I* R% s6 y
computer.pp[j+1].number=u;
$ _) s8 b" r0 a/ E}
7 C1 n( s5 M/ q- y a}
/ G3 l+ E. n$ F3 e, l4 P}
+ h' B: |6 T& [' Bvoid melipai()
/ ^, C9 ]) I' N( A* [& }{ int n,j,u;$ {0 a$ o' X# _% y
int *lingshi;
: j- t! x' G8 n ?8 T+ v0 ^; afor(n=0;n<me.m;n++)! U1 {/ T& K/ ^8 i
for(j=n;j<me.m;j++)
* Z. Y0 u+ k" A1 O. F, E( J# r{' o# o. Q* E$ m) ]) C
if(me.pp[n].number>me.pp[j+1].number)
5 G8 o C3 D; [3 c: s{( r* `6 q. s( L: N0 k" W8 l/ b
lingshi=me.pp[n].k;
7 ?) f: e: i4 F Ome.pp[n].k=me.pp[j+1].k;
+ j# F# M9 Y2 Ome.pp[j+1].k=lingshi;' j5 _. y9 b# w. E( h$ q
u=me.pp[n].oneorfour;
, [) N3 |! h2 [) nme.pp[n].oneorfour=me.pp[j+1].oneorfour;
, v2 Z* O! J6 u# yme.pp[j+1].oneorfour=u;
0 g; P6 d: T/ y0 T: R2 Du=me.pp[n].number;
3 b0 n# z' {8 `' u2 E" J' Ome.pp[n].number=me.pp[j+1].number;
[8 z/ i' k) l% ]9 e6 _me.pp[j+1].number=u;8 y: l, X3 q# n8 ~
}
4 A8 J3 ?/ ]) [: pelse% u1 v6 T) v2 ~8 s
if(me.pp[n].number==me.pp[j+1].number)
- @5 g9 y5 s2 W6 \+ X @2 Kif(me.pp[n].oneorfour>me.pp[j+1].oneorfour)& f7 S. u, k" t
{+ c0 l* {' `! u# D
lingshi=me.pp[n].k;
2 P0 d& S& _& B9 h: kme.pp[n].k=me.pp[j+1].k;
% t* a8 s9 v$ h5 K8 Z7 Q% Wme.pp[j+1].k=lingshi;
) E1 @% _: i" g! Ku=me.pp[n].oneorfour;
, f! I9 @1 V- ~me.pp[n].oneorfour=me.pp[j+1].oneorfour;
* J* q4 x( L) s- ^me.pp[j+1].oneorfour=u;( f* i, X3 k% W
u=me.pp[n].number;
/ e$ j- [ u5 C, J: ume.pp[n].number=me.pp[j+1].number;9 N$ d( M' C( v. |: Y+ @. M: c% G
me.pp[j+1].number=u;6 J2 n6 m& i" h
}
+ ^1 }/ m) D# |" a+ f* u3 v}9 }; g, l) p0 p; t
}' J6 p/ U2 K @/ @- b0 o
void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/
7 O6 N) j. F3 B1 D) F" m{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
' [: @0 P* H+ q8 P; Y: V6 C& H, {if(me.pp[c].number<=35 && me.pp[c].number>=0) M# x$ E3 s1 ?
{) u' F: \& J* G; }) C m. G. v5 A
logo=1;1 l% F6 M- ]+ k$ S! z
if(me.pp[c].number<=3 && me.pp[c].number>=0), _9 n- ~ _& l
logoo=1;
& ?& s8 a0 Z$ a" Zelse if(me.pp[c].number<=7 && me.pp[c].number>=4)
; g" @. I& {; |1 S/ M5 K* { @logoo=2;
4 X" S2 I b9 n7 `4 eelse if(me.pp[c].number<=11 && me.pp[c].number>=8)
3 y6 F/ C3 E; B6 C! G: {) [logoo=3;
& Y! H) G" K* a% Y# ]else if(me.pp[c].number<=15 && me.pp[c].number>=12)
* q4 z6 G. ~+ f/ Mlogoo=4;0 }+ {$ D8 Z! f) R0 w' D/ M6 J
else if(me.pp[c].number<=19 && me.pp[c].number>=16)
+ N" P: ]8 V1 {0 flogoo=5;+ t6 q# h! w1 `3 y5 e. F
else if(me.pp[c].number<=23 && me.pp[c].number>=20)
( u- x: b$ R7 l9 y; s% b0 plogoo=6;* P& y7 _1 O* D: w" b! x8 Y
else if(me.pp[c].number<=27 && me.pp[c].number>=24)
' J+ p E& v1 M4 @) ]! f% Llogoo=7;5 _2 S9 l, X: Z+ t: G4 u- B; ?
else if(me.pp[c].number<=31 && me.pp[c].number>=28)
r6 h' `; n( i4 dlogoo=8;
9 V- f2 W- l/ o m6 G& d5 delse if(me.pp[c].number<=35 && me.pp[c].number>=32)) x A) i V8 y1 p& o# L3 h
logoo=9;
6 x# H- f: f4 o& G; z# ?}7 l9 b' p1 c! t I/ p5 D
else if(me.pp[c].number<=71 && me.pp[c].number>=36)
: ~4 H& {, w2 ^* l{1 X# e1 K) ^0 Y+ D- L* `1 W" Z) j) V
logo=2;
2 F# k' R7 s# M6 W2 ]if(me.pp[c].number<=39 && me.pp[c].number>=36)7 y! b" R8 N& v1 y8 ?6 V1 ~6 U
logoo=1;+ Q+ G2 b* t9 p6 ]$ a
else if(me.pp[c].number<=43 && me.pp[c].number>=40)
4 t; o7 f* H3 l# M' g1 v; Y" Blogoo=2;2 Z/ | z& }2 c
else if(me.pp[c].number<=47 && me.pp[c].number>=44)
1 b) f/ ?/ Q$ g/ i- |logoo=3;7 h/ H+ n1 V* @: Q+ k
else if(me.pp[c].number<=51 && me.pp[c].number>=48)
! n" f$ |# f% W' `- C6 ?logoo=4; F( c1 W- ?. e8 p# G
else if(me.pp[c].number<=55 && me.pp[c].number>=52)
9 B8 L1 o9 g8 blogoo=5;
7 |' K: ~) |7 `* X Uelse if(me.pp[c].number<=59 && me.pp[c].number>=56)- V) Z7 \% H- d8 N6 U
logoo=6;5 C y3 A6 q' p6 f6 x
else if(me.pp[c].number<=63 && me.pp[c].number>=60)( U$ d! c' X! n; d6 F
logoo=7; t. n C% m) N9 k
else if(me.pp[c].number<=67 && me.pp[c].number>=64)" _8 q' _! o6 D# f4 v5 n
logoo=8;5 b! b/ v3 N- a: K; [, u
else if(me.pp[c].number<=71 && me.pp[c].number>=68)/ K. n1 |7 [1 J; [8 s+ c& Y2 p3 K
logoo=9;/ Z9 g# m: v8 Z# [' u5 M
}
5 A) ]) y3 i4 L5 I6 zelse if(me.pp[c].number<=107 && me.pp[c].number>=72)
+ }% M$ H$ a: O4 [/ ?0 i. p) X{
% [$ g1 \+ H9 y. g1 Alogo=3;
) Q: @: s* s. F/ kif(me.pp[c].number<=75 && me.pp[c].number>=72)
/ ]6 ]* v* Z8 Clogoo=1;5 Z9 s0 r% V5 |- `
else if(me.pp[c].number<=79 && me.pp[c].number>=76)
- ~0 m" l) L+ @logoo=2;( u: J$ p4 ^0 h" x8 ^; S) ^
else if(me.pp[c].number<=83 && me.pp[c].number>=80)$ j N7 o0 R. C( R
logoo=3;: Z0 E0 e3 U" Q7 j( Y
else if(me.pp[c].number<=87 && me.pp[c].number>=84)
5 t7 a. w# p- h4 Nlogoo=4;
) H6 m' b3 I; V( d1 Y5 V2 telse if(me.pp[c].number<=91 && me.pp[c].number>=88)+ b' p) i' d- [. `# ~
logoo=5;7 ^0 t7 c. E# T
else if(me.pp[c].number<=95 && me.pp[c].number>=92)6 ]5 u; F9 u7 J) {
logoo=6;
; S* I3 L& g [( V. O+ f0 z& f. z* belse if(me.pp[c].number<=99 && me.pp[c].number>=96)) _% [: A$ [: Y
logoo=7;/ R3 x$ _1 ]" |7 J
else if(me.pp[c].number<=103 && me.pp[c].number>=100)
; Q0 p1 b% @' B" E0 g. P) d; F) m5 {logoo=8;1 o" P7 [7 G1 O
else if(me.pp[c].number<=107 && me.pp[c].number>=104)# f9 A# W' S! R, ]
logoo=9;
1 K( d; \$ }9 W. p9 Y}4 p2 i5 k1 A+ k; L6 m) S
else if(me.pp[c].number<=135 && me.pp[c].number>=108)
0 B) G8 }, z1 T: B9 _{3 C. G* D& t6 x9 m: K
logo=4;
2 u1 j$ {: J/ Q# K4 H: dif(me.pp[c].number<=111 && me.pp[c].number>=108)
+ G6 D7 H4 \# O# F; z6 E! elogoo=1;
* i* j3 } N% v3 |6 @) ^; @else if(me.pp[c].number<=115 && me.pp[c].number>=112)
. V0 x8 Y9 Q+ J6 R; a ^( Dlogoo=2;
+ O. ~( w( H) N) C/ m8 d) relse if(me.pp[c].number<=119 && me.pp[c].number>=116)
7 K" ?( K0 f; n( b8 D7 n( Slogoo=3;" C8 |2 r) f5 ~5 d& O B# c# O) y
else if(me.pp[c].number<=123 && me.pp[c].number>=120)
) q; m) u4 u2 Q- Rlogoo=4;
, W: m( J# ~9 |" G& melse if(me.pp[c].number<=127 && me.pp[c].number>=124)
0 V: n& K3 |. h: p! X+ Elogoo=5;
& d7 K* t. V* M: `else if(me.pp[c].number<=131 && me.pp[c].number>=128)
5 a+ n8 ]4 @& d* D+ p5 Nlogoo=6;
* Z9 L! D. n7 {% y- k5 m% A5 _else if(me.pp[c].number<=135 && me.pp[c].number>=132)
/ }7 B' Y$ L; u5 }* hlogoo=7;
% i+ ]' I1 \1 y/ v6 j}
. D' T, \9 e5 T% c, D) D$ }while(b<=computer.m)0 u/ X' R- {' ?3 B) Y% c
{4 e) f( C1 X2 p1 \% k
if(computer.pp.number<=35 && computer.pp.number>=0) /*假定电脑经过分析后出了第一张牌*/
: I0 n& S; ~/ @" ], [) a- n$ ?9 y{
' Z8 D6 L' T( g+ z* p' wlg=1;, g6 d' Q. x$ H
computer.pp.d[0]=1;
6 P3 d- s1 j1 A- V$ }if(computer.pp.number<=3 && computer.pp.number>=0). k8 P0 C$ ^: P9 k% B
{5 t# D# N, `* Y/ A1 y
lgg=1;6 L* ]0 D# B* j7 T& u3 n
computer.pp.d[1]=1;! ]0 K+ w0 H; N) G, V& W6 e- ?
}
7 |7 F* O+ {' ^8 r2 n0 helse if(computer.pp.number<=7 && computer.pp.number>=4)
G8 _! c6 F0 f: M{
/ U; |8 F/ G) P: W% Hlgg=2;0 j+ h4 N" X, v4 K
computer.pp.d[1]=2;7 K% i3 ]6 x5 p* o* ~- @9 l& Q
}
% F& |* L. J0 I$ kelse if(computer.pp.number<=11 && computer.pp.number>=8). s' U: d" x+ z# D' a
{
8 y, ~ R- a5 ?& r6 h/ G5 }lgg=3;
6 {$ j1 O4 g5 @$ [computer.pp.d[1]=3;) G; k" X# i7 S. m
}
& \6 L9 E h9 L1 o9 B A8 Y7 Yelse if(computer.pp.number<=15 && computer.pp.number>=12)
) K( k' p- d8 q0 J" j9 t{
' e# Q' R, W# Tlgg=4;
4 g! A6 v" M; C6 z/ P9 ]1 ?, r3 {computer.pp.d[1]=4;( s; m3 V L) A/ ~4 _. a
}
( c0 A# ]$ M* o' {else if(computer.pp.number<=19 && computer.pp.number>=16): h& o/ c# Q7 x7 R) j3 \, C: \
{
3 ^' O+ w9 w1 w9 d! T. ]lgg=5;
F8 t. ~* F( V pcomputer.pp.d[1]=5;1 o6 K$ F: m' X3 {
}
% ^* i0 x! E, Q; M \- Q% {else if(computer.pp.number<=23 && computer.pp.number>=20). s: B9 ^3 ~7 q" V
{, d% v0 i5 w- R$ L0 q
lgg=6;
9 x+ I& @5 b }( ^0 E* i; U# X; w2 _computer.pp.d[1]=6;4 Q3 i$ T( G7 v$ _% |3 @3 w9 n
}0 Z& l6 j) U" N! h" s0 {
else if(computer.pp.number<=27 && computer.pp.number>=24)! W1 V7 |. d. L( B3 _% _/ J% k
{
/ Z8 w5 U7 f- Ylgg=7;' t* `3 E |' C+ M
computer.pp.d[1]=7;
) P8 \9 D3 o. `7 q, E5 |# \. ^}
) ]! L E( a$ e Ielse if(computer.pp.number<=31 && computer.pp.number>=28)
* Q% K7 R8 V7 M$ x7 i- _' u{
2 [8 ^! O9 K+ W$ Klgg=8;
0 a2 k$ d# n; K; P7 X; bcomputer.pp.d[1]=8;
' Q( a- l& L( @ X1 D7 H3 ?7 S}+ C8 ^& R, G' K9 A1 u) e' }
else if(computer.pp.number<=35 && computer.pp.number>=32)7 f% I* s; R+ X5 F: o/ G
{" i1 b% r& P1 ?" v& c
lgg=9;9 c# J; x" ]0 y
computer.pp.d[1]=9;
- L: z* x% s$ r& q: f7 l4 a}
. b! p" T5 b+ g/ p9 x$ @}$ B- h7 I4 ?/ ]6 y: s
else if(computer.pp.number<=71 && computer.pp.number>=36) {9 z$ S8 T$ V1 `+ u
{
9 N' p# u5 {- ~) o! B- Y) i/ Elg=2;
" j$ P9 G9 D& z1 f' k3 Vcomputer.pp.d[0]=2;7 U5 n2 v4 u% F( C! ^) k9 D* L+ j
if(computer.pp.number<=39 && computer.pp.number>=36)
- b" @* e9 A/ |- k{
/ e; U1 R. v/ v6 Q& Plgg=1;' K+ J- V5 P! K6 e# \7 P" C7 m0 n/ K' o% I
computer.pp.d[1]=1;
1 g4 V/ }% f7 q5 @6 o* `+ n5 H}: d1 s: E9 d/ B o% g4 `
else if(computer.pp.number<=43 && computer.pp.number>=40)! J% E8 U" p. F$ @" X
{
6 d; H7 h, [$ g1 R0 [! @1 V0 l) ^, \lgg=2;
2 Z% _. z x3 y+ B& I( l& e! wcomputer.pp.d[1]=2;3 u! `% q& `7 C9 j4 v, w4 x
}
. s4 i! O, _* J7 D3 Jelse if(computer.pp.number<=47 && computer.pp.number>=44)
( Y, O5 C+ o+ L8 L- l' ^& z{
- x5 G9 O' K) N; |" H( \' @lgg=3;
4 |0 V- T# @6 N, I0 S5 [computer.pp.d[1]=3; Y1 y3 K! d1 }
}' k. R/ b; N* ]6 ]" P( o
else if(computer.pp.number<=51 && computer.pp.number>=48)
+ \% e6 e2 V8 ]; |$ }# a{
# X+ C+ p% x* u8 Algg=4;3 N% M, {. g) o- m6 I" p
computer.pp.d[1]=4;
/ {% Z( Y4 h8 k% ^. h" @}
M! u& x! v- i$ x6 ]else if(computer.pp.number<=55 && computer.pp.number>=52)
" k/ R0 T$ y) i* W; B{/ T; y# P8 N: w& N) R
lgg=5;& W; s. O9 q! V( a
computer.pp.d[1]=5;
) i E/ T9 D+ t9 j9 g) {3 Q2 q R}: ^5 H$ e" u% n4 g# r- }/ f& j& {
else if(computer.pp.number<=59 && computer.pp.number>=56)
! b: s ?% N' l5 a{
, }% r4 R& l. N* d4 y; k" klgg=6;
6 D2 A, F* s9 ccomputer.pp.d[1]=6;
. m. g# \- ]: C3 j3 X* C}8 N! c8 j$ Y( B2 T9 q: r. g% a
else if(computer.pp.number<=63 && computer.pp.number>=60)
( U3 T( q8 @. @8 p+ R; T{
2 f4 U4 F! i; l8 {# xlgg=7;' G' u9 T5 M5 O* s. H
computer.pp.d[1]=7;: A @' t: [9 z2 L+ V% |! x
}# k% }$ Z$ N* i
else if(computer.pp.number<=67 && computer.pp.number>=64)5 z, Z f7 V% \: z
{% V( l! Z- S6 W3 y- e
lgg=8;
1 a8 a8 J# K5 Z9 z/ s" F" Hcomputer.pp.d[1]=8;
9 b8 [- A- \2 n, i! R% u}- v% ]+ P- ?6 g6 }1 q2 I
else if(computer.pp.number<=71 && computer.pp.number>=68)8 r! J' k3 `) K/ n7 d. L& C
{9 }. @- y# O3 v% P4 e3 b
lgg=9;7 J% @( [' A" a6 o' ?+ Q7 I
computer.pp.d[1]=9;
+ c0 l' O7 u. N8 o8 P}
6 L r- `+ Z8 g9 \2 K, j4 Z}8 J6 z$ D! R# p6 \3 `
else if(computer.pp.number<=107 && computer.pp.number>=72)
2 s/ I1 [5 P5 E& |% D( I0 e{
* D z8 g( b4 Y5 Olg=3;: x9 }( g8 V: C
computer.pp.d[0]=3;
" F+ n6 Y1 {, |6 o: ~7 p, _1 Xif(computer.pp.number<=75 && computer.pp.number>=72)
4 W& d: ?" d( t) H( j! t, U( I{' G$ h2 N2 E: |- k `
lgg=1;
0 ~2 C5 k4 C: n9 ^( P! p* e Ecomputer.pp.d[1]=1;
; P. y2 O7 Z. X# \! H3 g1 @( {1 J}( S# u3 `7 {) ^% d9 b' k; ?. S% }3 k
else if(computer.pp.number<=79 && computer.pp.number>=76)) b* K% y9 k* }- ^, p! Y% G' d
{" F0 z: \6 Y5 _3 s* F
lgg=2;
/ I; o/ Q7 |' Q/ ~7 p0 Icomputer.pp.d[1]=2;" ~3 c* X/ `: u1 N7 O
}- S7 l8 a7 f- [: O
else if(computer.pp.number<=83 && computer.pp.number>=80)
4 b+ h1 \8 X( }4 w( t{. R( Y! M# n0 |, ~! i; m) O6 S! f
lgg=3;& P: Q$ {8 R; J; N# B
computer.pp.d[1]=3;- [' C Y$ l+ q4 f) m) Z
}7 N! K! J2 O7 Y- V" i( l" S
else if(computer.pp.number<=87 && computer.pp.number>=84)/ o& V m, U9 e% R4 N$ u3 i! t/ Q: U
{5 Y. k( e6 E1 j2 h
lgg=4;
% W: w: _! x3 C% `1 i& _computer.pp.d[1]=4; O' S3 {0 X5 n) a
}
& U5 z, ]8 N- b% J5 M( o9 Gelse if(computer.pp.number<=91 && computer.pp.number>=88)
9 p* G; J' l2 w0 Z7 k5 b- N{' p, }/ E: v- M* o# ~. r! P
lgg=5;: H, x# s* C0 W6 b
computer.pp.d[1]=5;, Z% M" F8 ^3 b ?8 M
}
5 [/ E6 w' y2 Q3 V& x, t# Qelse if(computer.pp.number<=95 && computer.pp.number>=92)
) Q( I4 D5 I# s2 p6 d* i, y{8 {) x( J" R$ x* h3 E# N9 X! G
lgg=6;
# ~5 L( |1 z0 X9 ^4 @# J% U0 x* icomputer.pp.d[1]=6;+ i* o& |) b' U; F$ w
}$ C3 l/ ^/ d, J7 ~. x! c; `
else if(computer.pp.number<=99 && computer.pp.number>=96)
3 I0 R5 g! y2 p' O# g{
) G0 e) @+ ]/ e9 q, O: ?5 X+ U6 Q4 y8 Ulgg=7;2 z# x7 s& G* \
computer.pp.d[1]=7;* J: }3 c9 \, E8 @( B
}
9 F. K. x+ H5 K: N! D/ y% V; Felse if(computer.pp.number<=103 && computer.pp.number>=100)9 z7 q( I# m8 P( D$ W
{
; \" `: R9 c T; ^$ S5 @# qlgg=8;5 |+ l; n' { V6 t8 n
computer.pp.d[1]=8;! i J9 J; ^. I4 n& W7 R
} |% [( l# S9 Q2 {/ _
else if(computer.pp.number<=107 && computer.pp.number>=104)
( S' _# @' r; v5 x i6 C8 `% ?{
) [9 s$ C- _ Z) o7 g" S' ]lgg=9;4 j @2 j, d7 e3 G/ N" x% p% _/ a" l S
computer.pp.d[1]=9;
) R9 p E! K5 X9 x0 W& q- z, S a}& p; C4 D, Y) ^3 G; e
}# {% K- s$ p( c3 v: p1 L. r% f) \- ^
else if(computer.pp.number<=135 && computer.pp.number>=108)4 P. R2 @! V0 n3 B1 Z7 [+ B5 V
{; r1 y) V0 c# C1 e/ d8 w
lg=4;
1 r/ T7 R* I1 ]$ O0 bcomputer.pp.d[0]=4;: p- L# W4 v! r' e9 m
if(computer.pp.number<=111 && computer.pp.number>=108)( z$ H! W5 R c8 |, Y+ C* T
{
+ t/ R' o- {5 a9 Elgg=1;, |' i. S, k. P6 _+ [
computer.pp.d[1]=1;
* y. u( Z2 q9 \ g; m}
3 ]# C0 E4 Q7 W% t# _5 Felse if(computer.pp.number<=115 && computer.pp.number>=112)& l A1 c @+ ]2 E7 q
{
& l# x- ~3 C3 X3 o% Nlgg=2;
3 {! F# W2 U' x% P# vcomputer.pp.d[1]=2;
# R- L! d/ X2 ]* Z}7 D7 o$ E* B- i: b% O8 S! B
else if(computer.pp.number<=119 && computer.pp.number>=116)" k) N8 b w* s# y
{( x: F/ d2 n, q8 g. F; k
lgg=3;
* a' @, L6 @7 t3 t* ]. B( ~( Ocomputer.pp.d[1]=3;
& F3 i2 B) D0 V}
4 Y, Q p% a7 ~+ qelse if(computer.pp.number<=123 && computer.pp.number>=120)
, \- g) K- q Y) \6 A* r7 U, o7 a, {{, S! C( S; z5 p; r
lgg=4;/ k' U, G2 j0 D- z- K
computer.pp.d[1]=4;
$ Q1 t( W6 {3 M0 c6 u: b& Z}8 k6 X' ^4 z: k) `& D {
else if(computer.pp.number<=127 && computer.pp.number>=124)- I: E( p k; ]7 H
{# q. T5 N0 [. k3 i& w1 o
lgg=5;! q. b; q' O, [: H8 v
computer.pp.d[1]=5;8 z* K! @ b3 o1 V0 C% e
}
6 y6 }! _# Z% x9 s# kelse if(computer.pp.number<=131 && computer.pp.number>=128)
" U3 u; ~ ?0 b{! j6 t6 V9 c4 x4 n; r" X
lgg=6;' x4 ]; Y. i+ g/ e+ u1 d
computer.pp.d[1]=6;" Y3 t* N, K: X; _* X
}, g6 G: F, R) O
else if(computer.pp.number<=135 && computer.pp.number>=132)
" l" k& `7 Q3 T9 p{
, H9 I' z/ d N+ N8 clgg=7;
( E, O7 J$ m0 x) ocomputer.pp.d[1]=7;& m# W. _- |$ D$ @
}3 ^$ I* O/ n' H
}6 z" Q2 L& \5 ]) O* d3 S
% M, I% \/ o5 qif(logo==lg) /*如果相等的话,那再进一步的判断,乓杠的判断*/
/ {% n; P, a/ A# C0 y# ~ cif(logoo==lgg)
) S# r* g4 b2 h* I9 g/ y0 y( Kpg++;
! G( ~8 [( f8 Z8 mch.lg=lg; /*保存电脑手里的每张牌的信息*/
; b1 s" ^& d3 T: s# e' Mch.lgg=lgg;$ ]8 v ~ a) j& \4 e5 { d7 [
lg=0;+ {, f. E( x1 t- E0 A
lgg=0;( B4 T- X4 r9 {0 q, j7 r- }8 m4 D: M1 l
b++; ]/ @( E [, Z3 s$ J
}
" [; z% v0 e, H- q9 xif(pg==2) /*乓*/
7 b8 X' c# W* n( l$ n6 r, [# a{
5 `; s! k3 p1 {, S/ b* _) e5 L- P& x* F5 @2 j" Q, n+ [8 r
sing=1;
2 u3 P% S9 t! Z: h8 B5 Hb=computer.m;
! R3 _* R3 {0 V K8 x* dwhile(b!=-1)0 e! ]- n9 Y3 \; n' x: G2 I
{
3 a6 j5 ?( V" z8 Yif(strcmp(me.pp[c].k,computer.pp.k)==0)
2 I! R. w; J- Xcomputer.pp.p=1;
" x% }4 I2 q+ Q" M' L' I( L8 {& L
) d' _5 |* T0 `1 x! t7 w+ Ub--;9 ]5 V, W$ \5 ^5 w2 }( g
}
# ]: y, T1 ?' |- j# i}+ _. L2 W* X! X6 w
if(pg==3) /*杠*/% j( t& r9 d% V; C( `0 c
{
2 A" c$ |6 `" ]# X+ B8 m
4 T- r) @/ g1 Bsing=2;2 [* E+ o% H, S2 ~0 K/ v
b=computer.m;
7 B, U$ I2 ^. S3 ?( A. B' Vwhile(b!=-1)9 w- h6 `" h4 v, I- h6 H8 P3 E
{- A* c$ n, W" V) a* S
if(strcmp(me.pp[c].k,computer.pp.k)==0)
?) ]3 N R3 scomputer.pp.g=1;& |5 a& E; y( L
b--;1 f, I- a! b- Q6 V$ T: c5 C
}' `* z# S& T/ F( r
}( [" U1 A0 C, N( J- j
f=0;: \# ^5 S1 {6 @
while(f<computer.m) /*吃的判断*/
2 A$ G" f, V" w3 D, t0 i7 \7 f{ if(ch[f].lg==logo && ch[f].lg!=4)
* h& f8 {: ~3 P7 f/ x{
$ e! o9 C) r6 M% k$ w) b% Kif(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/
% S5 r- B3 a! h! L2 \if(ch[f].lgg-logoo==1)
I/ J: i+ ?: A% @6 c3 c. X( W{/ i: |: w1 B# ]7 B- {) F* x
gp++;7 Y3 D+ d2 X8 z$ U, h% R
computer.pp[f].c=1;: d; q6 N5 @, Z1 z
computer.pp[f+1].c=1;0 o% h6 N* U6 p( L# P* F
}3 Q: [# ^, K& L& Q
if(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*/
2 @+ ~, r5 R: B7 D1 e- `( pif(ch[f+1].lgg-logoo==-1)$ Y! s; N- ^ V7 x, h- V6 r5 q
{! k$ ^9 W/ H. k
gp++;
6 |0 v/ V: F& k( O7 ucomputer.pp[f].c=1;7 F/ t* g' h$ x; p8 u9 ~4 A
computer.pp[f+1].c=1;. o$ w& z$ M+ F
}
* | d2 X( y# U) l8 cif(ch[f].lgg-logoo==-1) /*中吃*/
$ t2 A; ^8 g R$ y& f- Vif(ch[f+1].lgg-logoo==1)" y' z4 i; H7 m0 c& Q/ X8 d
{
2 X, P7 V: ]% A) D V6 G, dgp++;
. y3 g: N6 }8 j" v; Dcomputer.pp[f].c=1;
7 s2 a6 U4 U0 E4 W4 R. Ccomputer.pp[f+1].c=1;) a2 [/ z. z7 l. h* X' M% v
}+ _( T! s4 H4 R0 Q$ \6 q
if(gp==1)/ y) ]7 a/ V) I& V# Z. z
break;
4 u: P0 [9 W/ d U}
9 j) G8 x4 r, T9 jf++;2 f7 A: R. E- p+ m; w
}. m- Q( E( M' l. S
if(gp==1)
7 a% U( r- _( u: v$ a1 d' M{sing=7;
2 Q3 ?0 f, q& I7 s) h
t/ h4 S3 X7 U7 @- z% J}* O, j9 {) |2 F
pg=0;/ E2 D; s D3 H& X& I4 J h
gp=0;
, A" R9 W' \, s, T6 K( O. Z+ Ib=0;
% @& D/ I5 Z. c, B" P ~2 d2 G4 @# c}
9 i/ u# `. r Lvoid rgznme(int c) /*本程序涵数的核心针对我的牌*/
5 P6 w. j: ~; d: i/ ]{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
# h! [5 Y$ g! W/ q0 L0 Dif(computer.pp[c].number<=35 && computer.pp[c].number>=0)0 H# K$ _% E7 x4 \
{9 r1 b$ k' l! R, N
logo=1;
6 C- m9 o+ Q# I# c& c; eif(computer.pp[c].number<=3 && computer.pp[c].number>=0)
: I8 r7 Z) P/ L4 o; }# flogoo=1;
6 S B' O% R4 F. X3 q) delse if(computer.pp[c].number<=7 && computer.pp[c].number>=4)
3 P/ t, o/ v3 Tlogoo=2;6 c+ b( u8 t/ J: \& X1 i
else if(computer.pp[c].number<=11 && computer.pp[c].number>=8)
6 N" T( Q+ r# T* Blogoo=3;
( A# Z* j& Y1 U1 Qelse if(computer.pp[c].number<=15 && computer.pp[c].number>=12)2 _7 B8 M. R5 p- a b
logoo=4;+ T/ G) B1 T! z, `( r
else if(computer.pp[c].number<=19 && computer.pp[c].number>=16)
% o2 A5 ? e- f4 ^7 d7 F2 W; qlogoo=5;( |* ?- O# y( z
else if(computer.pp[c].number<=23 && computer.pp[c].number>=20)
O- m! m r3 K2 r. Nlogoo=6;
/ V2 i2 A7 D* o1 ^2 Kelse if(computer.pp[c].number<=27 && computer.pp[c].number>=24)) f, t3 |9 b, D( ~6 Q2 B6 M+ v
logoo=7;7 C( G) k: u. T0 m1 D. y; T& F( S
else if(computer.pp[c].number<=31 && computer.pp[c].number>=28)$ K6 _& A% A# y0 _2 R
logoo=8;
0 m* ?3 o& {4 R zelse if(computer.pp[c].number<=35 && computer.pp[c].number>=32)
2 X4 {# ]3 a7 T/ w6 J2 Clogoo=9;4 P* k% x. R+ ^( [1 I' ^3 W6 \. _
}
. S$ j1 r2 j* W" y2 `7 f1 i( ~else if(computer.pp[c].number<=71 && computer.pp[c].number>=36)" W# o" k6 e) L1 w5 i6 `
{
$ _' x: @8 {& Z4 V) [logo=2;
- u, H+ ?% @" A- x- fif(computer.pp[c].number<=39 && computer.pp[c].number>=36)) L& n0 l5 c; }% `; G2 \. R; W4 j
logoo=1;$ _. `9 k( E; Q" s+ R; r; }3 l
else if(computer.pp[c].number<=43 && computer.pp[c].number>=40)8 [+ G1 r' G- G7 m! ?2 c
logoo=2;
6 q. E, N5 p/ t) ^' } {else if(computer.pp[c].number<=47 && computer.pp[c].number>=44): a4 o& `8 }: {6 M
logoo=3;
8 q' A$ A ^- x/ S: Selse if(computer.pp[c].number<=51 && computer.pp[c].number>=48)" c5 B2 Z+ D/ y/ R U: ^
logoo=4;
2 u+ i) g9 s) L- R ~else if(computer.pp[c].number<=55 && computer.pp[c].number>=52)+ W- P: A: N# T+ [1 F
logoo=5;: t7 {0 l# Y+ j1 I
else if(computer.pp[c].number<=59 && computer.pp[c].number>=56). G7 {* d; Y' l
logoo=6;
! h2 P4 u( Q3 u+ r% T; \. Jelse if(computer.pp[c].number<=63 && computer.pp[c].number>=60)
8 ]$ O/ q# z- u1 g M9 tlogoo=7;( P; ~5 O& _" _. Z9 ~1 O+ n. x- F9 U
else if(computer.pp[c].number<=67 && computer.pp[c].number>=64)* @3 T) U9 I0 ^' e0 H8 B
logoo=8;
B( G. b* d& _6 U* v0 a3 J8 zelse if(computer.pp[c].number<=71 && computer.pp[c].number>=68)
, o- O3 w7 b9 I" _3 ?logoo=9;: s |- t# t$ m! M* y( H5 n+ I
}. R/ }; f" C9 F( Q
else if(computer.pp[c].number<=107 && computer.pp[c].number>=72)
2 Y5 Y0 i. N0 C8 M* K7 q+ d* c, U{$ r) b% N2 M. x7 ?2 j/ P1 R" Q
logo=3;
6 q( M7 H ?6 m( bif(computer.pp[c].number<=75 && computer.pp[c].number>=72)3 }8 O1 i% ^! b/ e4 c
logoo=1;2 Q! `) P8 z8 \
else if(computer.pp[c].number<=79 && computer.pp[c].number>=76)
4 i% N8 v }' s3 F8 U0 \logoo=2;) z# K$ `) Z/ Y
else if(computer.pp[c].number<=83 && computer.pp[c].number>=80)
+ ` l& x; O0 \8 p' mlogoo=3;
) E! T1 @' ]# Y# P+ yelse if(computer.pp[c].number<=87 && computer.pp[c].number>=84)
+ n& I& v$ k; ?- l5 Z% q& |8 Elogoo=4;) `: B9 m6 ?6 v$ I- `3 e+ Y& M
else if(computer.pp[c].number<=91 && computer.pp[c].number>=88)% R& Q+ @& b$ {% N3 g. ^4 R* Y X
logoo=5;% G. Y" F5 ]: g; V
else if(computer.pp[c].number<=95 && computer.pp[c].number>=92)
a4 x+ ~& i0 `1 Vlogoo=6;
3 c) I. d1 w1 _# C% G6 p, E, n. delse if(computer.pp[c].number<=99 && computer.pp[c].number>=96), ]! D$ A: D8 y, u$ ~# D
logoo=7;
0 ]5 t8 A( G7 G/ D3 `) U+ p* m) @& _else if(computer.pp[c].number<=103 && computer.pp[c].number>=100)
: {# f1 X+ q/ p- hlogoo=8;
; ^3 e4 }; x+ j0 |2 W' D) G# @' @& oelse if(computer.pp[c].number<=107 && computer.pp[c].number>=104)
J5 `: ^7 Y' K" o# `$ hlogoo=9;, T& v$ k" g1 [( o! c* K! a
}
/ p& F6 m1 a7 {else if(computer.pp[c].number<=135 && computer.pp[c].number>=108)) n* G% G: X- H8 i
{9 l# V# t6 E' |$ B/ o A( J
logo=4;
$ g# P# m* I0 J- t' J+ G* A3 B0 T( F$ Xif(computer.pp[c].number<=111 && computer.pp[c].number>=108)
7 y' V. a; n! K$ ulogoo=1;# i0 h# d1 z' ^
else if(computer.pp[c].number<=115 && computer.pp[c].number>=112) @. q2 L: t2 W m9 _
logoo=2;
! M0 s" w3 M$ Welse if(computer.pp[c].number<=119 && computer.pp[c].number>=116)6 j4 [9 @' _2 O9 N
logoo=3;
& Z/ m4 a% j2 t" g7 ielse if(computer.pp[c].number<=123 && computer.pp[c].number>=120)( o& W6 `8 ]* R7 n
logoo=4;
- x% r& W4 Z& P, T) Gelse if(computer.pp[c].number<=127 && computer.pp[c].number>=124)
4 ~# }- j* d" i# K1 k1 g) F+ Glogoo=5;
& c# X5 P g& O/ K1 p' G$ velse if(computer.pp[c].number<=131 && computer.pp[c].number>=128)
0 c0 {" ]- |" V |! b% Tlogoo=6;
: U+ l1 J8 n* E4 \! G% P( ?else if(computer.pp[c].number<=135 && computer.pp[c].number>=132)
8 ]' }$ U/ ^5 \ \! Y; Dlogoo=7;' ?, r2 c) h& X; [! Q
}
7 M" Z2 J' ?# a. m3 n9 i2 u6 Xwhile(b<=me.m)& L3 T) N* b, G' Q+ B: O
{% i' ?; ^5 t/ v6 x4 E+ _
if(me.pp.number<=35 && me.pp.number>=0) /*我分析后出了第一张牌*/8 h+ `/ h% Y5 J1 I3 s, L: B+ i
{
1 {: d: o/ z1 F, Klg=1;; L, e2 e" {# c2 a* }5 O
me.pp.d[0]=1;
* ` [: J* A( s/ O) b: {$ Q% yif(me.pp.number<=3 && me.pp.number>=0)
t$ c" P* S0 t8 P' a$ J{( f5 H* E! `" E0 c7 L8 ]
lgg=1;
7 F" U# z( a3 e: hme.pp.d[1]=1;
- y I2 m# `3 W1 p2 O}
3 r5 n" c4 J, A% d$ ?5 s- ~0 Helse if(me.pp.number<=7 && me.pp.number>=4)% Q4 f7 z: M/ O4 z: B
{* F. A* [4 M! i/ }
lgg=2;8 A$ X7 i9 O& [5 Y
me.pp.d[1]=2;* y( C K: O" D r( x+ |
}* h$ P1 u3 v+ u: C
else if(me.pp.number<=11 && me.pp.number>=8)
- ]$ A9 v, `* [/ B( ]1 g! N! w{
# y6 a' s) P6 Y" ^; k% rlgg=3;
# a; m* \) ?) X! { M0 Pme.pp.d[1]=3;
% c6 |1 t- ?, A! ~* s}
% ^. z8 m2 ]6 y- `$ V! y. Uelse if(me.pp.number<=15 && me.pp.number>=12)' |5 z& G: q! w
{, |+ U+ o+ R ]# c
lgg=4;9 c& c4 ~$ }2 ~ {
me.pp.d[1]=4;! }1 a- B# P0 m) w+ F
}: ]- @, b4 }4 w
else if(me.pp.number<=19 && me.pp.number>=16)& T% s; z H% D+ D
{6 w1 m) A: W1 R
lgg=5;
2 w( l/ L" Z& y! W9 s/ Y2 f& Fme.pp.d[1]=5;
7 t* j8 X- [) U8 N) i9 C* ^: w. Y}& U1 U, g/ O' c9 V
else if(me.pp.number<=23 && me.pp.number>=20)
3 R0 A0 F% U& L- C# j1 l{# \. I3 x# }3 A
lgg=6;, o& h- ]0 W( O! _9 [
me.pp.d[1]=6;" S9 E7 p" ?; m- q, o" k2 Y
}
7 h3 O. ?: p/ A* Yelse if(me.pp.number<=27 && me.pp.number>=24)( o8 A. g) w7 @% P2 T$ s
{
. a! ~9 a' q& m# x. B9 jlgg=7;
+ u# j5 W# z# eme.pp.d[1]=7;
( p; b! s$ S% r% d* B; T}$ [- ]! {# W, u
else if(me.pp.number<=31 && me.pp.number>=28); Y" B: b# H' ~! w- E5 q7 s* _/ p
{
2 N3 S* A/ ~! v! olgg=8;
q) a9 @! h5 o4 x& b- ~me.pp.d[1]=8;
+ q+ g) {$ X+ R4 h J2 h( M' z}$ x3 k, j$ e! Y! s
else if(me.pp.number<=35 && me.pp.number>=32)
& T8 Y" ^) t) Z- r6 g& t{
/ }; p, {! U/ ]' k0 c7 dlgg=9;7 X5 l# J* @* Y" N9 b: H" c5 n9 @
me.pp.d[1]=9;) `4 ?. _, a# n- h9 _- |" u0 i" A
}
/ r0 i1 `, a. R* \4 b* _}
9 u3 }# Y3 U2 U2 W* h* ` U A: Kelse if(me.pp.number<=71 && me.pp.number>=36)
4 q9 { b- a) M{; ~7 V9 l( Y7 V+ }
lg=2;) O0 O+ K5 Z. i) h3 }' F: v" |0 T2 Y
me.pp.d[0]=2;) S6 w* M7 B: B4 f6 @% a9 z
if(me.pp.number<=39 && me.pp.number>=36)9 b/ J8 l# j0 n
{
6 }: J; X. |; ~9 K' Slgg=1;4 r: x" G, {$ O* D5 n# h
me.pp.d[1]=1;
6 L2 ]( @# ~2 @. V}3 m/ S3 y3 s" W# q z/ V A
else if(me.pp.number<=43 && me.pp.number>=40)
* \2 D& }8 D( s{
8 Z( M5 ]% n) u! Y: s* [* A/ flgg=2;8 S% T" `$ N# n" P7 I1 l
me.pp.d[1]=2;
5 E" a6 Q" w0 k& S}
; G9 g4 p& X, r- f# `' g# P' Uelse if(me.pp.number<=47 && me.pp.number>=44)
6 U( w! x- `. X: }3 S6 Y{
& {5 C: }5 u, }6 L" E/ Dlgg=3;
" _. K( W% t; W% U Q2 V1 ]me.pp.d[1]=3;
9 E, v+ ?# i8 i$ U}
7 p8 ]4 e, y$ u2 yelse if(me.pp.number<=51 && me.pp.number>=48)
5 M4 J, W& H8 _6 y{; S4 T u* T! l' T! f
lgg=4;% P' y: ~$ e' y" {3 h: l
me.pp.d[1]=4;: \6 E9 s1 h$ k& Z' Y' A3 v( g
}
0 C, I& Q$ [/ b; {5 l# G }% \else if(me.pp.number<=55 && me.pp.number>=52)& Y; G# R7 c: K9 X( z% N0 B
{1 g& Q/ K7 _, R$ p/ r
lgg=5;
1 A" G: {+ _2 O+ ~% R! ~( h! Pme.pp.d[1]=5;! M) S; ?7 H# D8 [7 U: e: ]8 x
}0 Z+ {0 G \) K, b2 Y5 ]& V
else if(me.pp.number<=59 && me.pp.number>=56)5 L$ K k! }& J3 d' } o
{) X. B6 |' b: f( O7 R& X* D( I" Z
lgg=6;
" E' }8 X/ q, t4 V# }me.pp.d[1]=6;. M# v. g* }- n6 y
}
8 ]4 g7 u' ?8 J8 Velse if(me.pp.number<=63 && me.pp.number>=60)0 t6 ?2 Z8 R* s8 |; ?6 c6 h! T/ K
{% u* u9 D" F& K* S% T
lgg=7;) n t" H% B. c- l5 j
me.pp.d[1]=7;
9 `2 {; J& {* t. P. i}$ V7 R& U( V7 y; M g
else if(me.pp.number<=67 && me.pp.number>=64): l) w/ P* V2 K1 S9 N" o
{
! w) s( k- y: I" E3 p# {lgg=8;
! m; R- B' u- M( r! Cme.pp.d[1]=8; o$ Y8 p5 S W* V- [
}. f6 a2 }0 A4 x2 C) L" D( ^9 \
else if(me.pp.number<=71 && me.pp.number>=68)
# w6 W5 B2 d. C) f0 O3 g! B{
+ l+ }+ U g( u3 f! O* Elgg=9;) F3 ~$ ]7 k; e
me.pp.d[1]=9;6 R1 C2 `! h. E$ ]5 J' N9 F! O8 M _
}
8 W( |% }# d9 ?6 T& P% [) V! h) |}
) @4 V$ D# v+ U `else if(me.pp.number<=107 && me.pp.number>=72); ^: B/ [ E0 B) D- d7 ?% [5 G. x
{; n N1 v5 }2 O3 K
lg=3;* K, [3 E# y+ v( \! f ~
me.pp.d[0]=3;
3 Y6 p! m2 j4 z2 z! A" ~$ ?/ u8 zif(me.pp.number<=75 && me.pp.number>=72)
& M$ H" h+ H+ T& K% ^* T' b/ |{
: p6 x$ g' n* R: ]8 L! M llgg=1;
+ N0 l) V# V8 m! X4 X( Qme.pp.d[1]=1;. o. J% e7 f7 t3 _
}. X1 n5 Z' U, R5 a# Q/ Y5 W3 ~ t
else if(me.pp.number<=79 && me.pp.number>=76)
$ _4 r, `6 K7 B; n+ N |{
8 J, X" t0 |$ r `! ilgg=2;$ ~$ D/ |8 e4 Q7 o
me.pp.d[1]=2;
- m- P2 {9 d f6 |}
T t- [& D1 v+ o O- helse if(me.pp.number<=83 && me.pp.number>=80)
' R0 U% K+ ?$ d/ H8 A{" M9 K# F! T$ @0 o7 H, O* z
lgg=3;
. h+ S! L; T* u, p) D! ~! ]me.pp.d[1]=3;2 D1 w2 n. r& R& U7 Q" ?
}! K# \4 u# j- I: ~! p |
else if(me.pp.number<=87 && me.pp.number>=84)+ x" a0 y" @: j" u. Z x: U0 y+ G
{
R$ q( R2 R; P* Slgg=4;
. w/ a1 @# U" F8 eme.pp.d[1]=4;& R& m' J- f R, ^2 Q3 e
}9 b L T, \& o, g; H# \
else if(me.pp.number<=91 && me.pp.number>=88)$ U- w8 k8 J) P4 @4 {1 s' S
{
4 h3 {5 Y. U( a4 f# o, `& `lgg=5;; [9 X6 t/ `; g/ N
me.pp.d[1]=5;# }, M/ A. X/ h" w6 x* ?$ w
}
5 `& Y' G$ y* x: Welse if(me.pp.number<=95 && me.pp.number>=92). J, \& o" [3 }/ @$ F2 k
{& G; q( q) y5 b5 e" U3 m
lgg=6;
* ?6 I: t5 ?# _+ c* H* Yme.pp.d[1]=6;
, t' s& Q7 ~% y& j: I}7 O( ^5 t# c) [9 A9 H; W7 v
else if(me.pp.number<=99 && me.pp.number>=96)
& ]( C# h2 k, w) u) w: j{3 |0 i/ J+ d D* |. F! K
lgg=7;
5 ]2 B) ]3 F% q% `$ Ome.pp.d[1]=7;
) E& d) A/ P6 v' E; u}
0 [; I& }+ E) s9 \, H! r1 ~else if(me.pp.number<=103 && me.pp.number>=100)