数学建模社区-数学中国
标题: C语言技术文章 [打印本页]
作者: 韩冰 时间: 2004-10-4 02:34
标题: C语言技术文章
<DIV align=left>2 x O! d* `7 f% s) g
<
align=left>程序目的:
( L# T+ g" T0 g! N输入一个任意大小的迷宫,用栈求出一条走出迷宫的路径,并
# h3 S: L# w* O6 l/ j2 L显示在屏幕上。
) F, T5 W7 \, a5 n程序实现:, a( P) _. n% L( i# n6 n
可以实现载入迷宫和保存迷宫,附带文件中有4个测试迷宫路径的& ^7 H' F% Z- N. B" S7 v
文件test1~4.dd。请将这些文件拷贝到TC当前目录下,或者在载* u# o6 x4 m: J+ l( d+ e! p# q
入时写明完全路径。由于屏幕大小的限制,当用户自己输入迷宫
7 g7 n E5 r9 H: r" E& l时一定要注意:迷宫大小是有限制的,不小于4*3,不大于30*20。
! V+ t5 {/ |% ~; c! c2 K: }% U否则会出现错误信息。输入开始时全是墙,用上下左右键移动,- E/ b7 [" @5 T; M2 Y3 l0 Z( G
用Del键删除墙,形成通路,用Enter键添加墙。输入结束时可以
4 w4 m5 K- q, x5 e2 f- P将迷宫保存下来,以dd为扩展名。输入完毕时用F9键来得到结果,5 i( D7 A+ g0 X4 B% m V5 g
找到路径时,屏幕下方会出现Path found,否则出现Path not found。) p8 P. ?; R; ~# [5 i% z* y( H
程序经Turbo C 2.0编译调试成功。运行时不用添加任何运行库。
2 \2 B' K; l! i不可以在VC上编译。1 C0 D5 l2 P4 Z5 f. l/ V
下载DOS版和windows版的迷宫游戏全部代码
9 |+ D8 q& f1 S" d0 O用户名:migong # C* `" |9 Z, q6 s: ^
----------------------------------------------------------------------------------1 c# Y. ?: j, z; j- F
/*
3 \' {0 n d; fMazePath Demo BY Turbo C 2.0
4 f' z9 ~; i% y6 A X# a( q. P' qCopyright(c) RoverUnion. All right reserved.
3 U, \5 E# L6 W) o$ qFilename: Maze.c
9 K$ V" b' `, ?( }* u0 cAuthor Dongchengyu.
6 {' L( [3 n; l4 A, r8 RVer 1.10$ x/ ^, E2 h! h ?) c8 R
*/
2 a P( V( K G1 w#include <stdio.h>
5 g# C# M8 I, q# l5 I5 [' V#include <stdlib.h>& a5 B7 T/ F9 L( c
#include <malloc.h>5 R% n( I, T0 q" ~ c& `
#include <conio.h>& d& F) I& x5 A
#include <dos.h>
/ z$ F" l" o9 x& }9 { Z% z* R#define OK 1
, L3 D4 J1 D1 L#define ERROR 0
. x7 w* m) ^- R, \% Y1 m; k# \ m#define TRUE 1* z, I( Q7 Z k: G. Q
#define FALSE 0. G1 }& G% G/ m `0 T! r! E
#define F9 0x43& ]2 U% ?4 n+ C+ ?+ E
#define Esc 0x1b
1 N' n+ m7 V; c b4 r#define Del 0x53
7 p5 Q( b1 i+ Q8 y5 ~6 i#define Home 0x471 k, k9 i3 R2 ^" B) K/ z2 y
#define End 0x4f
) q) o, R% W# m& u2 R#define Space 0x20
+ A2 x1 U! O: G; W1 n2 {! `, t#define Up 0x48
: x' c l: R+ M# x& n#define Down 0x50( @1 V! i8 H8 [2 Z/ d& h
#define Left 0x4b, L6 L& l5 D9 a: e, Z
#define Right 0x4d: U4 V" i* z' {! r
#define Enter 0x0d9 v- ?8 q5 G" p: D( a0 j6 S
#define F2 0x3c" Y3 h1 J! b$ e8 H
#define F3 0x3d) V7 {9 E3 w! b: k3 F
#define STACK_INIT_SIZE 200
" B, g2 w' g1 w5 P#define STACKINCREMENT 100 V6 b, W5 m. F
typedef int Boolean;
! p" h& h& }, W, l7 ^7 G7 i% m' atypedef int Status;+ F1 J: \( a5 G$ h
typedef struct {: I% c3 A" v W
int x;& J2 q' m" N0 V% a' z
int y;! c. a! p. }* A6 ^- s
} PosType;2 A" z7 \/ n1 Y" C; y& B$ U
typedef struct {% y& k0 ?0 z! W" V0 J) M
int ord; I5 l2 i n% N
PosType seat;
+ w% [ J' V3 I ^ v- H' @$ Zint di;5 N2 P7 }6 s+ W @. @1 }" c
} SElemType;) |: n! Z4 c4 E$ j
typedef struct {
% A. K4 q5 S+ t- r+ o9 Eint td;
. X* n3 r" v8 _/ Cint foot;
9 m( a1 U- z& Aint mark;" x# f7 @. e0 Y+ S5 B
} MazeType;
/ r. ^& a% Q6 c5 U$ e: D( vtypedef struct {; W' D) E6 [, n
SElemType *base;' t) w- ^8 d! @5 o/ _" m9 s
SElemType *top;
" J& w$ D0 e$ [0 t! i: ~5 C Mint stacksize;
3 u$ }8 _; }8 J5 s, ^% O, M} Stack;9 F; ?( N" n2 L+ X$ V( T! Z9 r, c: N
int Maze[20][30];- J* Z2 B( y6 \+ Y: V8 f
MazeType maze[20][30];
" n( C1 F; t- `3 N4 |PosType StartPlace;3 N4 a* e- e# u/ V
PosType EndPlace;
T3 A* b: T& c$ m8 t3 |/ Vint count;" n, i$ `. |; |4 ^, N
int m,n;; D3 \8 c# K( Z" Q9 n0 H) f
Boolean b_start=FALSE,b_end=FALSE;
& [; `! G3 ?3 {void CreatMaze(void);3 f3 h' |. [3 u! i
Status SaveMaze(char *filename);
/ G# F2 a6 c# D3 @9 oStatus LoadMaze(char *filename);
4 e7 [. x; Q& l$ x4 N. evoid Error(char *message);: u! r* e2 d$ v
Status InitStack(Stack *s);8 q: S) A6 _, L% J0 R! g
Status DestroyStack(Stack *s);
u! C/ o% T9 p0 O9 ]9 zStatus ClearStack(Stack *s);$ z7 A# z: R5 d3 M
Boolean StackEmpty(Stack *s);0 M& c, B' W8 n$ ^7 O% a
int StackLength(Stack *s);2 z( u/ O) J2 s
Status Push(Stack *s,SElemType e);+ H2 L J6 g8 l6 M# z
SElemType Pop(Stack *s,SElemType e);( j) r! H3 ^; w5 d% Z4 E7 |- V
Status GetTop(Stack *s,SElemType *e);
) I' q+ C& n3 C, k) H; [1 \5 _* G/ W4 yStatus StackTraverse(Stack *s,Status (* visit)(SElemType *se));$ I& }3 J3 Y1 R
Boolean Pass(PosType curpos); f# B6 t1 Q, c$ g
void MarkPrint(PosType seat);4 Y4 ]0 M* Q% h
void FootPrint(PosType curpos);
# v" S3 ~5 Z6 g2 |' |+ K. |, _. d- APosType NextPos(PosType seat,int di);
1 R( y1 ~9 F! E6 b' |* {6 }: R. F5 zStatus MazePath(PosType start,PosType end);( l$ @5 R, ~$ D: i
void CreatMaze(void)
$ |! G; _ U) |+ K/* Form the maze. */- x+ H3 ?, j# G. ^+ S8 f7 X; K
{
& m, a* x6 I, t6 G& Jvoid Error(char *message);( {# g( {1 ~3 I: ~7 D0 Y6 [& a2 u
Status SaveMaze(char *filename);
: e! Q/ t" m( A* h: q* fStatus LoadMaze(char *filename);
/ A; R5 p3 ~# f% h2 o' Uint i,j;. I$ |" m3 C9 D2 T6 P" A8 z* t8 ~
int x,y;
3 s3 g% m M0 n* w1 D- l0 gchar c;: J5 T. F1 b) C4 S H( D" @' V% O
char savename[12],loadname[12];0 y$ P! | W) L6 h) q) y
Boolean flag=FALSE,load=FALSE;+ M& ?$ y3 [: A2 H# ?
clrscr();- u+ a# D/ w3 O8 f: z" g U' K$ {
printf("Menu:\n\n");
3 S; F, ^! ~, x- i. R! ?2 s/ @printf("1.Load Mazefile
*.dd)\n\n");
# l$ i7 j4 k; x. G& b2 c$ pprintf("2.Input Maze:\n\n");
# w1 [ C, i; q7 h+ Rprintf("Input your choice: ");, d6 N9 O" K6 j. l+ E4 b
do9 b" s; e- @. B/ |: P( H
{. u1 n! x! A4 [5 E
c=getch();1 X4 m# C0 R6 `2 m0 K4 L" e
switch(c)
$ g0 {) g7 g9 j+ e$ f$ o1 b: \ v{
$ |8 B: K: G5 O8 `/ w0 Fcase ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;
# C* r0 S6 t bcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;7 Q6 v4 \7 e- ^! a, r3 n
case Esc: sleep(1); exit(1);" `7 P0 x, o) v& k9 m* F
default: break; [' J* L+ p9 u. Y* b8 H
}) R' B- q! V; e8 z3 h
}0 B" g2 ?8 m; E% e! P4 M$ E& ?
while(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;
) x, M& T$ s0 J! s+ yif(c==''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''')
4 K- C X. F$ W0 m: E( R; ]{
2 z1 w7 P6 Q$ x0 i; Wprintf("\n\nLoadName: ");+ W% d" c0 w3 a8 P1 c
scanf("%s",loadname);
; c' i( ^; I9 i+ w# e- Z- oif(LoadMaze(loadname))
; U" ?5 @7 j- o{
6 _6 b9 Q* a; t6 G4 fsleep(1); load=TRUE;
" B8 p8 j0 c9 M% j. _/ j2 f! G}1 G- V+ |2 ?# @8 p' q
else { gotoxy(1,9); printf("Load fail! "); }
6 Y( ], u/ m4 ~}: I! U g7 E7 i
if(!load)
% W) P/ l; V4 l1 ~{; |0 R0 u$ N# o! q
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");
+ u# Y7 {0 o; k* \' ?7 U% Q8 xprintf("\nInput Length :\n");) L2 r/ |* M. ~" X4 [
scanf("%d",&m);
4 ?# W9 F. J) ]" C( R2 F: Sprintf("\nInput Width :\n");, J4 F! V! |& _' j1 k$ |6 A
scanf("%d",&n);$ p; r. }/ Q: O$ ? q% \
if(m<4||n<4) Error("Input");+ Q' D" b; ^4 ?, \- T" s" K+ @
if(m>30||n>20) Error("Maze too large");3 e' B! X' V' g) a4 t0 u& M, f6 T
for(i=0;i<30;i++)# m/ x2 b1 _/ h& E! [" O, V* J
for(j=0;j<20;j++)3 p% e( T* h c5 v9 |+ E7 s9 z! I
Maze[j]=2;1 F, I- \) y! c/ r, _
StartPlace.x=0;
: R3 \' u, g" c8 HStartPlace.y=0;* Q5 x9 ?* ?) [& E' @3 s, U6 t
EndPlace.x=0;
4 B' X! Z3 Z2 A' u, J7 {( o4 n9 REndPlace.y=0;% u/ C V" e# k' p
clrscr();
3 m1 b$ N- k4 X5 D" M+ mprintf("\n");
3 W: o$ b: s) M$ ?+ z- S- V, ]9 gfor(i=1;i<=n;i++)
+ g* ?4 N: Y) S, W; w- c{: g1 Z$ V1 q7 `% z2 a+ `8 I! s' K& q
for(j=1;j<=m;j++)
( P |$ d3 l" c$ B+ I{
2 T) n2 _- e7 P: T, o- @) p" Aprintf(" #");1 G' N8 _) ?" y+ Z: s6 i
Maze[i-1][j-1]=0;- p% f4 _1 b' ?( H/ v8 s2 l
}
! v; l4 B; ^ m1 Y7 I; Z& @printf("\n");
$ {+ }, J6 _- P}4 l! V4 Q$ D+ D l9 A
}
4 x! T+ L# a: T6 W* S7 _gotoxy(65,5);
/ @! j; N. ]" ?2 m( sprintf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");) z2 q1 \8 Y8 B2 H, s+ `. \) x" @
gotoxy(65,7);
9 I% ]+ E4 d% r( W3 _* T# @printf("Start:Home");
5 R$ x* |( N3 X2 b! ~7 hgotoxy(65,9);9 y, s: ]& C' i! `& D
printf("End:End");
: H8 A# Q) Z' H$ ~! Ngotoxy(65,11);
% @3 L& g- D8 _7 U* n; _* I; iprintf("Delete Wall
el");; S$ h( `' n3 F+ H# e4 ^9 P5 v
gotoxy(65,13);: x& D/ H3 h) N% T2 o# Y
printf("Enter Wall:Enter");- b6 q+ o! v1 P$ b; L4 i1 [* ^
gotoxy(65,15);
+ o8 R6 p2 [/ D# L5 s% t6 hprintf("Save Maze:F2");
7 Z) b3 u8 y0 C9 i4 U" B* fgotoxy(65,17);8 B* j4 l; e) I9 T y
printf("Complete:F9"); U0 |" k" b& C8 Z. ]. o
gotoxy(65,19);
+ H3 x; p( d1 O: E. k6 Lprintf("Exit:Esc");
1 K9 I: A4 T- g# Agotoxy(4,3);. p; {, y; \- f# T
x=4;y=3;& C6 {1 l- T* r, N+ D
do2 C4 F" b7 @# |# @: \) c
{
- r" ^; v) F; h8 p3 ec=getch();
5 q) J1 e7 [7 H% Rswitch(c)
9 o# s& `, L5 v. ]: n0 f+ `{
8 ^5 Q: w( ]0 L! \case Up: if(y>3) { y--; gotoxy(x,y); }
$ f# r7 e& i& ~9 Jbreak;
8 L) c. @, R) U9 R W; Bcase Down: if(y<n) { y++; gotoxy(x,y); }
5 Y0 p' Y% {! G, x8 [7 Abreak;1 I: r/ y% I! X* t" I0 V k" v
case Left: if(x>4) { x-=2; gotoxy(x,y); }% K! d; W* j7 T: p9 n
break;% O& m# n) z" M$ x
case Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }
9 g2 A: h, i2 m0 v$ q: m! Fbreak;
5 z8 |! j' _) O" H( w9 Z& jcase Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE; Z; G: M) ^6 ^. O4 g
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;0 _: r9 A l( n. x
putch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);% |5 u8 y( ?# h* N1 @3 Q) [
break; s+ S% p3 q+ c( W; `) I& O
case Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;
; ^" C8 @. Y! J8 mif(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;$ F3 J$ n/ [1 Q* N$ p) N
putch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);
2 i4 R: m2 o7 I3 ?$ wbreak;
; j/ I& D. [2 m4 Fcase Home: if(Maze[y-2][x/2-1]&&!b_start)
: [" _) S- E* A( c* s6 _{
( S1 k" y) H5 p) o9 C A4 Y1 IStartPlace.x=x/2-1;, l6 a2 z3 ^; h, A) `' e0 H
StartPlace.y=y-2;
0 i6 E B% S+ p4 S pputch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');7 r- F6 |) X& ^! \/ o! h8 P* y
gotoxy(x,y);
5 N7 X3 v9 J; b7 n P2 \4 Y; f. zb_start=TRUE;
3 [" C8 W( ~8 y' Q2 X+ L7 s}+ n% }: R& P2 t. s1 e
break;
W/ n' m, V& Z' jcase End: if(Maze[y-2][x/2-1]&&!b_end)
& c6 e% {4 B: o! u* F- X5 a# _& t{
5 M6 j9 K2 Q' s4 CEndPlace.x=x/2-1;
% P7 u! Z% _# j M( `/ tEndPlace.y=y-2;
. a8 ^9 [8 o7 [, Mputch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
+ w& D( c" }+ i2 @( s0 Ggotoxy(x,y);
' w6 A+ \$ Y# G# }$ b. Bb_end=TRUE;! z4 V, ?* j$ }
}4 \9 R. A* \, b1 h" L7 D7 z# T9 U
break;4 i7 O3 Y% B9 t& z. A% n
case Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);- k% K" z& g, {1 r
case F9: if(b_start&&b_end) flag=TRUE; break;
& C1 ]2 l7 R" Z2 hcase F2: gotoxy(2,22);
G5 X# ?6 {8 b, ]printf("Savename:");# j2 |; @. K) F, p! o) r7 E. j
scanf("%s",savename);" B1 K$ Z% q+ C2 o1 o
gotoxy(2,22);
! o& J. n( c8 o, _+ z5 q7 dif(SaveMaze(savename)) printf("Save OK! ");3 F$ |2 F9 P) u/ i N
else printf("Save fail! ");% z/ t/ y. e8 H- t6 }
sleep(1);
, h# U8 F# p: C) V8 M5 V+ l8 C V6 Qgotoxy(2,22);% S) u6 r7 T! r5 R
printf(" "); r9 {+ m" |2 Y, B% D. {, e b7 R( {. B3 K
gotoxy(x,y);
/ {5 K2 J" v- t+ p9 a5 Jbreak;
+ H @4 q% n% n* D2 g0 Sdefault: break;# F5 ]7 O' p( b
}
8 f# n& R2 ?% A2 ^( y}: B% E+ Y2 G0 w' A. m
while(!flag);) S! [) e2 I1 ?9 ^+ A6 N
for(i=0;i<30;i++)
7 u8 s& M9 r1 jfor(j=0;j<20;j++)
/ @+ D* ^1 v( ~6 L# E3 K; A$ [8 g7 u/ z1 O{0 X; ?6 ^ s' B
maze[j].td=Maze[j];' |! l* @9 u! v( }
maze[j].mark=0;$ _# a) N( [5 G9 C4 X
maze[j].foot=0;% U" y/ \. ~8 b2 Q3 q
}
5 ^$ \1 \8 u+ q+ [; h2 q}
1 Q! L" r8 w4 o# _& zStatus LoadMaze(char *file)/ V' |0 ^" w, b# g& G
/* The maze has been loaded. */
, r& `" d* _. R. F; [{
9 Y, X0 t! o: z4 H( A! ]FILE *fp;$ U5 s& I* F Z
char *buffer;3 v& D, M0 `" b8 ^
char ch;- ?. n/ n4 M1 b2 E0 i
int i=0,j,k;- o4 {* D2 f# _2 C1 h
Boolean len=FALSE,wid=FALSE;8 m' A6 b+ t+ c; n
if((fp=fopen(file,"r"))==NULL)# ^; G3 c3 V+ z6 T. v$ w. p
return ERROR;% \4 L/ t2 b& w4 J: x. P
buffer=(char *)malloc(600*sizeof(char));" g" \6 u6 D( h9 d2 r
ch=fgetc(fp);1 W& j: g1 u% X- J- m# f6 _" v
while(ch!=EOF)3 M( j- C8 ^" o3 E! d+ F1 U
{0 f# g& v; Y1 O
buffer=ch;
9 L+ L. K- _4 |( X- u( P0 _3 J' Qi++;6 J1 m4 }( T1 g j. _$ {& c
ch=fgetc(fp);( z" ^9 g X- ^5 X/ ~6 W6 i
}
B6 s% u" w( e4 T0 f3 O0 wm=30;n=20;" z" e2 a+ e+ r+ W& ?7 \& f
for(i=0;i<600;i++)
5 @9 a' l( l% V* _% x{
3 R4 @ C, ^9 d' l5 E2 ij=i/30; k=i%30;
4 {/ c" j$ o9 v% `/ X6 ?if(buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }* p- ~ [- }3 x3 m
if(k==0&&buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }$ t: n4 U" d' P
switch(buffer)% r t: U/ y# ]. W: v1 `
{
9 H9 i; s L/ |8 G# mcase ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;
6 J6 x6 H" P! ]& ncase ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;
/ o; }1 e, ?# T& L8 W8 v5 O* Gcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;" W8 i: |8 S8 ? q* ^% X
case ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;
6 ?% K6 v0 J9 \3 h$ qStartPlace.x=k;6 M1 [5 f& N5 S: {' \* ]# m$ _
StartPlace.y=j;
& |7 e& L/ { b: S& Pb_start=TRUE;
; ], F7 T5 H q. U# x; k1 ~break;
$ V$ l. l9 |2 v9 b( d) N0 lcase ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;; M4 u# u3 p- c+ |, q+ @
EndPlace.x=k;
, q! P) y1 s2 `) e9 J9 EEndPlace.y=j;
! Q) E1 H* d) R) S7 ?/ P0 Jb_end=TRUE;
) X* r' K; }5 {4 q. n9 rbreak;( L& z% T0 y/ ^* L
default : break;! V/ I5 c! k$ U# ?8 [+ Z: n
}8 N, d0 b, m1 X
}
; X3 o0 z& ^% O6 b- w9 ^5 _7 ^fclose(fp);$ k# [* y4 p. o L# v
clrscr();" ~) q) u7 b# D" J. ~4 a- J: Y" X
for(i=0;i<30;i++)
6 [- Q4 f [' |for(j=0;j<20;j++)
# P9 A! \8 m& a{) E3 e' G9 T& ^9 K6 L8 C+ e
maze[j].td=Maze[j];. y, g/ q4 {8 O3 M
maze[j].foot=0;$ f' _9 C& t8 z; X) K% _5 _) ]7 G
maze[j].mark=0;8 V3 ~. E3 W, b% _7 S3 B ^8 U
if(Maze[j]==0)1 J, q6 Z. E) `: B/ U; A. x
{
' o9 \' g* P k# P* l0 Jgotoxy(2*i+2,j+2);) s) c. I3 t* }/ b" V
putch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');
4 I7 I- S. l; k0 n2 Y1 ~: r# J4 x0 X}( J( R; B2 [0 g0 W. ?! |* r) X! N
}8 D! N0 ~' j0 }* v
gotoxy(2*StartPlace.x+2,StartPlace.y+2);# X: J2 S0 o7 r/ J, o; E
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
6 a- O0 s. z; w7 D' @& Ngotoxy(2*EndPlace.x+2,EndPlace.y+2);/ \: Q0 a( X) F
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
2 D' M8 s: ], s- Z4 freturn OK;; {& D* w* ]- }; f$ @3 W3 {) `
}
5 e' M) A9 E" N1 s5 Z6 M; @* p; ]Status SaveMaze(char *filename)
8 W* U9 \# A, ]7 T- b: Y5 G$ A/* The maze has been saved. */
; Q0 v1 Y5 n9 C$ z8 F& X0 M, k{
- v) H. _" \& w7 F4 ?2 {$ iFILE *fp;
& ~4 u" L: B$ ?char *buffer;* _9 ]7 f ^8 {$ L
int i,j,k;
0 \- m& H" v5 ?: X& d! n0 s0 @fp=fopen(filename,"wb");
# ]4 z$ I% a! Z$ M" ` Ibuffer=(char *)malloc(600*sizeof(char));
( N' h( w( M9 Rfor(i=0;i<600;i++)) R9 B8 o9 W9 Z ?7 E/ N
{
, `" O" U( |' V5 m! m7 sj=i/30; k=i%30;
/ U3 d) W8 f& h6 H" a( tswitch(Maze[j][k]) F# m4 w3 d! r; S0 z
{0 z' F, V- f1 K$ V
case 0: buffer=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break;( {0 v+ _7 ? I' h7 k, d
case 1: buffer=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;& m; W5 k( V2 l7 S, s
case 2: buffer=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;
" M1 |" O! ?/ t1 A* Y0 c- sdefault : Error("Write"); break;
$ V! ^9 j) Q1 |; o3 d1 ^4 M}# v$ D3 l: [ o4 k! |/ P! B& {
if(k==StartPlace.x&&j==StartPlace.y) buffer=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';+ i; r' h2 w# D+ M/ ~
if(k==EndPlace.x&&j==EndPlace.y) buffer=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';, D6 @5 k% ?1 @
}/ s7 y& Q! Z p4 u* J q$ s
fwrite(buffer,600,1,fp);
1 G) q/ D2 \1 C- N+ Mfree(buffer);
% l/ U6 D& w1 S2 U7 H& yfclose(fp);
% P% }6 i, b/ V6 J3 P2 {return OK;- {/ N; q9 r! l5 h9 q
}
, {7 b" H* s, t& ~; _- Dvoid Error(char *message)
6 B: I- }$ p1 h0 V! `{# D- e" E% Z- F1 f* p
clrscr();5 s3 {" l! A* ~7 X+ Y7 V
fprintf(stderr,"Error:%s\n",message);7 T/ F, n4 r0 y: \
exit(1);
3 b. Z s; e$ c& ?7 T" s} /* Error */
. G+ v; R5 a2 [8 V9 X! _
9 B1 Q' W$ d7 xStatus InitStack(Stack *s)
+ I2 |* T c0 r0 a' _' x/* The stack s has been created and is initialized to be empty. */$ O! o d9 H( c
{
8 c# n1 ?7 F: _& V, v2 x8 }s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
s4 o) F( }4 r7 D, iif(!s->base) Error("Overflow");
5 \' R% D" | rs->top=s->base;
: A& b( X1 ?8 v! Ps->stacksize=STACK_INIT_SIZE;8 \8 G5 d ~9 A4 N0 n2 a
return OK;
6 O7 ]+ H/ o- f1 G! l} /* InitStack */
8 G r4 W! k$ _- b& NStatus DestroyStack(Stack *s)
$ e8 |. ]/ T2 G/ U: f I3 O/* The stack s has been destroyed. */
; U+ L: s3 W+ U2 f{
( C! d% ^7 U/ \: M+ C& ms->top=NULL;+ L) h: F% M. a( \9 T
s->stacksize=0;2 L4 d* `" b) p% o. m$ R
free(s->base);
* L+ m# t+ Z" X* o8 }3 X/ A+ Ls->base=NULL;4 l. M6 @' O* o6 l6 Z; r
return OK;. g& }, ^( t, a k( N5 f
} /* DestroyStack *// k% A2 C$ Z3 d7 g& _1 P, g
Status ClearStack(Stack *s)
& }, C. C, m w8 G0 }) w" u0 H/* The stack has been clear to be maximum. */* a3 q! R+ K$ B
{
. }$ T! {) P. i* X) e$ is->top=s->base;
, X7 Q3 J/ i& v( z2 {& Hs->stacksize=STACK_INIT_SIZE;
4 t7 B" h( L5 e0 x( kreturn OK;
# t: `7 s1 g5 r3 B3 ^* P; n} /* ClearStack */
# B& M) c( a2 t& j, {Boolean StackEmpty(Stack *s)
$ v" ?/ i4 [5 U1 C" _5 A* [/* Check if the stack s is empty. */ u% [7 f# o9 `7 F
{1 W- c9 f% L7 t7 @
if(s->top==s->base) return TRUE;) D0 q2 Z: z# x# y
else return FALSE;
9 E1 ?8 @) ~$ R: L7 k+ {1 N} /* StackEmpty */8 T0 N8 N% m7 S" ~
int StackLength(Stack *s)4 ]+ I& Q9 ^+ s% N
/* Gain the length of the stack s. */, `6 w8 m3 }9 n: x
{ r; V/ a% l9 a' g" i! _
if(s->top>s->base) return (int)(s->top-s->base);
. j9 y: w0 {+ ~# I. e4 yelse return 0;) P% @+ A) X; ~) A$ c$ T+ G
} /* StackLength */
: \, Y2 v' o, \+ P7 rStatus Push(Stack *s,SElemType e)
3 K+ H- O3 M L$ H3 K" c% f3 B/* The element e has been pushed into the stack s. */
% t3 j4 |7 b8 c{
% Y" S! |" X# Bif(s->top-s->base>=s->stacksize)
+ n% M& J( W* M, k7 A{* g- r8 i% K9 l- w8 B
s->base=(SElemType *)realloc(s->base,( W6 z/ B: v3 p+ J2 e
(s->stacksize+STACKINCREMENT)*sizeof(SElemType));, e+ Z$ M7 R8 T2 t; u: ^# t2 r$ M7 x
if(!s->base) Error("Overflow");. ~3 ]! o! a2 |
s->top=s->base+s->stacksize;
% P3 P0 g3 j4 y& S* j+ s3 {9 xs->stacksize+=STACKINCREMENT;/ v% o) p0 w1 O
}
& P6 ^* ~' w7 s1 C*s->top++=e;9 ^& r+ D' n9 n: q8 p- E& l
return OK;9 b4 C/ G+ m% P2 I# B2 f3 \
} /* Push */! k2 ~0 Y/ A" L
SElemType Pop(Stack *s,SElemType e)$ ]0 P' E/ i2 |# A2 G# C' _: K
/* The element e has been removed from the stack s. */
: [( p, H7 H g, c{
1 U9 ^2 l# v, E! H3 B( _6 aif(s->top==s->base) Error("
op");
2 U0 m% A- a; Xe=*--s->top;
8 G, i( p [! B5 X+ u" E0 yreturn e;
g; o$ [* G' N} /* Pop */
- q" g0 @0 a0 v3 V5 i1 XStatus GetTop(Stack *s,SElemType *e)1 ^5 G. j D; q8 a4 w
/* The element e has got to the top of the stack s.*/: R/ O" H/ o: p0 m
{
: G# m! ] ^3 k$ e- j) @+ u) vif(s->top==s->base) Error("GetTop");
1 l% y* U2 h0 M& Y4 u*e=*(s->top-1);
7 t/ e! A: Y7 M2 b8 H# ? t: o& Wreturn OK;
* T. R8 ]6 H& x2 t9 Y} /* GetTop */
6 w; n% J3 V6 q; [/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */
% O) D4 n" K# }+ o M, x, K/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))
/ L5 c# R# g9 q% d{" F+ y7 e' ^. k! m3 h
SElemType p;, b, a' D( p2 ?
int result;. L! a7 Y; W3 S( k: }
if(s->top==s->base) return ERROR;8 _- U. y- c0 H5 Z# x
p=s->base;
. }" [/ N) Z7 v/ S3 ?) ewhile(!(p==s->top))
' n; B' g8 ]9 Q/ T4 K{
8 W2 _8 W: E% n; uresult=(*visit)(p);
+ z- { \% h. Jp++;1 @* @8 n7 L( U& Z# f% N @. K6 B
}5 h: ]8 N3 ~" B+ E$ i5 g$ n
return OK;
) G. r: @' F. k+ W4 W} */& Y: v- m- N3 P; T; H6 z) u
Boolean Pass(PosType curpos)* I6 X7 {3 k! m; i a; }
/* Check if the current position can be passed. */) x1 P: @) d4 S' b( g$ j6 ^
{
9 }9 m0 f% ^3 V+ wif(maze[curpos.x][curpos.y].td==1&&
5 U2 t0 G! p# j: }9 M f5 _maze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)+ a- ^* t% i) _4 `: [* E
return TRUE;
- u8 _- n4 ~4 Q9 g c s. |else return FALSE;( k& h9 m% n' n2 }( m/ H6 q% }, h4 a
} /* Pass */
, @. @- C6 j5 v" `. T+ zvoid MarkPrint(PosType seat); k$ e( d: x. _1 G
/* Mark the position seat. */( U' B! C# @7 S5 s% a% J( ^8 I9 J
{7 B, x* L. s" P/ Q' O2 l1 v$ {& f
maze[seat.x][seat.y].mark=-1;
" Q4 G/ v( P0 X0 i: E- U; A/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */
; J, A* `0 k" I) N, L} /* MarkPrint *// r- u2 q1 K1 j5 R
void FootPrint(PosType curpos)4 j( k, N! s" q5 z
/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */1 d2 [" V+ F) x% Z# P
{
! }+ K9 n {1 G/ xmaze[curpos.x][curpos.y].foot=1;: B! S& q* s# }- Y/ W" l/ c) I
} /* FootPrint */
3 T0 ]+ P' `0 q7 K8 DPosType NextPos(PosType seat,int di)
5 o2 r) g7 C4 l6 f( L{
+ ^" ^6 T2 t$ f1 ~switch(di)/ J+ T5 k9 t% A# @7 q$ g
{) ~# B0 P8 i. c! G
case 1: seat.y++; return seat; /* Eastward */6 d" X* X3 X7 E% E- k0 C$ P/ u
case 2: seat.x++; return seat; /* Southward */; r7 a. A7 ?7 g0 |5 u1 T
case 3: seat.y--; return seat; /* Westward */3 Z' l j& \; A% f) R$ D
case 4: seat.x--; return seat; /* Northward */: A2 U/ L+ S! g6 Z) g4 X
default: seat.x=0; seat.y=0; return seat;: C9 h6 E, K* Z- O M
}
1 Y" b. ~0 s0 `& _1 t1 A, e: n} /* NextPos */
+ ~: p, E; q$ a0 [6 n2 K/ I: ~
( ]6 @9 R* t% S. J) @+ \/* The key to the program. */
* X, r! t1 N7 y- j( M; j/* Pre: The maze array & the startplace & the endplace.- |9 G1 P3 e7 \$ C% j3 U0 `7 K" J
Post: Find the one traverse of the maze and perform the mazepath.$ i/ H [) n4 l( ~
Uses: The ADT stack class.' A; K, e; h; T
*/5 U5 k4 s% ?/ [, Y
Status MazePath(PosType start,PosType end)5 O; C8 {& e( K; U# v9 s
{4 r5 @$ }! W8 B" [1 x6 ~0 `( J( v
PosType curpos;" z/ [8 Z1 M. ~/ q7 c8 w) _. u% v
int curstep;
# t& ^8 _ V8 g C% p" O6 iSElemType e;
\* Y0 u* C) ]# C+ K5 ^7 `Stack *s,stack;# D% c3 [. I% |3 P6 l; G4 S" Z
stack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));% s1 [9 o/ w: Q- K( V& {2 n
if(!stack.base) Error("Overflow");
" [9 u4 a: W6 cstack.top=stack.base;
! W2 ]4 P3 k+ w) R1 n/ \9 mstack.stacksize=STACK_INIT_SIZE;! B+ R% {" a/ Y7 f1 A6 t: L7 Z
s=&stack;
7 O' F2 k! @; a. Y, p! ecurpos=start;
% V+ H3 r# @/ ^# S# N7 r% V2 fcurstep=1;
- |# Q; T/ L4 L$ ^do& [. _3 X) l/ q; G/ x
{9 _% q2 O: ]$ E5 b# U, g- v
if(Pass(curpos))
; D a! x5 a$ X, B{
3 b G+ F; K# E; C( T z) fFootPrint(curpos);
' a* e; | c% O7 m6 F1 S; Be.ord=curstep; e.seat=curpos; e.di=1;
3 ]8 N$ Q& v6 |/ H. H; W5 Wgotoxy((curpos.y+1)*2,curpos.x+2);
! e% P) l& O* B8 B% h" Zputch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
$ c; J, F" p Y+ odelay(8000); /* pospone time. */% ~" A: l( A: n+ h
Push(s,e); L# e+ U" y/ b' K3 y0 E: x
if(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */
& Z. p3 m0 T. X; l{( C0 ^; ~9 ]$ H; n G1 x$ g) E
DestroyStack(s);2 v# y5 M+ _7 f) B6 l
return TRUE;1 @0 t" E, E; i* ]/ H
}% D* e9 U9 }8 ]$ d
curpos=NextPos(curpos,1); /* Try next position. */
& c3 [4 A) ]6 x1 _curstep++;1 q8 d5 Y$ }) E/ h) U7 x
}
" d1 J) \1 d, Z* ]; [else
! D1 u8 U1 E3 X7 U8 D' J0 y{
. [0 o, o! g+ t W. o6 }& qif(!StackEmpty(s))7 ], R6 L- D5 P: |7 i" S/ q! E- `7 F
{+ {& w' O7 Z! ~" L7 z/ b) _
e=Pop(s,e); /* Removed e from s. */
8 U7 u) S, I% V2 Pwhile(e.di==4&&!StackEmpty(s)) /* Four directions have been checked
s6 c9 ?) m* m, ?; Wand s is not empty. */ b5 a; ]! O* ?" j, P. m, i, B
{+ r- _+ t% S) ]( `$ m9 G
MarkPrint(e.seat);
/ D- c+ |+ `& x0 C; K5 bgotoxy((e.seat.y+1)*2,e.seat.x+2);
1 i! ]3 j+ P/ r0 Kputch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');4 d: w3 v7 F" L( i6 T: u
delay(8000); /* Pospone time. */
- i. r2 B, O# K) q B4 I" agotoxy((e.seat.y+1)*2,e.seat.x+2);
! x" ?0 f* j) uputch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');
) ]/ G$ m: M# @$ ke=Pop(s,e); /* Remove e from s. */
. ?- {$ E5 J" k" n/ ]) m0 x. ucurstep--; M V2 ]8 [5 B+ f
}
5 ?6 `& {& G S3 Qif(e.di<4) /* The current position hasnot been checked. */
$ R5 f8 Y+ d( `/ ]7 e5 V{
. h ~7 ^$ K7 _. De.di++;
8 f( U# u7 G$ L& b9 _& APush(s,e); /* Insert e into s. */
. J8 U c3 m( @' tcurpos=NextPos(e.seat,e.di); /* Try next position. */7 q$ O, k2 ] `5 L$ H q y
}
8 t- ?% M4 z2 d6 h% q0 }}
% I p6 @1 H7 g* T; M}
; U; X3 u$ R) Y7 x}' u3 r. K, h& i* i- M0 i
while(!StackEmpty(s));
; l0 C% [& @5 g5 rDestroyStack(s);
: ] I. w6 C6 P# Greturn FALSE;' J3 j* n. R R0 N/ x
} /* MazePath */
+ ]* h! Y# x' }; y$ ]void main()$ x4 Q" }' M3 z9 U9 ]
{
3 k# x1 [; V3 P: n5 gPosType start,end;
" u2 m# Z3 P2 H8 z9 ^CreatMaze();0 O9 W+ z, C8 U1 p
start.x=StartPlace.y;, \+ F5 ?! W5 B( i9 b
start.y=StartPlace.x;
' k |2 R6 x( C, A3 wend.x=EndPlace.y;$ u% h* [% I$ T* p; J9 ~; C/ M
end.y=EndPlace.x;5 l4 W) V% h7 `0 y, T
if(MazePath(start,end)); E S. J$ g: A* a
{$ @& W& B! x% @7 }/ Y
gotoxy(2,22);
" P" e9 A8 D# S+ cprintf("
ath found\n");
3 X8 l0 B( X# w}* `8 E- v0 S* k5 \+ q5 Y7 m9 q. b, B
else& `# P' g0 e, ~7 I& J
{& }7 b. ~) F; w/ a5 L- I
gotoxy(2,22);
" W4 }6 C7 B* H9 f5 Bprintf("
ath not found\n");) l( w ?, |* v8 ^( n& @% ~
}1 J5 K6 q# |1 G! r
getch();
9 T7 Y( V* O0 Y# S$ T% B) }$ gclrscr();
/ f9 N3 w1 }$ N4 Q: X( z} </P></DIV>
作者: 韩冰 时间: 2004-10-4 02:36
<
><b><FONT color=#000000>.:.:上海黑暗之龙--麻将原代码:.:.</FONT></b></P><DIV 626px; HEIGHT: 132px" align=left><
align=left>部分图片未上传3 x- p) I. o9 i/ y( O- d% `" S, v% w
/*天宇软件
6 q2 a1 A! \7 L% q3 N作者:上海黑暗之龙
9 Z, J# D$ ~2 u- y6 D9 I/ a2002/10/30. S* z9 k* _9 o1 Q' A. K. _
麻将原代码*/# d, I* [# {0 M+ U
#include "dos.h"
! r( [8 d7 k1 Z2 o9 T+ x#include "stdio.h"
v) B/ C- }3 y/ f1 P#include "graphics.h"
% x* c0 c* ]- h7 v#include "bios.h"7 J( [( ~) u; s2 o- o
#include "conio.h"
! }+ }. o( `: h/ x8 z#include "stdlib.h": E( N8 t7 v" A! T
unsigned char far *video_buffer=(char far *)0xA0000000L;
) t7 N; O' m6 X9 h#define VGA256 0x13 /*图形模式13h*/
# x# [& i, a& X. H" u#define TEXT_MODE 0x03 /*普通文本模式*/
8 h! ~4 h+ i6 W4 K# C8 j- ^#define SETVGA Set_Video_Mode(VGA256)
4 n- x/ z7 ~8 [1 @# C! B#define OUTVGA Set_Video_Mode(TEXT_MODE)
8 W. m' K# q9 X6 S#define BYTE unsigned char
! J0 p% B" | e' n6 A#define WORD unsigned int
3 r7 l# d/ \( h! o! k- M) @#define DWORD unsigned int
& X5 ?( c9 R; x3 S( i#define ESC 283
' p, L8 c( S: r6 R+ I#define LEFT 19200
" a* s, l/ J! x8 U+ B: ^6 n5 \#define RIGHT 19712
( Z0 Z9 p0 d% M#define H 9064
2 `3 L; l$ k" |" j! T#define ENTER 7181
4 D1 e1 p. d& e4 ^unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;
7 [8 q* T @2 ?& ^: J' {' hint key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;
3 m2 N$ Z) _$ ]4 bstruct chi/ G, L1 v" J) n, N/ z
{
' D/ q3 v' Y& G2 hint lg;) c5 { D. ^6 i; X* g& {2 n' U
int lgg;' M% e: X1 n" {) K* P- t" b, `) A3 I
}ch[13];2 \6 _2 P: |; R; z
struct mj
3 _ |; z4 S: ]/ x! g% F$ c{ char *name; /*名字*/! C. E& |4 B; G" A" }
int data1; /*是否已出,无用了*/
- B j3 z" P. qint data2; /*是否在手中,1为自己,2为对方*/ ?3 i) h. ^: t& \8 t1 _
int number; /*同一个花色的第几张,共4张*/
9 J* W. w8 Y3 z* V5 F% s}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,6 N$ {4 u: s4 i2 y
"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,
+ e" j5 W' ]7 G; i3 \- A0 C"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,% Y: `' G; O- k8 Z v
"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,) M R6 ]3 H+ `( ~ D' P- I3 K' |5 y; t8 d
"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,
- }( J4 X2 c) z8 a# N( t"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,
3 g4 b" X9 u. ]8 I* H* k6 s"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,
1 h% I' k* d: V8 {. j; F8 }"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,
' w. w2 `9 ?. [# U"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,- L3 V% g+ ~ j/ q0 m( Q: ~
"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,
/ C" g; F& i' @/ K"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,
" N8 d& @; Z2 @; F q( {"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,
, ^, d v H) ^; S"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,( f: C! v" C- E& t+ p
"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,
' c& O# @' M2 J1 y+ f A"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,. ]& D7 ~* q0 w6 E
"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,
6 j5 h6 {# ]8 ^3 X"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,
: W! Q+ A& R% z8 G% e: i1 X"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,' c5 s) m M" o6 V* Y: x
"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,
' `: I4 T, b$ N. n) Q) y8 z+ d"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,6 Q; O/ Q! I: P" L: o
"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, ^+ @# P; R$ h! `; h
"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,
6 j% T. j. X8 O; C" S1 N% I4 `"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,
5 D7 d J, y2 S: ~9 M2 ~- e"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,
! T* ` F/ ]5 c L1 ?" o"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,
& E$ \3 W. D5 r4 a. 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,
% C, q; R: f5 z) J8 z! \# K"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,4 g3 s" p3 [( O. g. I
"34.bmp"};
, E& h2 D2 [% `$ Tstruct every( _$ q5 W9 _5 X: z# I( u1 g" y8 Q
{ int *k; /*名字*/+ z* \- b! u! l7 B& Z4 n
int oneorfour; /*同一张牌的第几张*/4 b5 y8 r/ Z. q; D: c) \, O( G
int number; /*第几张牌136*/! Y3 Z5 j$ \8 t! B. b5 i: e
int p;
5 E0 o! Q a( I0 gint g;
1 x1 F; K0 x$ Q6 A6 }0 wint c;
3 M4 }/ `: o7 K4 H( gint d[2];
u: E3 z" F8 |3 m+ J) H8 e c" {! g};2 l+ V# n" d d. }9 Z+ U
struct me
' l) g' w' K5 Z, {: P6 V+ O3 Y{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/! E& U3 O6 s5 s8 \7 w
int p; /*乓对方*/
' F8 N( V0 o3 p: v M2 T! xint c; /*吃对方*/
& p. Q9 q+ g8 }. E# z' T+ gint g; /*杠*/- Q/ }! @- d" v: E
4 j( M; e9 ^% Q. p2 {struct every pp[14]; /*存放手上的牌*/
7 P# h# P- _$ g}me;2 Y0 y! ?. N/ i, H5 @: z. k1 w0 \, f
struct computer
" W m7 G" C/ \+ w' ?! s{ int m;
- j3 y) b* r3 R0 c6 d/ D+ G( Oint p;
4 l, l/ Y! B$ `5 t! @4 D5 Zint c;. b: ]8 j' T' K* H
int g;( o! C; k |2 V) f* G* b/ f
struct every pp[14];& ]. E$ i! n/ h# q; T' O2 ?
}computer,comp;- g: l* E2 K# h% [, P
' i, }4 F* i2 t7 M: B, s6 x/* 设置调色板 */) W2 [; Z8 r0 U2 Q$ ]
void Set_Palette(int Color,BYTE r,BYTE g,BYTE b)' a' `7 e, R8 k4 J) H" ]) T
{
. }* a' x9 t5 J9 l! ]outportb(0x3c8,Color); /*0x3c8写端口 写色号*/
$ K' k& R' Y6 B7 i% |, C2 Ioutportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/
6 _4 O; o" U2 b4 v) R, t- moutportb(0x3c9,g);
6 i, E0 ^+ R) a/ G+ ^. Routportb(0x3c9,b);
. ` M0 ~5 `8 k$ f \3 w' s}
9 k% U) h; R& \/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*/* n* D% p: H9 C& N+ `8 j! Y
/* 设置显示模式的函数 */
2 X& `# y1 K' }& S$ w, Fvoid Set_Video_Mode(int mode)+ r1 o0 x5 m+ v: H
{
. h" C6 B {2 i( C8 {union REGS inregs,outregs; /*定义输入和返回寄存器*/- I5 x8 o: x" e3 t: R9 b
inregs.h.ah=0; /*ah存放功能号0h表示进入视频模式*/
4 E3 d0 t' C% O; W( Y N8 y4 T. \1 Vinregs.h.al=(unsigned char)mode; /*al存放要设定的视频模式*/* W; e# y1 N; b0 Q' X
int86(0x10,&inregs,&outregs); /*通过10h中断设定显示模式int86()包含在dos.h*/% }+ v" | g1 C
}
7 I7 X; o8 C0 t) o& h2 y* h7 Uvoid v_line(int y0,int y1,int x,unsigned int color) |+ O1 A5 g% T" p
{ unsigned int address,n,temp;8 I1 v* ^1 O8 w$ Y5 D6 V8 m
if(y0>y1)
- I: S1 H/ H z6 M{
4 r" ?' Q/ m/ I. }4 }temp=y1;& c) S$ Q4 O/ R+ _, }. h( S- t
y1=y0;3 m! [. g0 z+ Z; J& t0 N
y0=temp;
* g& s* B% M" e9 l% x d D5 l( O- c}8 q( @9 p" l, R. d7 ^
address=320*y0+x;
6 e8 A+ N. I5 F Ufor(n=0;n<=y1-y0;n++)
# k6 m6 K) b3 V3 q{: T9 H) A6 l* r' s* K9 f; }* I6 p
video_buffer[address]=color;1 T: H* N% X9 V3 L( v, ?
address+=320;( |9 m: n9 h9 [: s1 W0 X
}* }4 z1 F; Y0 u; Y: J! {) k
}
4 I' _6 Y2 [3 n S o4 avoid h_line(int x0,int x1,int y,unsigned int color)
0 c8 B* U, l' D9 m' L7 ]$ S{ unsigned int address,n,temp;
) B @- G" K* Z) y, s6 k- o% d* mif(x0>x1)
Q# l d- D( @9 t{
2 B! t; T/ _% q+ X* ktemp=x1;( n9 h- _, p+ L9 M! d
x1=x0;4 G! n% ]$ A$ x% o
x0=temp;, ^5 a: Z& k4 Q7 d4 }3 z& _0 \
}5 l, O8 _ A( M7 Y
address=320*y+x0;
6 e( O" X7 o; B$ S. [for(n=0;n<=x1-x0;n++)
$ u' j. F" I$ E! t1 W( C{ j* a& s/ J# L) B& ?/ j
video_buffer[address]=color;, o% s# p W, F# z- J" I
address+=1;
3 y; a- [: ]6 g* c; }}# \. a5 b% _) f2 C+ N
}
' Y( a7 j f4 J" W8 @: G6 |void p_pixel(int x,int y,unsigned int color)" Y) R# f. U5 H: s3 J
{ video_buffer[y*320+x]=color;
+ s8 x: E5 |5 E5 W6 b}( s. K5 l2 y: g: X
void s_square(int x,int y,int side,int color)
+ o0 U, U2 N8 |4 I }{$ ?9 o U3 _3 @# m
h_line(x,x+side,y,color);
. b5 [( e1 n/ V9 ^h_line(x,x+side,y+side,color);, e! O, y1 c! P) u5 X$ w
v_line(y,y+side,x,color);
6 a; \$ [+ w5 P# [: }v_line(y,y+side,x+side,color);
6 Y; B0 q2 q2 N3 N: i8 H. W/ l}9 K: p, g' s0 r ~ `) u$ j) m
void r_rectangle(int x1,int y1,int x2,int y2,int color)
4 {$ E5 b/ p( M: s; P" a- X4 u) x{7 ?& n1 u I) t- d
h_line(x1,x2,y1,color);
9 }+ Q, n( b$ L0 b8 d" Yh_line(x1,x2,y2,color);9 i7 b( |* D- c* P: ]
v_line(y1,y2,x1,color);, R2 s8 b/ q; ?8 \% y* C1 M
v_line(y1,y2,x2,color);
9 K( U' G* J8 C- O/ R8 U0 ?8 o}
. M% a1 |* F% Q. M% S5 L+ `, g2 c5 i& Ovoid fillRectangle(int x1,int y1,int x2,int y2,int color)
3 m, u- t K2 Z3 X/ K$ Q* b6 O{
$ T' m; P+ ^' ^- a2 Aint i;
- |" x* d0 T& {: qfor(i=y1;i<=y2;i++)
/ T6 N& G0 l: e" N5 b. Z- S; P{' q. U7 r, ^. z) O, U$ W
h_line(x1,x2,i,color);
0 @* k' Z4 Y2 I2 Q- n4 ~& v}
2 f \ s. I1 o9 U2 M; |# N}
2 B9 I: {( Q3 c; |void showbmp(int l)
: q5 I% Q- ]. O{ FILE *bmp;
/ u! z/ x5 Q* [: |4 {int i,x,y;! D0 c& t( v5 _
BYTE palette[256][3];
% l$ f5 c* X, c% N0 H4 }bmp=fopen(me.pp[l].k,"rb");% z* p2 }3 s6 u, |/ q
fseek(bmp,54,SEEK_SET);
/ W z6 ~, A" l6 P: h2 w5 x$ @for(i=0;i<256;i++)2 [; Z3 N6 [" |3 M
{
5 T% ^. j8 g) B/ Z5 B$ g/ X. O9 Gpalette[2]=fgetc(bmp)>>2;. h. k/ z9 ]1 I$ j: P
palette[1]=fgetc(bmp)>>2;
! u+ P& a, j2 ?; f$ x `2 C2 ypalette[0]=fgetc(bmp)>>2;
5 u5 W) q# O3 `4 X1 h6 Efgetc(bmp);- U4 ]- A. g, v" c' x
Set_Palette(i,palette[0],palette[1],palette[2]);
' G2 f6 ]$ B. U' j6 N1 y}1 M3 I2 S# }2 p
for (y=0;y<30;y++)% Q6 ~: J# p$ b7 e% K1 K1 w
for(x=0;x<20;x++)- v) q7 q D. _ k: t- j8 i
pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));
+ x, _. M) D6 E. s, ?# ^' rfclose(bmp);
, u# s7 N( k. ]( Y& k4 D# J}
: B% @/ m. ?; H# P+ F8 O4 z) O5 dvoid showbmpd(int l), q0 K/ [- X! `+ ]4 W0 v. T' F
{ FILE *bmp;& `2 v1 f0 O9 k% w# n. X, W' A
int i,x,y;
# p9 L" ~' y9 h/ C/ qBYTE palette[256][3];. c# {4 s) r7 o" Q; z% h' L
bmp=fopen(me.pp[l].k,"rb");
% M2 V- e- C( n8 \3 L% y5 Lfseek(bmp,54,SEEK_SET);) t B) ~# N$ G+ V8 Z; J
for(i=0;i<256;i++)
* A7 v# c) N2 t3 f% x{
- e5 o& J' q- ~palette[2]=fgetc(bmp)>>2;6 T+ A4 r) M( r. p$ \' c+ K
palette[1]=fgetc(bmp)>>2;" p, ]7 L6 P% p5 _! R
palette[0]=fgetc(bmp)>>2;, N$ u( J: a3 c. m' @3 i. L
fgetc(bmp);' J# I) c" g$ w+ o! \ c0 D
Set_Palette(i,palette[0],palette[1],palette[2]);9 q, D9 Y/ i5 |* X+ _! s
}
( j9 B' U! {" t/ }for (y=0;y<30;y++)
) u* l1 X+ z- k4 P: z" s0 d- Y/ j' @6 ~for(x=0;x<20;x++)
" [6 L5 V S6 J8 j! k4 m6 y& ipokeb(0xa000,y*320+x+zyy,fgetc(bmp));/ B; Z* ^3 o6 T9 T5 W1 m. J, y. d
fclose(bmp);
. I6 q' B7 L X2 X3 N}
) s; S, g" _. g. Evoid showybmp(int ll)
; ^6 d. J: l( F9 L$ u Q, R& e{ FILE *bmp;8 E/ I' I+ p9 R0 [- E' v$ C
int i,x,y;
4 U% J* u( L4 \: ]* ABYTE palette[256][3];3 y$ [% j* X. G. m
bmp=fopen(computer.pp[ll].k,"rb");
3 y; }' O, H8 D6 U; t) gfseek(bmp,54,SEEK_SET);0 X- s; E% e% C8 } j" ]
for(i=0;i<256;i++)
6 I, \& I7 M3 d* h* \0 J' P{
2 P& G+ P8 J9 B Opalette[2]=fgetc(bmp)>>2;- G& \! a/ f; N( T
palette[1]=fgetc(bmp)>>2;0 B* Q. G) A4 w
palette[0]=fgetc(bmp)>>2;
* b+ X% z7 z; Y- A6 T3 ?5 ]fgetc(bmp); d. }, r& M7 S7 R% }
Set_Palette(i,palette[0],palette[1],palette[2]);% s; E6 t( K: O
}
; [. Q! }* p& E; w' F. q6 o' u, rfor (y=0;y<30;y++)
7 q d, k, U) Z* l$ }* ]for(x=0;x<20;x++)
8 Q C2 i! O. K1 n. _pokeb(0xa000,y*320+x+zy,fgetc(bmp));
, A6 @0 M' t e% h" J; R- L1 ufclose(bmp);# m, _/ j& R4 l: v) |
}
+ m0 [0 X. N/ E' yvoid showcbmp(int ll)* [6 C* M0 [8 q8 W
{ FILE *bmp;0 n- S+ P; i# e& i4 q
int i,x,y;
9 n7 {2 O7 ]/ H7 q7 g6 [9 P/ ~8 yBYTE palette[256][3];; F3 B7 J" H: b3 C! O: O- P. y
bmp=fopen(computer.pp[ll].k,"rb");
% P! R4 D9 X& U. _2 rfseek(bmp,54,SEEK_SET);
* R2 [/ N& m }+ @for(i=0;i<256;i++)1 l, f( z! X# z9 z! e7 [
{
4 L3 X7 s+ I8 U! o9 I# \' H3 a' \palette[2]=fgetc(bmp)>>2;
! H/ w' x6 z# u* b! dpalette[1]=fgetc(bmp)>>2;
! x' j" r* L# y" p; u4 x2 upalette[0]=fgetc(bmp)>>2;
4 f7 ~8 d, l: yfgetc(bmp);6 H% z' L6 f4 i% ]" y+ L; l" E
Set_Palette(i,palette[0],palette[1],palette[2]);
/ K. _, l& T1 i v6 x! N. e}
( d1 X& k0 [6 ofor (y=0;y<30;y++)! G; ^0 o5 @! |2 l, U0 [. T8 u
for(x=0;x<20;x++)
! I" Y" j. ^, ]& E9 m. o B6 R7 Spokeb(0xa000,y*320+x+zyy,fgetc(bmp));
* J& ]) i: m/ J# ~1 J# `fclose(bmp);% {( f# f4 H3 {. L# }
}7 E/ y8 Y7 b- m( A. K
void bmpp(int number)
. ]- P) `, e- O* |{ FILE *bmp;
. |9 i- {9 {7 d% f' R$ J7 F. H. Tint i,x,y;7 s, e9 w: u! m
BYTE palette[256][3];
' C z! u( o+ S' F9 U8 cbmp=fopen(m[number].name,"rb");
( x" C) Z( B/ D. Q. f) v3 a7 q' [fseek(bmp,54,SEEK_SET);+ j8 C% u. P8 }) Q# }
for(i=0;i<256;i++)
& I: b6 x: C* `" R{- R+ x9 k; W \# p2 ?1 x
palette[2]=fgetc(bmp)>>2;! m' J9 n! L% E B" ~( \
palette[1]=fgetc(bmp)>>2;( Y( r. g, @5 F; W5 V
palette[0]=fgetc(bmp)>>2;) x) S @" z8 e2 G1 J8 f$ g% ?' D
fgetc(bmp);" a& x( g5 K7 O9 f
Set_Palette(i,palette[0],palette[1],palette[2]);
) w ?7 N% j/ C b" N& p}
/ U) f$ F) r3 o% }for (y=0;y<30;y++), N# @7 }# M- G, q+ ^) m
for(x=0;x<20;x++)
' _) ^+ N; @: [pokeb(0xa000,y*320+x+zl,fgetc(bmp));. C o& n1 t, `; P! E9 H9 L
fclose(bmp);% \& D- k3 Q; F1 x$ o$ A4 h
}7 y e% h8 Z. a$ v, e0 B9 d9 r, L
void comlipai() /*整理电脑的牌*/1 n- L0 o; e; g6 [6 |0 y
{ int n,j,u;: Q1 `9 `2 Y% o
int *lingshi;
- H M5 B2 l3 C" L% r( Ffor(n=0;n<computer.m;n++)2 `* K) t( o# I$ {$ e
for(j=n;j<computer.m;j++)
$ L6 Q t! p" J2 [/ J& l* ?* {+ I{
/ [" c, Y6 M4 t8 f) aif(computer.pp[n].number>computer.pp[j+1].number)
' F% f" Y& o" T. y" q{
8 E: v+ L6 F" U$ {lingshi=computer.pp[n].k;1 X( p _0 `6 b+ X# P( M+ d
computer.pp[n].k=computer.pp[j+1].k;
2 r& P. D- K* Qcomputer.pp[j+1].k=lingshi;& }0 E8 N5 a/ X, s
u=computer.pp[n].oneorfour;
) r$ {6 p" _! l" o Fcomputer.pp[n].oneorfour=computer.pp[j+1].oneorfour;
0 L2 s9 }: f4 y4 R) j, B: A, `computer.pp[j+1].oneorfour=u;- ?1 t( t5 z7 V% b; |
u=computer.pp[n].number;7 C5 u0 N) i8 ?$ r
computer.pp[n].number=computer.pp[j+1].number;. p4 ^: V1 i# x t$ W
computer.pp[j+1].number=u;
2 j9 B3 B4 M$ M! W6 F} R* M+ x* n- v: L# _% t
else
: m. }* L7 q' I% W+ S7 xif(computer.pp[n].number==computer.pp[j+1].number). G0 U$ Z9 F3 c) j
if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)3 W z- h; h/ r0 q) d4 ^
{
* h) D& S5 s; Y3 r8 C! ?lingshi=computer.pp[n].k;
7 E7 H0 U0 |4 b% hcomputer.pp[n].k=computer.pp[j+1].k;
3 }8 d; u- M! O: vcomputer.pp[j+1].k=lingshi;
2 G& l! S0 Q0 x+ i4 hu=computer.pp[n].oneorfour;
: T9 V0 W" [* I+ ^& ocomputer.pp[n].oneorfour=computer.pp[j+1].oneorfour;6 @1 R5 O6 I" P4 T8 a; q% E, _# k
computer.pp[j+1].oneorfour=u;* q) M4 W6 @$ @1 x1 u6 R; a0 p* |, t
u=computer.pp[n].number;$ H" m$ E) y+ x9 T9 F! b9 b
computer.pp[n].number=computer.pp[j+1].number;' \( _0 ~; {( r
computer.pp[j+1].number=u;
! b1 ]$ L- w( Y3 t! ?+ ]# f- V8 Y/ L}& a. K; d0 L/ Z, y# U
}$ i8 \6 i" ?1 X* o/ ~7 H! h
}
. |- C, r! m' v5 N$ ovoid melipai()
7 ?! t; M' _9 w+ w6 Y; b% z9 p{ int n,j,u;4 L3 ^5 U4 `+ ~3 H0 g# V" q
int *lingshi;* r8 A/ k+ ]% L: o8 Z) q- K; f# H
for(n=0;n<me.m;n++)# ~9 i1 r3 J6 y8 b; v
for(j=n;j<me.m;j++)3 S- g, N+ L! J2 |0 z& a& f
{
& ?+ ^$ o2 P: |) Hif(me.pp[n].number>me.pp[j+1].number)' m0 [; {) ?7 P8 y: {3 C! @
{! q2 {) `, Q2 @7 l6 R1 a
lingshi=me.pp[n].k;
6 w2 J: N; i7 ^3 S( \# k& i3 Ume.pp[n].k=me.pp[j+1].k;
$ D% @$ Q- E+ W9 [9 pme.pp[j+1].k=lingshi;' V9 B% s7 T* [! f2 r
u=me.pp[n].oneorfour;
7 }# ~2 W; y$ {/ q' c' @% Cme.pp[n].oneorfour=me.pp[j+1].oneorfour;
x/ C+ Y7 @6 s: \2 f" U) [me.pp[j+1].oneorfour=u;2 @! ~% W( T; c0 m' {$ K- ]9 H
u=me.pp[n].number;3 I% M& ]0 F# P. v" Z) Q+ R0 _- k
me.pp[n].number=me.pp[j+1].number; m9 v, c5 T p( R- W+ T
me.pp[j+1].number=u;! u% |7 l% L: N7 w B/ j4 v
}5 P) q7 h0 V4 c5 h
else& o1 P0 ?. m' B( o0 J* d
if(me.pp[n].number==me.pp[j+1].number)1 ?9 k; V& ~9 l$ X1 o6 p
if(me.pp[n].oneorfour>me.pp[j+1].oneorfour)& @, O6 u% T. P/ L5 Y& V; X8 E% P$ s
{
, \' p! A' v; g2 _2 g. l* R8 Dlingshi=me.pp[n].k;
4 F' h/ S7 g% Hme.pp[n].k=me.pp[j+1].k;8 b$ d* Z" t& T, ?2 r7 T
me.pp[j+1].k=lingshi;
0 v4 {& X. F0 gu=me.pp[n].oneorfour;
4 s5 b2 U" M7 hme.pp[n].oneorfour=me.pp[j+1].oneorfour;
9 H# c4 s( [2 t7 \0 S9 Z, O8 ^8 Pme.pp[j+1].oneorfour=u;
$ N0 O; O# R6 C" q% a( s* ]% su=me.pp[n].number;
6 V4 q' t- n! c! n' `4 eme.pp[n].number=me.pp[j+1].number;
( I& p4 }6 a! ?" n' S( M8 _8 `me.pp[j+1].number=u;
\: t/ \$ [ N0 m" L3 y}
7 h; Z! M$ j# Z% O# H4 z: B}
6 X1 ^- [, j/ z9 P7 X}# i1 L" M8 O7 l: [
void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/
9 N8 N- Z; Q! L7 Q) j{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
) s# m2 i9 R' r1 m$ iif(me.pp[c].number<=35 && me.pp[c].number>=0)
( B2 z+ i/ R% x" ^3 | {. }& n- ^{
6 Q0 T/ `/ w9 z# ]6 [- _, ^0 Xlogo=1;0 G8 d' R' Z% w$ ^6 f% n; Z
if(me.pp[c].number<=3 && me.pp[c].number>=0)
! f" J$ v1 o* y: M! O D0 b+ Slogoo=1;
9 k2 G4 D& ~1 ?9 W. _else if(me.pp[c].number<=7 && me.pp[c].number>=4)
( p7 m3 k0 Q: b9 \2 ?. j' Klogoo=2;
* t _: M/ u6 @9 i6 c( F+ Z Melse if(me.pp[c].number<=11 && me.pp[c].number>=8)
8 | m1 C( h I; _logoo=3;
( {/ {8 H) x2 j2 c- belse if(me.pp[c].number<=15 && me.pp[c].number>=12)" u, [) ?( S* O9 \
logoo=4;
/ p% s; W7 O' _' S& E8 N" G* q9 Lelse if(me.pp[c].number<=19 && me.pp[c].number>=16)
! b" T3 X" g+ Qlogoo=5;* p$ j9 ~$ g3 R" _, E
else if(me.pp[c].number<=23 && me.pp[c].number>=20)4 T- W y. ]% K
logoo=6;/ g. O2 _$ F5 { ~! x# `
else if(me.pp[c].number<=27 && me.pp[c].number>=24)
1 j6 h+ S( X2 J0 |' Y+ ologoo=7;8 ?* L- _/ K& {* G j, Y( k
else if(me.pp[c].number<=31 && me.pp[c].number>=28) f3 F5 t1 C4 i0 Y7 z3 X( x( Q" q
logoo=8;
g1 f" T9 E5 F! }" _9 @else if(me.pp[c].number<=35 && me.pp[c].number>=32)- c2 ?; s. M$ F9 H
logoo=9;7 }3 Q+ u! p% m9 l$ @& ]
}4 P: w) R* j0 j' k$ {
else if(me.pp[c].number<=71 && me.pp[c].number>=36)
8 e# i3 i/ w1 W9 h5 T6 q- J8 ]0 K# k{
8 Z+ |( R! B3 l7 d& R! N+ nlogo=2;9 k5 W0 Y- c7 n" _+ O5 o
if(me.pp[c].number<=39 && me.pp[c].number>=36)
; T: ^# Z, q5 Ulogoo=1;6 g: ~+ r* J4 @7 U7 v' a. e3 v
else if(me.pp[c].number<=43 && me.pp[c].number>=40)# z. h, h. \0 ?
logoo=2;7 k1 S+ D& I6 ^7 M i
else if(me.pp[c].number<=47 && me.pp[c].number>=44): k, R% c& A% D2 T+ K8 E" F
logoo=3;2 P/ [- t. N/ L1 P) a5 X7 }- m
else if(me.pp[c].number<=51 && me.pp[c].number>=48)) u/ E9 B& e) q v& V9 c: D% E
logoo=4;
6 V! X/ X' n8 _$ ~4 ~! Oelse if(me.pp[c].number<=55 && me.pp[c].number>=52)
7 j, Q6 R0 e6 i2 k! H- m% zlogoo=5;
6 f: I2 [' c" |& z: l! yelse if(me.pp[c].number<=59 && me.pp[c].number>=56)' ^* Y N3 J* g, e+ R/ K! F
logoo=6;: T! T: }! x8 U i
else if(me.pp[c].number<=63 && me.pp[c].number>=60)
% |3 {# \. m2 wlogoo=7;8 K+ X. o( g; l6 I/ b
else if(me.pp[c].number<=67 && me.pp[c].number>=64)
7 B7 d2 T! S1 p ~/ Llogoo=8;
' i' e* J( B5 `" belse if(me.pp[c].number<=71 && me.pp[c].number>=68)) ^) g7 Z# S8 c* m1 Y- n9 g ^% H4 V
logoo=9;. V- P! E2 S" l6 w; M
}
7 u- m5 b0 B) h- e2 Delse if(me.pp[c].number<=107 && me.pp[c].number>=72); ^& i9 z( X; w/ N7 L& W& o
{
2 ~* \) k4 @9 ylogo=3;
1 n2 M* F0 L, c: B& o3 Dif(me.pp[c].number<=75 && me.pp[c].number>=72)
/ a. A. F( D1 l6 \- h) z8 Plogoo=1;; K; S$ @; d, q& M8 S4 ?
else if(me.pp[c].number<=79 && me.pp[c].number>=76)) ~2 m+ `4 k. V! H. `
logoo=2;
+ Z) H& m0 F1 i; ]8 {' y" }else if(me.pp[c].number<=83 && me.pp[c].number>=80)
- n: E7 w5 X- v5 M T# glogoo=3;
* t) O/ _# F0 p, oelse if(me.pp[c].number<=87 && me.pp[c].number>=84)8 P& `% u# U5 k1 {* O4 j
logoo=4;2 f2 Q* ~4 r- d6 g
else if(me.pp[c].number<=91 && me.pp[c].number>=88)6 o' t) x) w8 ^3 M
logoo=5;8 E, d; H& O+ @# q1 f S L' T
else if(me.pp[c].number<=95 && me.pp[c].number>=92)5 w A# b/ {" u
logoo=6;" X4 @( i1 g$ \
else if(me.pp[c].number<=99 && me.pp[c].number>=96)( q3 N2 y$ [8 ?+ U
logoo=7;
/ d% E/ T0 s+ [" I1 Q9 V7 m4 ]6 ^else if(me.pp[c].number<=103 && me.pp[c].number>=100)
% R) r3 a" A. J+ |logoo=8;
/ h9 ]( u4 R' q, v& G* T4 ~else if(me.pp[c].number<=107 && me.pp[c].number>=104)2 ~6 y7 O& H6 N9 P1 f) J
logoo=9;+ y- X7 ^ u# u+ m: q
}
( [4 X3 w, ]% T4 ]# u1 Y' s relse if(me.pp[c].number<=135 && me.pp[c].number>=108)
2 V* E& ^5 F7 b{# R9 q( C4 `& n2 o; p
logo=4;1 p, o/ y" \3 C
if(me.pp[c].number<=111 && me.pp[c].number>=108)
% m% g* t. v, |logoo=1;
: P0 S8 n" l, \; j Yelse if(me.pp[c].number<=115 && me.pp[c].number>=112)
- |! @+ s A6 T4 Ilogoo=2;
* y0 z. a% e6 V @. ^ v! Welse if(me.pp[c].number<=119 && me.pp[c].number>=116)/ Q0 j7 \ O T
logoo=3;
3 N6 o' ]4 v- B+ [$ c C& belse if(me.pp[c].number<=123 && me.pp[c].number>=120)3 K6 V" k, i4 z% g) w
logoo=4;
3 e7 C- B# `& k0 E' v+ f9 M% _- K0 ^else if(me.pp[c].number<=127 && me.pp[c].number>=124)
j- h8 Z) n! {5 U0 }( x2 alogoo=5;
3 q, ]2 h, [) uelse if(me.pp[c].number<=131 && me.pp[c].number>=128)
8 M) X" m( L& K% {$ l: Llogoo=6;( W6 ]' U2 E3 Q6 {2 }' m
else if(me.pp[c].number<=135 && me.pp[c].number>=132)/ T+ L) u1 n& ]2 H0 e" }
logoo=7;
" s5 F" @) T+ Z R}
- s- D/ |, P9 Y( T; \while(b<=computer.m) W& Y6 c3 q# Q9 U2 W
{
) y7 E2 P, h1 B! y Zif(computer.pp.number<=35 && computer.pp.number>=0) /*假定电脑经过分析后出了第一张牌*/ ?8 w l& _! H' S0 K
{
; g) \0 Z( Q; [" Glg=1;
% q' j& A$ l8 s, K: n4 x9 mcomputer.pp.d[0]=1;. z; ^$ j, K& a, a6 u; y
if(computer.pp.number<=3 && computer.pp.number>=0)9 D) t0 E& i, N: U8 p0 U% z
{- y/ d% n5 H7 t
lgg=1;
/ s3 X. a& z- O5 f9 Pcomputer.pp.d[1]=1;
& f E/ d! b: I% s d3 d}& p7 p2 J2 T9 Y; J) K
else if(computer.pp.number<=7 && computer.pp.number>=4)& X! }4 K8 g4 r4 E- W
{( Y% y6 `7 \( [% R
lgg=2; N2 G' [ x! N* g
computer.pp.d[1]=2;. _/ S% w: E- r
}
! Z n+ k- B, Y& n `else if(computer.pp.number<=11 && computer.pp.number>=8)4 U, w- Y0 j3 {9 h, D) x
{
9 F9 M% s1 L+ V3 R Nlgg=3;
6 n% l. N5 @7 M' q4 Mcomputer.pp.d[1]=3;
) x( i9 @4 n0 _}
5 k0 y0 y5 v: xelse if(computer.pp.number<=15 && computer.pp.number>=12)
4 N3 V: }% N. [3 F" C{
2 } O; V5 n/ z8 Z. Z: ulgg=4;; i- w2 B0 V" Q/ |1 w# T
computer.pp.d[1]=4;6 q6 y6 F% ~4 h
} S% E$ R" Q7 Y4 Y& }
else if(computer.pp.number<=19 && computer.pp.number>=16)5 O5 k6 P% }0 y2 S3 n% I
{ Q, |' J! y9 S5 I# C
lgg=5;* R6 r1 t% F1 F
computer.pp.d[1]=5;2 ]2 U1 [8 g) t; x9 Z
}
( K1 ?5 X% e; q7 @7 H7 pelse if(computer.pp.number<=23 && computer.pp.number>=20)
$ z# d1 O/ F7 ]: i% G0 S{ R; R. |! ?/ @1 l- W4 |
lgg=6;
* G1 M) p4 N( u* U: `computer.pp.d[1]=6;
' C- y5 @4 c" z1 |$ j1 J}
, ^' f; _0 L- v/ Celse if(computer.pp.number<=27 && computer.pp.number>=24)
% }% s4 F: C- m/ U+ i1 _% E5 T4 s{% U* l9 D' R- H2 l% r- y- A
lgg=7;* ~$ s& t1 P" j# k. ~
computer.pp.d[1]=7;
9 u6 d' L1 o( l0 }. M" B}
3 z3 V. @. L. a& M' lelse if(computer.pp.number<=31 && computer.pp.number>=28); y; d" S5 x+ q% ^% Y! q. A' ^* m
{
# L; R8 L+ E3 ^$ ?; A7 y6 Rlgg=8;
: S+ x1 ~8 Z, y) J& \computer.pp.d[1]=8;
u. W0 }& G; _3 F}
( C) X8 I2 b- T0 I" Eelse if(computer.pp.number<=35 && computer.pp.number>=32)
9 ~; b# \" w* N% b, `/ y{
5 R0 f: ^5 }" u/ A' V9 G7 L% N8 jlgg=9;
7 m. [. c0 U* O5 o! V1 dcomputer.pp.d[1]=9;8 @# [; w( c% W2 J7 P+ h' Y
}0 U- I6 o+ J6 s7 q
}( X, p+ T( S' t$ n+ G7 u
else if(computer.pp.number<=71 && computer.pp.number>=36)6 C/ R: m# O* _3 u
{" G. l) r: r4 f
lg=2;
* |# v& O: W2 T9 A scomputer.pp.d[0]=2;
, Q4 K. i- N. n! j- Yif(computer.pp.number<=39 && computer.pp.number>=36)
U7 F: F. G* J+ J/ D{* s2 B- V0 Y# B) _7 v+ S) `( I* d
lgg=1;9 N, ^4 R4 f5 c( ]' g" g# F
computer.pp.d[1]=1;& `, |) E, q2 i. E. t
}
) T; [) K" I6 Relse if(computer.pp.number<=43 && computer.pp.number>=40)5 `9 ]+ g. t' \- {8 ]1 {* P
{- j+ g1 G# B9 x
lgg=2;
" j% i# X% Y7 v# Ecomputer.pp.d[1]=2;
% ]3 D& W1 P. w/ f; Z) U}6 p. K$ Z2 M1 P& B9 Q1 h/ K
else if(computer.pp.number<=47 && computer.pp.number>=44)
7 z" x0 m5 b+ F4 O& k/ A/ M* A{
+ Q2 o1 O, v& C5 {! Y" klgg=3;
8 Q7 {( J2 M8 ?5 i' ]* Jcomputer.pp.d[1]=3;0 C/ p/ q% H. m$ T) N3 X' _
}# P7 V* _3 h% E5 F- x0 F
else if(computer.pp.number<=51 && computer.pp.number>=48) \) N3 R% ~" d( s4 a6 {2 E. c
{: N6 ^) }; v( m5 u$ @0 ~
lgg=4;
3 p% B! r+ j e3 A" X' {computer.pp.d[1]=4;
7 h6 z8 w' P6 [) ^}4 r4 Y8 g% O: t. T/ a+ z
else if(computer.pp.number<=55 && computer.pp.number>=52)
- h3 W1 Q5 F$ z! E" y, L{# `0 |4 C; Q8 L( ^2 Z) ^
lgg=5;
$ e+ }" |! m' L7 ^computer.pp.d[1]=5;
% c# T9 U1 q \}2 w! I$ r5 n: v& X; J* ?& S
else if(computer.pp.number<=59 && computer.pp.number>=56)7 }! C" ^* ?! r& o- ^$ \
{; k" u; U2 }( [+ p
lgg=6;
& f8 @, ~; p5 o5 a2 q3 Z* Vcomputer.pp.d[1]=6;
' z1 b1 h7 g6 _+ s' H}& C( w2 `0 V* R& ^
else if(computer.pp.number<=63 && computer.pp.number>=60)/ A, E1 i& j0 s7 M# e
{; }' j6 N2 \ T! [1 X a3 Y
lgg=7;
3 {8 Q% W3 z$ _* Gcomputer.pp.d[1]=7;
9 ^6 i# d$ G" P- [6 S+ [}/ a4 Y7 B6 e( H8 Y. q3 Y
else if(computer.pp.number<=67 && computer.pp.number>=64)
7 M% n' Q# k' P7 z{
u' o5 V+ s3 ?( Q# a( vlgg=8;4 [8 q" [. ?2 F1 H
computer.pp.d[1]=8;
, _' D* b3 v6 [( V8 a2 u# Q E1 y}& A9 q" {' d% n$ U2 k' c
else if(computer.pp.number<=71 && computer.pp.number>=68)% U# K$ p% K9 N& m- a0 l+ E
{
1 O+ f8 W; I# w8 Y. k1 Nlgg=9;( S0 K) s, ~0 h* v( ]- d
computer.pp.d[1]=9;
" p6 q1 z5 h7 z5 h" E. B" n0 ?6 H}4 l0 z3 _ y* u5 Z( O6 E ?
} M' `' ~- Y, O T$ l; d* ]/ H
else if(computer.pp.number<=107 && computer.pp.number>=72)# S8 @& x e2 P6 \0 c# l
{
, Z4 i* [2 v7 u, V3 n4 r5 Elg=3;7 H0 t* _, e( }5 N/ O
computer.pp.d[0]=3;9 z! z# {2 a; }; r0 v' }& {
if(computer.pp.number<=75 && computer.pp.number>=72)3 R% d1 i/ ]8 @5 ~& }7 G# a
{
4 j/ O, {! \* a- T& M) q3 nlgg=1;# N4 T: Z6 N6 {% W
computer.pp.d[1]=1;
. D' x) [0 c/ b. M7 W1 D}2 l6 n. o/ v! ]# M; T
else if(computer.pp.number<=79 && computer.pp.number>=76)( J) M1 U% E5 \. w
{
5 F6 v; C1 r6 n, Qlgg=2;
, Q4 ^& k. G$ ^3 r& u2 ^( }computer.pp.d[1]=2;
/ q1 h8 z8 j ?+ m}
* k5 }; l3 E$ S3 Zelse if(computer.pp.number<=83 && computer.pp.number>=80)9 x; ~ } ?+ u' ]. o- ^
{
# u3 c: d+ W+ d, m& I1 U' W- K$ ~# ^lgg=3;
0 J% a1 B0 e3 l8 G7 b8 M) Ucomputer.pp.d[1]=3;& z0 H# o. _3 K% i+ y5 U
}1 m6 U2 G( D# ~0 k
else if(computer.pp.number<=87 && computer.pp.number>=84)# B. F$ I m# i2 G* _9 b
{
% K5 N+ F" T0 z O0 K4 wlgg=4;0 I: [' r+ G! c3 N8 e. @
computer.pp.d[1]=4;! {0 J+ X& `6 t0 o8 k+ \9 s
}
8 w- W3 [% s' }% a" eelse if(computer.pp.number<=91 && computer.pp.number>=88)
* v3 I8 L9 m2 I9 H{, _" i- K9 r- K& P$ [; e& U, v
lgg=5;# b) J8 P" [- n: y9 y/ @
computer.pp.d[1]=5;
8 s! F5 P3 e" j. _} I. Q- X0 o8 [. p
else if(computer.pp.number<=95 && computer.pp.number>=92)2 ^6 E- s' m, V6 T$ Z
{
8 E. ~& s0 v* r. d" ]lgg=6;7 y1 ?9 }8 {3 [, m: W4 c
computer.pp.d[1]=6;
m3 o( ^; @* [5 e; H1 u" P' ]3 }( @}
: e" [2 G; ?; @ l/ |) O6 Pelse if(computer.pp.number<=99 && computer.pp.number>=96)
- ?6 }. N% J" B* ^( ~{: m2 ]4 }" T3 a2 }9 O+ ~
lgg=7;* x' }# ]+ K5 J/ h
computer.pp.d[1]=7;
6 U$ v- W. F! ?" R! s; d$ m}
( S2 E' B1 l" r5 Nelse if(computer.pp.number<=103 && computer.pp.number>=100)* z& v O& H" Y& p5 V9 t
{
) [! D2 y$ F) f p# T% ^lgg=8;
6 e! R* \9 r/ p5 A9 vcomputer.pp.d[1]=8;# n9 ]6 l8 c' P* F! x f, l4 ^
}8 a# P' X; z. n2 s, O( |, u9 G* w. P
else if(computer.pp.number<=107 && computer.pp.number>=104); \5 R! o" e' P: M
{4 |& x) `1 G! j: h0 K' t
lgg=9;6 M5 T8 k. u# ?* g) \
computer.pp.d[1]=9;
) Z1 S8 H( F! n7 j* v}
/ P8 g7 h3 Z# o6 O( }& ?# b) U}
# P2 p* e4 ~$ X3 n a4 @) zelse if(computer.pp.number<=135 && computer.pp.number>=108)
" Z, H9 v1 A& m; e1 y3 d5 o{
u5 E1 d( c7 t0 a' W( D8 {8 n ?* u# Rlg=4;, a& G( Z# h# ^1 B* U8 @! b
computer.pp.d[0]=4;) z! o: @1 }0 M# U
if(computer.pp.number<=111 && computer.pp.number>=108). l( V* J9 e3 N9 @/ t' \: r
{: r7 W& m6 c) K8 X
lgg=1;
. y& _' a( m- d1 gcomputer.pp.d[1]=1;. `1 l, J5 p' r D2 t
}- t% o# t* d0 Y8 M- v
else if(computer.pp.number<=115 && computer.pp.number>=112): A& M. q& d" a7 k+ H5 L
{7 U* H0 h# X" G1 |$ I* h+ T( \6 f' [
lgg=2;( }# E( J8 ]" f& X; U
computer.pp.d[1]=2;
4 r, |% p1 D1 V) p0 P$ j}
/ p& \, D, Z* P& {' eelse if(computer.pp.number<=119 && computer.pp.number>=116)% d _6 b E- S3 r$ e
{! O. W; o \/ S1 k
lgg=3;
: X' S% `- l6 F/ d, e: x) d; L7 {computer.pp.d[1]=3;0 e; F4 U* K5 y1 L3 C' n
}
8 w% ^& a3 Y2 @$ b# ~1 O% Ielse if(computer.pp.number<=123 && computer.pp.number>=120)
$ l/ @6 W( B2 S1 f! r5 c{
5 Z1 p# w$ |, b; Wlgg=4;
* k, R7 k* l0 \* f7 Q" ecomputer.pp.d[1]=4;# W9 e0 H2 V5 \% s4 l! x9 ?. v8 e
}; V- r& l# \6 d% T; a9 `
else if(computer.pp.number<=127 && computer.pp.number>=124)! ~- K( p. E( |2 `/ v/ \5 j
{
4 L+ c8 c" ?: L/ Ulgg=5;, V: N, b. k, B! g3 r* }2 d/ u
computer.pp.d[1]=5;' [% g! u* c2 z7 Y! L3 v) K
}
: U) b( f: ]" C$ n9 H" Zelse if(computer.pp.number<=131 && computer.pp.number>=128)
$ U. I2 Y4 x/ f' E/ ]) R7 y8 L{* N% E7 i/ P! I7 M$ P7 F( |
lgg=6;
6 r2 h' q. G3 N& r8 Fcomputer.pp.d[1]=6;
t$ z1 k0 M; g9 G7 n1 M+ d}
5 S- w+ i7 Z: S9 j; o1 R5 eelse if(computer.pp.number<=135 && computer.pp.number>=132)8 y* f4 Z: m+ d6 p# p7 {
{( d: _( K, i% L0 \4 a
lgg=7;
1 W" \ R) A1 i( G7 i$ Qcomputer.pp.d[1]=7;6 L* A& _% z- S2 A
}
# c# z- T% B2 e; V4 P}
8 o2 P2 F) e; h9 q- R( m4 r" U& }' S7 t2 p2 M( U. l5 Y$ B d# A. J" L1 A. x
if(logo==lg) /*如果相等的话,那再进一步的判断,乓杠的判断*/
; O! Q5 Z4 W" x9 C9 zif(logoo==lgg)
4 K- {6 L v7 d- cpg++;
" D6 G* O' Y2 _+ ]/ }ch.lg=lg; /*保存电脑手里的每张牌的信息*/
/ |9 D2 o' u5 b0 E) G( S: r* ]ch.lgg=lgg;
3 b/ D7 J4 V4 u) b* b- Dlg=0;
3 C7 m1 p+ o. j mlgg=0;/ D: N3 W$ q, T1 x/ j9 s
b++;5 a( g3 w2 V8 ^7 {
}4 J* N% M: {* {- q5 j/ y
if(pg==2) /*乓*/$ I) O& r- }- _: K ]* s
{
- H3 m) a1 [% T% A
8 b, {( ]* w4 o9 h/ ?: L3 osing=1;2 D5 D, c+ G5 K7 b4 }3 G
b=computer.m;4 c3 Q* ? H1 g3 v
while(b!=-1)
' r9 w$ r) e6 Q{
- k5 F( ?; T6 n8 r3 w1 f( Aif(strcmp(me.pp[c].k,computer.pp.k)==0)
+ r' H* D( ~4 hcomputer.pp.p=1;
8 |# l2 j' }& p0 F H ?) M! k/ M4 X$ [. g, L5 ^/ l) v) _
b--;
7 _: P2 ^* H# ?% T}
5 F/ x5 d) G$ p1 c}' @% S% F' P9 K. M4 C
if(pg==3) /*杠*/
! Q, q/ Z9 I' a( D. a- W! P ^{4 v8 ^5 H2 R6 O C+ b
0 c4 |8 a$ H' g4 I4 Nsing=2;/ e$ Z: h$ L( Z) _' q
b=computer.m;% n* |0 E# o l3 ~9 b; Z2 k9 s
while(b!=-1)$ f+ `( b9 l% @
{6 Q3 S# f T( w; `: R; N6 m4 {* T
if(strcmp(me.pp[c].k,computer.pp.k)==0)5 W, P0 ^' M! k W5 m' ?8 m
computer.pp.g=1;
' ~, v x' u+ ab--;6 w4 i M1 u2 ]% N; C& x( g* u
}
- q' j) {0 W; {7 H0 x4 F* F5 f}
& L/ s {2 |8 u8 e4 N" T: _f=0;7 P; U* g! [+ P) J
while(f<computer.m) /*吃的判断*/- i4 u9 J! W/ L% v
{ if(ch[f].lg==logo && ch[f].lg!=4)
! I3 Q8 |, J9 L. G% p{
' N7 M* t- J6 |if(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/
# g6 i/ t+ A! J* _2 [( M7 q, Kif(ch[f].lgg-logoo==1)
( w$ l# _3 `2 c' \' n; U8 {4 F. X{5 C) t2 W+ l2 X; q3 k
gp++;
# L6 r/ f" b0 Q: s$ Y; j( Gcomputer.pp[f].c=1;% `# d$ [: l! D% Q3 j
computer.pp[f+1].c=1;
, f) M @/ u, a" \* a* z3 ~}
3 x- ^- z$ ^$ }! w( ^. Rif(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*/
: e7 q9 e5 K4 X5 h8 F3 F, U2 ~if(ch[f+1].lgg-logoo==-1)
1 r# W: U; {. D9 b- v# ~{+ D1 S) }9 W9 @' ?% a9 N6 ]2 j# E8 _4 m3 [
gp++;
& K" m! Y+ C! tcomputer.pp[f].c=1;
- M5 ]; [4 q0 r& T9 C0 hcomputer.pp[f+1].c=1; Q v5 [' P- j4 e# X
}
4 [( }; g7 L: b1 q& s r" R; `- rif(ch[f].lgg-logoo==-1) /*中吃*/3 a7 }0 [4 g! k0 w! I& f! {4 K; S. W$ D
if(ch[f+1].lgg-logoo==1)
! ~3 D: q2 X6 R I{
3 D+ A8 Q1 X1 e F1 X* Ngp++;$ e( \6 K6 I1 d0 h1 u, ~- S. A9 Z
computer.pp[f].c=1;/ ~( d2 O- [, z
computer.pp[f+1].c=1;
3 o$ w( I0 S, j* C8 V5 K- f) x- W" ?}# K: J7 V' R( M. H+ f
if(gp==1)2 y4 p9 k: v b5 O. V! n
break;
; Q! h# e6 v H0 a6 |, n}
& ^- t& F- m4 E, x% g1 rf++;
8 S0 P( F, F4 b& T. k7 @1 O}3 z( G# @$ r- B' v' K6 ]6 v" q
if(gp==1); X; s& s* ?5 r, X* ~* E
{sing=7;9 X& I* A, X; y, D- x
" X1 `8 l" S" @8 b Q" a% W}
+ q% ~6 l/ J. q0 ]4 Jpg=0;
6 a& x, s P+ t# \' Ngp=0;% w5 i% E2 B5 P: s
b=0;# h! k0 s' o) x0 d
}
9 X4 [+ W8 z' `% Z7 e* bvoid rgznme(int c) /*本程序涵数的核心针对我的牌*/
- a& \4 j. I" Z d3 D+ N{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;( o N* W, L- d( y
if(computer.pp[c].number<=35 && computer.pp[c].number>=0)9 N) v, o8 R) k2 M1 x& V+ e" O
{
3 S- E, {5 u+ N& [& p ulogo=1;
/ G6 l0 @" H4 l9 q4 D0 Wif(computer.pp[c].number<=3 && computer.pp[c].number>=0)
g: N5 d9 Y; r+ ~8 o1 Qlogoo=1;
1 Z& R3 _) T& O" e& F: ?. welse if(computer.pp[c].number<=7 && computer.pp[c].number>=4)
7 m9 Y# Z3 G6 Y c( y$ M& |5 blogoo=2;
' r. B) w6 O9 v+ uelse if(computer.pp[c].number<=11 && computer.pp[c].number>=8)
& q2 [+ r/ Y5 e" @; i/ q9 e I9 Slogoo=3;
8 h* r" Z" d2 e. |0 w n; selse if(computer.pp[c].number<=15 && computer.pp[c].number>=12)' {3 F6 M7 z9 d, v( K# ~8 ]
logoo=4;1 f6 y% d/ W2 h6 {& H" }
else if(computer.pp[c].number<=19 && computer.pp[c].number>=16)" u1 H* l+ E0 f {1 N* D/ C
logoo=5;* b: `0 ^' h7 q# D- w
else if(computer.pp[c].number<=23 && computer.pp[c].number>=20)/ b5 R, H. \0 z. U! E
logoo=6;
6 R' _8 [! n1 a7 xelse if(computer.pp[c].number<=27 && computer.pp[c].number>=24)- Q: R! G; Q4 h+ ~& f+ H
logoo=7;/ a+ @1 { W2 i1 D1 u- G5 L
else if(computer.pp[c].number<=31 && computer.pp[c].number>=28)
# I# @ K! w5 M0 e: E1 wlogoo=8;
* l6 S' n# K+ O1 qelse if(computer.pp[c].number<=35 && computer.pp[c].number>=32)
& S7 h9 Y3 y* q; blogoo=9;. A# F( k8 S7 Z; A$ Y
}# P( u$ M/ v7 @2 C% q
else if(computer.pp[c].number<=71 && computer.pp[c].number>=36)9 Z+ K9 ~7 S( i2 |
{2 _; h- t r$ S( m* ?' @
logo=2;
& e+ o0 l2 ^8 Nif(computer.pp[c].number<=39 && computer.pp[c].number>=36)7 e& I5 }3 p' ~: Y
logoo=1;3 A( ^. w& M, Y! a8 X$ k
else if(computer.pp[c].number<=43 && computer.pp[c].number>=40)3 C0 N1 s# Q2 x7 a5 Z6 ~
logoo=2;
# d0 s2 \, B2 {else if(computer.pp[c].number<=47 && computer.pp[c].number>=44)5 P9 a1 T8 H5 ^/ n
logoo=3;. R4 h! m5 B. P1 ~& ^0 J7 [
else if(computer.pp[c].number<=51 && computer.pp[c].number>=48)
8 `% q2 P5 W5 r! Slogoo=4;, V, ~3 W2 Y8 F) F
else if(computer.pp[c].number<=55 && computer.pp[c].number>=52)
7 [& {$ q6 M& t8 C7 u; Y& g) z$ X4 @logoo=5;7 x0 t8 q- H6 G: ], L1 R2 Y
else if(computer.pp[c].number<=59 && computer.pp[c].number>=56)2 w' r( g4 I! {9 l2 ~+ m
logoo=6;
$ @) ^$ q' D; {+ a5 V! l; A! Oelse if(computer.pp[c].number<=63 && computer.pp[c].number>=60)# k4 t7 ]6 O& S @* K
logoo=7;
0 U; C& G4 n, P* `else if(computer.pp[c].number<=67 && computer.pp[c].number>=64)
u3 u( N) h' j2 blogoo=8;
7 d# c! V8 y: r+ z& O( L7 `else if(computer.pp[c].number<=71 && computer.pp[c].number>=68)
4 z @) E5 P" T" }logoo=9;2 s5 Y5 J0 u2 f# L. l i
}$ F0 m; X, C) Q6 R" h
else if(computer.pp[c].number<=107 && computer.pp[c].number>=72)+ W5 [; G- W+ Z& {$ [
{* {. B7 i6 W: H5 C) Q5 G
logo=3;
0 ]6 X" T9 W, b9 q/ h3 G5 t: I+ }* eif(computer.pp[c].number<=75 && computer.pp[c].number>=72). m# Q. ^7 ]0 f+ Y% }# c# M" C
logoo=1; V6 T- p4 m/ s" d& }; v: k
else if(computer.pp[c].number<=79 && computer.pp[c].number>=76)- d7 R2 j* q& u/ J
logoo=2;. ~& B: Y; `: S) Y0 ~
else if(computer.pp[c].number<=83 && computer.pp[c].number>=80)+ D% v% K0 [1 G) s& ^# T( t3 B
logoo=3;
& V$ E7 j) ]! V; Q2 H/ e3 k5 welse if(computer.pp[c].number<=87 && computer.pp[c].number>=84)
w# M3 i' s: P" p7 \logoo=4;
% u) w8 E! k0 g, Ielse if(computer.pp[c].number<=91 && computer.pp[c].number>=88)
1 a! \( H, I8 b9 k1 f" qlogoo=5;% V6 ?$ Z5 }8 c/ l R2 |
else if(computer.pp[c].number<=95 && computer.pp[c].number>=92)4 p) e0 N: ~2 Y. I
logoo=6;: H3 E: B0 U( i* S Q/ @, E2 c
else if(computer.pp[c].number<=99 && computer.pp[c].number>=96)
( ]7 ^" f. P3 Z R2 f, ologoo=7;- ~% o Z" L$ _1 _4 q
else if(computer.pp[c].number<=103 && computer.pp[c].number>=100)
% t" H$ h# Z# E; @logoo=8;
6 p9 j5 v# T1 I1 c8 V- pelse if(computer.pp[c].number<=107 && computer.pp[c].number>=104)
E- S( L0 s, D4 k. g+ Ylogoo=9;
( Y* O/ B, S! t6 ~' c. |}- D3 D) ?, I; d
else if(computer.pp[c].number<=135 && computer.pp[c].number>=108)- J0 L/ Q1 F7 _ v4 c
{0 H. R0 ~% R* C$ ~2 j
logo=4;% ?- K1 v" M5 r, u9 A
if(computer.pp[c].number<=111 && computer.pp[c].number>=108)' q, }. ?) H, o% D
logoo=1;
! D+ q8 \- f b* ?2 Y$ `else if(computer.pp[c].number<=115 && computer.pp[c].number>=112)5 k+ [9 W0 _8 J$ ^+ d, L9 g
logoo=2;/ B/ O Z# E+ E. u9 i. M7 I) Q" c
else if(computer.pp[c].number<=119 && computer.pp[c].number>=116)* T+ j# o& e+ L4 c. q+ |) ^
logoo=3;9 |( E v2 e. n$ ]
else if(computer.pp[c].number<=123 && computer.pp[c].number>=120)" y+ ?& _" U- J! R. B
logoo=4;
" @& P' n1 a5 f! E( Relse if(computer.pp[c].number<=127 && computer.pp[c].number>=124)& S2 v9 }! y4 L1 t* e! M
logoo=5; l0 t; ?. J" G1 u- J# H
else if(computer.pp[c].number<=131 && computer.pp[c].number>=128)9 K# x, q* R4 m
logoo=6;
" ~; E$ |4 X' v N! c. }6 T8 y# Nelse if(computer.pp[c].number<=135 && computer.pp[c].number>=132)0 q0 P7 c# U# |5 ~, M6 `
logoo=7;/ N1 C0 G. r) i/ `' ~# I2 ]
}
' r7 x- y/ b1 Dwhile(b<=me.m)
2 ]6 J6 V5 {9 Y. ^: K{
; s5 D- N. P. h' m1 K @if(me.pp.number<=35 && me.pp.number>=0) /*我分析后出了第一张牌*/
1 `! _2 e" ?, b& a' W$ ]/ b{1 ~0 f' M3 q3 ~. t3 @
lg=1;
( R- L, C% C3 U3 f) d$ Rme.pp.d[0]=1;
# l: f! F& ?: C. @& t! G2 aif(me.pp.number<=3 && me.pp.number>=0)
+ d3 k1 Q H! a# C{
# `0 C7 C3 B0 Q, G+ u* @' z$ `lgg=1;
- o* h" R. `6 \8 ~me.pp.d[1]=1;5 G w" D3 t( w
}! j0 n, Q3 X3 |
else if(me.pp.number<=7 && me.pp.number>=4)! i S) ]) k7 B$ G+ k* E; k; @4 A( L
{
, w1 n* z' Z9 l, g6 ]lgg=2;% W* j' p9 c* r0 Z8 L# t$ p
me.pp.d[1]=2;
, b/ P: ]7 ^+ I* f* v' ~9 y6 ]}
7 h5 j& c% x) u7 D3 p. `- R+ uelse if(me.pp.number<=11 && me.pp.number>=8)" A+ ^8 {% X2 J8 ^3 S
{- F( V5 B+ U+ Z/ I: d/ |
lgg=3;
1 k- h$ }5 v; t, ime.pp.d[1]=3;4 I- w* _+ s3 r7 T/ `
}6 C7 V) y. C7 g9 o
else if(me.pp.number<=15 && me.pp.number>=12)
8 G' B2 v/ H+ D( [( J{; H1 `% {8 N% I/ ?8 P
lgg=4;4 J2 z, L9 q! Z
me.pp.d[1]=4;
3 N1 [+ z5 ], _. w! V3 ~}) G) v% ~8 @+ ^% Q" Q, ?* [
else if(me.pp.number<=19 && me.pp.number>=16)2 N8 O. T# f. D- @9 A
{
6 u" Y5 j8 y" j& M! @8 R% Flgg=5;
% @6 u6 t' }' S0 Tme.pp.d[1]=5;
& k% t* A. w. g& P2 t}
: X9 B& x1 Z9 A7 x- r3 w! X- F* welse if(me.pp.number<=23 && me.pp.number>=20)* r/ ]3 u3 ?) X8 B: R1 p6 Z
{6 S3 j6 s' |* }( {' G
lgg=6;* K) v( J" b5 U i" b X' v$ @
me.pp.d[1]=6;
/ x; Z7 D- _+ O8 m- o: e$ k}
& e% Z9 c. ~5 u% r, pelse if(me.pp.number<=27 && me.pp.number>=24)
2 u- q" ? @# L7 ~ }3 V _4 a s$ R{
" P' D: q2 Y2 N- J$ flgg=7;$ p' ?9 v3 }1 W& N/ n8 @6 ?$ x& o2 S
me.pp.d[1]=7;
& C4 R n! t1 u3 X5 Z4 @8 T}% f" @+ i! s9 \' w" Z4 x! N
else if(me.pp.number<=31 && me.pp.number>=28)
* K. {$ u' y( V0 B7 F7 J{. |: v" ^. l% }
lgg=8;& U8 k' K) j; L' N% F
me.pp.d[1]=8;
$ W+ t4 m6 [% R}* N; c% C" T3 |
else if(me.pp.number<=35 && me.pp.number>=32)
; b. @& l/ W) |& B1 C* w$ {6 ?{: E$ Y3 \& S. y! @
lgg=9;2 f8 W' G# o+ `! U/ I
me.pp.d[1]=9;6 O0 m) }5 j! T
}
. S3 o7 ?6 O0 B q+ h6 @}+ _9 R; K7 c, j
else if(me.pp.number<=71 && me.pp.number>=36). J4 F. c9 u+ a9 x
{& l5 @: C2 U+ U: S7 }3 i6 t
lg=2;
5 K/ k0 s! ^5 i0 Yme.pp.d[0]=2;
4 z$ M$ B4 i2 k: W. ^/ Z" Rif(me.pp.number<=39 && me.pp.number>=36)
) v. Y6 l7 G2 o, G) l2 A( n{2 t% v. n9 t+ Z1 E5 R
lgg=1;2 i) c* a) H' N8 Z. A) \
me.pp.d[1]=1;5 A+ c2 i" A5 O
}
! I. t4 w5 A# ]0 \) _" g9 r4 q9 celse if(me.pp.number<=43 && me.pp.number>=40)
3 l! Q- ]5 o, a& o# U{/ Q8 h0 i) t; R z
lgg=2;
5 T! S! Z3 s' j7 n7 Wme.pp.d[1]=2;
' l0 x1 ~: }0 i}
& y- _! p$ H: w4 xelse if(me.pp.number<=47 && me.pp.number>=44)
$ C8 t+ T! ?9 x! K{
# f* j1 Y+ k0 E* t- tlgg=3;
7 ~( F4 t6 o, i/ F& F, {0 Eme.pp.d[1]=3;! Y' X k2 y' }% O% I
}
$ ~! R5 Q- e; P+ Zelse if(me.pp.number<=51 && me.pp.number>=48)
" u" M' m( ~' S# F" g# @) F{- ^3 B2 c2 E7 [ X# Y w5 Y" R
lgg=4;
# o" t {4 t; l0 r3 r8 bme.pp.d[1]=4;
$ G, z1 R* i( N: W}, M2 p" n! [- Z% r/ C6 A
else if(me.pp.number<=55 && me.pp.number>=52)4 H. f3 b) A' l6 r: f
{
* `# F8 t8 B4 F% a; a2 t9 `lgg=5;0 P T# W6 { w1 q8 p ^; |" f$ r4 d) G
me.pp.d[1]=5;
- z( b- j1 d5 _+ j& y}& S4 o# o7 H2 i1 g, ?( d- Z
else if(me.pp.number<=59 && me.pp.number>=56)% K( n4 E) `3 [% H
{
R) ]6 Y6 Z% b) m1 ~# x& R, Algg=6;# A: a/ M- }; V5 i; P
me.pp.d[1]=6;+ f8 t0 D8 A) p7 Y/ J
}5 }/ {# R) F. e5 ^* |3 s0 S
else if(me.pp.number<=63 && me.pp.number>=60)
: E1 ?6 U) O6 s/ Y! K. G. N, K{
+ Z/ X* ]# P: o! l9 Jlgg=7;3 q( i/ |& T, _4 S% x7 c) {
me.pp.d[1]=7;( M; _& R }# p) t( k& i+ z
}0 k5 R8 F! q3 v) u( Z0 P
else if(me.pp.number<=67 && me.pp.number>=64)
/ w8 s& p) |0 k! |* |{: j1 `2 \) j5 a9 f" s( K% [& H
lgg=8;, o2 U" U7 J& k& x6 Z
me.pp.d[1]=8;
~6 X. C$ }) q4 P}
1 C) d" X1 I7 f) a, aelse if(me.pp.number<=71 && me.pp.number>=68)0 U3 a+ W' {1 @9 q5 _
{) g c8 k; Z: T
lgg=9;. w9 L a4 T, l4 Y% ?4 M
me.pp.d[1]=9;; D- f$ c, A/ s4 X
}8 f% M( t0 [8 E3 |: O5 B9 X
}& u$ R5 w- T) c% I! D
else if(me.pp.number<=107 && me.pp.number>=72)
+ @% C- h2 i! o, _5 j# e' [ s3 F4 Q{
& N6 D& ]! J- P+ F9 B4 A2 d Ylg=3; K/ P" w( o* [6 R* u
me.pp.d[0]=3;* ^/ J; w/ y; i" p9 J1 B/ |! R1 o
if(me.pp.number<=75 && me.pp.number>=72)# H! j: t# m5 B, m# q* P
{+ v9 H& q) V6 d3 G N
lgg=1;3 j5 t7 b& @0 d3 E
me.pp.d[1]=1;
: A9 i3 g: f5 ?9 i9 M9 U}6 [9 a2 ~4 ^& J' Z
else if(me.pp.number<=79 && me.pp.number>=76)" m. x1 Z! l, F c! C( x
{
2 o0 r+ {3 o1 n j. G4 O, ilgg=2;3 b# ]) i* Z! M/ ^. W
me.pp.d[1]=2;" P6 r% ~% }; o" R7 p2 c
}
( G" B( a7 N/ }+ C; e, selse if(me.pp.number<=83 && me.pp.number>=80)
* d0 e3 G1 F- D2 _7 g{6 x) N/ J h6 L D1 h" |
lgg=3;
' ]* I! r& ]& m7 B0 |me.pp.d[1]=3;
* Q9 ]7 a; o( d- B}/ m5 [/ C* D1 w- K+ ^
else if(me.pp.number<=87 && me.pp.number>=84) \" H8 o9 o; v
{1 u0 V7 U" o: {+ T8 z) {! P- b
lgg=4;
( Y: @1 G' O$ M, w3 X$ n1 Pme.pp.d[1]=4;
6 c, a* V/ n; @" L}& F: [/ S* I! {! Z4 R) X
else if(me.pp.number<=91 && me.pp.number>=88)
& P/ f: f# Z8 k# { B% Q{
6 X, K$ D; Z3 V9 Jlgg=5;( k; s9 j1 q' V. e( z' A+ x
me.pp.d[1]=5;3 R, p* C! ^; e. I+ c; M# a
}1 A: F& S1 {) N+ i
else if(me.pp.number<=95 && me.pp.number>=92)/ H/ n& q, P! J: T$ I! t$ [2 a( {
{5 M/ V F% V0 r: T- N3 k1 F
lgg=6;$ A: e( C% c- A5 _7 ?6 f
me.pp.d[1]=6;9 [, G6 J- n) k2 N0 R6 {
}
Z' c4 P! k9 z. pelse if(me.pp.number<=99 && me.pp.number>=96)
$ S" y0 N9 N' m* q{& {: U% }! Y" a* P! C; o5 C
lgg=7;
, J1 T3 H, J+ f8 mme.pp.d[1]=7;
! y. W0 B* h" G' U8 g}& W% b/ h% k* N# W+ V3 S
else if(me.pp.number<=103 && me.pp.number>=100)