数学建模社区-数学中国
标题: C语言技术文章 [打印本页]
作者: 韩冰 时间: 2004-10-4 02:34
标题: C语言技术文章
<DIV align=left>
# ?( G, Q6 u% q7 v2 n/ n# t<
align=left>程序目的:
- e: {4 H1 G: d& e+ u' X输入一个任意大小的迷宫,用栈求出一条走出迷宫的路径,并& t+ l5 |: s( g& B8 ~* _
显示在屏幕上。& ? a, G _0 i! G' d0 N) R' F
程序实现:6 v* B. G0 T* [2 D m1 t; c
可以实现载入迷宫和保存迷宫,附带文件中有4个测试迷宫路径的
3 u+ z2 k7 C( q O& F文件test1~4.dd。请将这些文件拷贝到TC当前目录下,或者在载3 N' t/ S0 G9 T U) r
入时写明完全路径。由于屏幕大小的限制,当用户自己输入迷宫
. \7 H1 F1 F8 b3 z; z9 Q1 {$ X# ~, t时一定要注意:迷宫大小是有限制的,不小于4*3,不大于30*20。
}7 m9 p8 Y& s w! \, o否则会出现错误信息。输入开始时全是墙,用上下左右键移动,+ x) J5 d- k4 [& K$ _' g
用Del键删除墙,形成通路,用Enter键添加墙。输入结束时可以: M% L! f- Q3 h: g) O
将迷宫保存下来,以dd为扩展名。输入完毕时用F9键来得到结果,
4 {' o0 C8 k; p/ C找到路径时,屏幕下方会出现Path found,否则出现Path not found。
* G' h4 z' q4 `6 G* ]& j1 i程序经Turbo C 2.0编译调试成功。运行时不用添加任何运行库。 W3 v4 C G- @
不可以在VC上编译。
* v# R+ d6 }/ a$ p下载DOS版和windows版的迷宫游戏全部代码( G* t; t+ w3 [
用户名:migong
! ]) _1 J3 I& ^+ Q( q----------------------------------------------------------------------------------
5 Y( n" [, r/ e1 @, q/*
9 t2 D/ r0 ]" h+ O7 z# S9 E$ KMazePath Demo BY Turbo C 2.0
( y# R# g9 E8 L' Z: m) T; @/ T9 p7 ?Copyright(c) RoverUnion. All right reserved.9 F# w! \3 b5 @& i6 ?
Filename: Maze.c
* Q# q' R6 H# s9 n5 t) ^Author Dongchengyu.
0 n- y3 Z- @0 E& X* |Ver 1.10. @4 y* Y, x( ~8 ]
*/" F5 m; j$ }+ m2 X+ l0 r/ b
#include <stdio.h>
( L: }, t9 i% {- j! {% H; q#include <stdlib.h>" k# u2 u/ _, o
#include <malloc.h>
% Q4 V" z" ~" G- j" a" f, _#include <conio.h>
$ w n X; A5 X% S/ [#include <dos.h>
/ r! ~ v0 n& r$ |2 m( M7 U#define OK 19 v3 h5 A: [; y1 s
#define ERROR 0- C1 n9 k5 Z% T* u9 R2 z
#define TRUE 1+ k G, |" N- K9 Q3 q( V; M1 K6 r
#define FALSE 0+ U: k9 Z# N" a; @9 J4 o f
#define F9 0x43
+ O; W7 H7 \! I% s% R- v d7 n% \#define Esc 0x1b
: \6 o" {" O. X; I# y4 \#define Del 0x53
, N, E( f4 B/ W6 E4 r5 r/ g% q& z#define Home 0x47 V0 f3 d7 i& K* r
#define End 0x4f9 k' r$ P1 r5 a3 z
#define Space 0x20: u' w2 |! w5 |6 {9 H) t. V
#define Up 0x48
8 q; l/ B& q- n7 w8 c+ h& d& ?#define Down 0x50
& g# ^" G4 s/ O& P#define Left 0x4b
, W: L8 }" V2 z! g#define Right 0x4d
' M& n$ v- c/ Y+ @0 L& Z: _4 F' h$ Y#define Enter 0x0d
4 l4 i. K# J5 Z6 L) W/ C#define F2 0x3c
" w* Z5 _% L/ d) j9 n; i#define F3 0x3d
) `3 L; k5 h9 @, w' n#define STACK_INIT_SIZE 200
; e: D. H4 L$ D# O#define STACKINCREMENT 10$ {( `8 Z+ a9 |. w
typedef int Boolean;
n% m) x" ]+ z& S2 f; Otypedef int Status;% s Y& H! _" J$ M) @. L
typedef struct {* Q& f: d! O0 _0 O7 N
int x;
) O4 k) D5 M: d* ^2 {* O$ i+ h+ v$ Oint y;
8 ~8 R3 ~- X; h% A. l4 u} PosType;
3 A6 W* I; j3 r6 b$ [typedef struct {6 h8 N3 p1 o2 M1 s7 U3 G; q
int ord;; \. {- S3 L- p. |# ~& f# v
PosType seat;7 n, u. X* J6 f' @
int di;+ L; S, b# |" L( P
} SElemType;
7 `8 Q6 Y/ E! Y* k8 y5 z# otypedef struct {) z' F8 {" E- i% z- G2 z- b! t# j6 _; [
int td;
' H/ v; A, `3 k" q( aint foot;
4 n4 T' \# M/ Y+ w! zint mark;3 B% A2 v W1 q. S
} MazeType;
/ b1 [, x$ B5 n- _* xtypedef struct {$ F `/ I2 s/ j4 y4 j
SElemType *base;1 }( t& C4 {; l/ E& P
SElemType *top;2 ^, o) G+ j4 N$ H/ ~( m3 g" Y
int stacksize;
" N& x: N4 u* h z4 k9 {$ ^} Stack;& @+ o! j7 N% c z3 _- Y# q' B
int Maze[20][30];
" K2 N% W) N' J6 qMazeType maze[20][30];
- I6 Y! ^9 `! ]8 @3 O- V4 F# ^PosType StartPlace;
6 E0 i" N$ n+ e( \3 F1 {* W2 }( a# xPosType EndPlace;4 n: ?4 R$ I+ y- a
int count;
3 X0 F' `- B; I. \6 R+ Yint m,n;
0 w+ P! K0 U& Z, ?2 k8 r2 U6 i4 FBoolean b_start=FALSE,b_end=FALSE;
9 Z/ H# X$ I1 Q( u# Gvoid CreatMaze(void);
M6 P% F$ j) l J& y5 aStatus SaveMaze(char *filename);
" B8 M. k2 k4 v! }! dStatus LoadMaze(char *filename);0 H2 C: d8 H$ h; {& i( t9 S/ s j
void Error(char *message);( L, E4 p6 G! N
Status InitStack(Stack *s);
]$ W9 S o' t- [$ j( U/ w+ AStatus DestroyStack(Stack *s);/ r% z& o: m+ s& E1 N
Status ClearStack(Stack *s);0 R8 E0 Y' m5 f+ t+ n- f. c
Boolean StackEmpty(Stack *s);9 Z7 @- }# g! o- w& @! ~$ Y
int StackLength(Stack *s);$ z/ ]4 }; s/ b2 A$ o1 ?
Status Push(Stack *s,SElemType e);
# G5 I/ D5 y l2 kSElemType Pop(Stack *s,SElemType e);
2 ~/ f6 U( i" TStatus GetTop(Stack *s,SElemType *e);
6 d R* A1 U5 `Status StackTraverse(Stack *s,Status (* visit)(SElemType *se));
- T* i5 Z! H9 j0 ~Boolean Pass(PosType curpos);
% B0 F1 a9 M9 m: Lvoid MarkPrint(PosType seat);
5 I q+ z) U# n$ [+ t2 {# g; Y6 K! a ~void FootPrint(PosType curpos);
! m/ h& n1 e/ T( U6 R/ B7 ?PosType NextPos(PosType seat,int di);
P7 l1 S4 S* KStatus MazePath(PosType start,PosType end);
0 I# d+ g9 x# n7 |+ G# U5 ivoid CreatMaze(void): T8 E: W, m9 ]( a
/* Form the maze. */1 k) | \ s% {: q8 S" @; \
{% h! }# I9 l/ X$ C4 O% {% ^! y
void Error(char *message);
0 C) B: c* i" n9 b7 k) I# \$ gStatus SaveMaze(char *filename);
4 w% G" j9 z. M: k Q4 TStatus LoadMaze(char *filename);* k$ L, {) S6 \1 u
int i,j;
4 V" T/ `4 D6 U2 Eint x,y;4 A. M; b: ]/ h0 P9 A: e% Y
char c;
& H& H0 j Z! m8 i0 _) ]1 T7 D) r5 ichar savename[12],loadname[12];! b/ M, U( A ~. z! y ]
Boolean flag=FALSE,load=FALSE;
! ^5 B d2 s; I" q( W1 fclrscr();
8 a+ O E! w7 bprintf("Menu:\n\n");7 n s) I8 d8 y$ W5 J) K
printf("1.Load Mazefile
*.dd)\n\n");
3 x1 \- s( g$ z/ l5 u4 ^; uprintf("2.Input Maze:\n\n");
1 I( a" D; w4 D s. d% M% J" oprintf("Input your choice: ");
3 t5 Z) s3 W' J$ [9 Q. A7 ydo
* l/ i/ B w. c: r+ X{
: [0 J3 i) ~# Y& Y8 D Yc=getch();
2 X9 a H4 X% f# F. \0 hswitch(c)5 d9 w* R- L' p1 R
{! s! ?1 F+ s. q4 _- i
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;
- V/ H. @* A4 ~, q7 }/ lcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;& T4 Q+ ? Q. Y1 E3 m& M ^* I
case Esc: sleep(1); exit(1);: i, h2 {; |* t& c% c% V6 S
default: break; Q( l( n+ G l3 Z
}1 j1 w+ E, K0 C# Z7 O
}
B4 K$ ~) _' A, Dwhile(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;& M L5 I8 Q7 |" M9 D( I
if(c==''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''') |. k) Z9 ? v
{
- b0 L k' T1 _$ Nprintf("\n\nLoadName: ");
9 T7 \- r1 t. ` Uscanf("%s",loadname);
8 u! H* {" C) T' w" E( fif(LoadMaze(loadname))4 q( {: A1 h1 Z1 J: w
{5 D. k$ Y- E: b+ V, V6 o7 X% _4 _
sleep(1); load=TRUE;% A2 |. M5 D0 O4 o1 @/ _
}
4 j; Y$ h! i- |. t9 J Helse { gotoxy(1,9); printf("Load fail! "); }8 x$ X( u7 J0 }- c1 |4 Y2 m" b
}. c0 h" U( ~3 p; w0 \
if(!load)$ W0 V9 S% r8 K! Q: \; l' V5 q7 N5 f
{+ j7 H" s: N8 g: {. {
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");- V0 m6 k. r$ t2 E) @
printf("\nInput Length :\n");4 ?* { L! W+ [; p% V6 y7 \
scanf("%d",&m);0 n, i8 ]8 G# D: g% G& ^$ l& ?- s
printf("\nInput Width :\n");; A; o- |, [! ~: Y$ |! A
scanf("%d",&n);* m3 F+ @' a; \& u/ W5 z1 v. |
if(m<4||n<4) Error("Input");4 u# H+ }2 k j4 ~" \/ ^
if(m>30||n>20) Error("Maze too large");
- K F) `6 ?- ^4 `" E9 l' Y: Lfor(i=0;i<30;i++)' N6 w( O; Q' J( V
for(j=0;j<20;j++)+ h+ z& E2 E9 j5 w! F% H
Maze[j]=2;
7 f; R# Q) l# h' C" x2 [- X2 A4 JStartPlace.x=0;. P. v8 l+ L, c- ~3 t! V! Q* e8 w
StartPlace.y=0;
+ L8 e1 ]- s ]4 rEndPlace.x=0;
6 d. O' ^8 X1 ^3 K# ~EndPlace.y=0;
% T" X. T& a/ S4 o! |, B" @clrscr();
$ p- C# ?4 t9 ]5 g; G5 p$ [printf("\n");- c" q2 v: t4 `- h; p
for(i=1;i<=n;i++)& [0 L* H0 k: t" B0 L
{
6 ^; x! d! _! vfor(j=1;j<=m;j++)
1 i' s+ h4 q" }) B# l8 R: K{2 ?, c; A4 b3 G8 J
printf(" #");+ U; ~- X" I0 o
Maze[i-1][j-1]=0;
" m# |) W- Y$ `" ]4 D}
9 X S/ M/ F4 ^2 n/ r! L2 Hprintf("\n");
9 M7 d2 g/ T- |}
& i! V5 X- {2 n! ?0 ^9 h& O }}
) c: |7 P8 V' v- G- I& ~ w5 qgotoxy(65,5);
5 I. P* Z2 x2 Kprintf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");0 ^ W/ f: f. {4 Q7 t0 ~: ?3 k
gotoxy(65,7);6 y& p# X7 Y, _; k, U1 ?& v: I
printf("Start:Home");
' k$ |. S' o8 Mgotoxy(65,9);; ^! U2 { O4 d7 J. \9 a, C: E
printf("End:End");5 ?$ n, E8 G$ P( l
gotoxy(65,11);
; M! o8 ?' }/ q+ t4 Bprintf("Delete Wall
el");
* M+ h4 M7 S" ^: e& o0 h( Igotoxy(65,13);
5 b9 R9 J1 _, I) U' }: \. Gprintf("Enter Wall:Enter");% |7 u8 j& F5 ?- @8 v& i3 p
gotoxy(65,15);: c" I) A$ w+ p n1 I. Y7 h2 j
printf("Save Maze:F2");
3 w1 c' @, N4 o) t' Y" D5 ^( T& wgotoxy(65,17);
P2 t# N7 h, O- n0 q! B Uprintf("Complete:F9");
$ T. v, q( G/ E+ X' [0 y8 _" ogotoxy(65,19); W8 G6 ?+ T1 W: T' K5 A
printf("Exit:Esc");
- x0 [, e- r! O$ K4 y8 R" wgotoxy(4,3);$ e% Q5 _1 X# f/ J# {5 V
x=4;y=3;
4 f) L2 k9 B7 Z) V5 X1 K, Hdo& d1 X; b6 K L" R( L
{' H1 h$ I2 C8 Z, y2 x
c=getch();
* Q* E% W7 ` bswitch(c)5 w- z( ^/ m0 v! t
{5 z% \7 i' }; m: i0 E7 `8 \
case Up: if(y>3) { y--; gotoxy(x,y); }# @. ~" C; w: P6 X! ]
break;; k7 M6 B/ s r( V% R! R
case Down: if(y<n) { y++; gotoxy(x,y); }
+ z h2 e' d- I& e5 H" p p! sbreak;* T0 p3 o4 x. b: Z! |
case Left: if(x>4) { x-=2; gotoxy(x,y); }
( o: p4 J+ K) n- H& u: Wbreak;8 ?* v: T) i5 p- R+ F/ H
case Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }
% n& N4 C/ C/ n" B4 J) ybreak;
- h: X v. [/ X7 N/ Ucase Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE;
) u0 \2 Y/ V) z, @' f& t- wif(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;
4 }2 j, P, Q( Q ]/ P# {putch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);7 y0 }/ D5 J# }8 [& I
break;. V5 C& D* p0 j+ P8 E6 [0 ~2 @
case Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;& S+ T! @: u" S2 z/ d" Y! d" S
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;0 B! M0 y5 g9 y, C6 M# _/ ?$ k8 M
putch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);! w* T7 K7 r8 T/ q& Y9 R
break; r; _5 a+ ^+ s
case Home: if(Maze[y-2][x/2-1]&&!b_start)
+ ~5 R" q0 r# A4 _{2 U) C- {# f( T" ]3 r2 s
StartPlace.x=x/2-1;
! o: w9 ]7 H! W. FStartPlace.y=y-2;
+ V0 H1 Q3 C! T4 Xputch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');, \. g9 l: I6 _" H& S
gotoxy(x,y);
, h7 D3 C! G, i7 Mb_start=TRUE;
& M) w; q* d: F2 k& i1 ]}
1 j8 u8 L1 }) Wbreak;
$ E ]3 F1 G& l7 Wcase End: if(Maze[y-2][x/2-1]&&!b_end)
. _% M+ y2 E$ v9 V- }1 `2 W{. h. D& o& m9 }
EndPlace.x=x/2-1;1 l5 T A9 Q# ?5 [. d
EndPlace.y=y-2;# ~7 U/ H' d% M# ?8 H+ z$ ^
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');4 S- {2 i: g c) x& \
gotoxy(x,y);
2 \0 `- w! S: e. Y' Vb_end=TRUE;
9 X- x$ D; J9 q, c}
/ V* N, n- |! K) ^0 I; Jbreak;0 u% U& Y" h$ r( V
case Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);
& O& A/ P H! H# c, y9 p2 Kcase F9: if(b_start&&b_end) flag=TRUE; break;
3 q5 c( n$ m# ]; r& P3 \( qcase F2: gotoxy(2,22);
: w. Y5 y, v' l+ d- Wprintf("Savename:");3 J* r/ |& m' ~) a+ B6 _3 O
scanf("%s",savename);2 H5 ]; h) i4 Z c# \/ f
gotoxy(2,22);
* F% o! B, ~" \) R+ W7 }if(SaveMaze(savename)) printf("Save OK! ");1 N9 [0 {* ?; E5 ?+ C
else printf("Save fail! ");4 ]4 X( L& W0 s* e2 i3 |5 c
sleep(1);/ ~# u! \0 a5 |2 O1 N% a
gotoxy(2,22);
+ w7 N- K6 U# {; p0 \printf(" "); r2 a, O" b) y+ u! h: x* F8 A
gotoxy(x,y);
2 ?, U: g9 S8 v* F0 C3 P- [% v: tbreak;. V4 {6 m* L2 x( E, a- A0 `; q
default: break;
1 i' _6 m I7 N* P* ^* j# v}# O. F& a' }4 G) ?0 C, O3 e
}0 D( R& W8 I1 u# M1 `
while(!flag);
. S) V- H3 O( @for(i=0;i<30;i++)
! N5 d% K6 s* K: l" Y! Sfor(j=0;j<20;j++): ^' N1 r! h( U3 U
{
4 S, w* l. ]* K4 Dmaze[j].td=Maze[j];
1 V: D( @1 J' f r3 f! Vmaze[j].mark=0;
3 h3 z8 S& s# ?& a1 h! W' y! qmaze[j].foot=0;- F; U6 I% G. g5 ?7 `
}
+ f7 T n' F" \7 X* s0 s}
8 x4 j4 A$ B8 k: hStatus LoadMaze(char *file)' R7 w3 v ~& X
/* The maze has been loaded. */& U5 Y7 T' y" {; o
{' b' Y ~: ]/ H% E
FILE *fp;: M7 [ ]2 R6 x
char *buffer;5 X& m2 `0 j/ a' K3 w# T! [: R
char ch;! s4 u" e; i5 t) }1 f
int i=0,j,k;
3 g. P& k4 |3 B9 JBoolean len=FALSE,wid=FALSE;
/ x. c3 i% s9 Z9 S5 ?if((fp=fopen(file,"r"))==NULL)
( L% x; E! K1 l; K, r# [return ERROR;
7 s" a& D/ c3 K8 qbuffer=(char *)malloc(600*sizeof(char));
/ D" |4 g' C+ ~3 t& O* W" e0 k& Tch=fgetc(fp);
! a, K+ j& O4 V9 Swhile(ch!=EOF)
$ D* L! K: |1 m R# G{! e! S9 u# t6 ?+ \7 S* C8 A+ @
buffer=ch; \5 F6 A( W u" V- K6 a
i++;7 h" Z' }1 K' F/ w
ch=fgetc(fp);7 R1 _4 H3 s& B8 I7 V
}
5 ~2 K8 x4 I1 d5 ^/ z" b) Bm=30;n=20;+ k2 \" a0 s8 a! P8 J9 W, b; P
for(i=0;i<600;i++)
' Y$ _( }5 L2 N; Q. S" P" W ?& z0 x{
5 M& Z- c3 E- b) o8 A) F. g5 Oj=i/30; k=i%30;
) R3 s3 P" N7 E+ {if(buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }
& {- s$ m4 W" A; Eif(k==0&&buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }
7 H7 j6 ^9 O8 p6 s1 {. Sswitch(buffer). f2 @* B. i! U; x
{
3 t4 X' ] q* U$ @# P; S0 f: Y: y" `case ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;0 Q I; o; S) ^; w% D- V1 w$ L+ h
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;
, B4 j; S4 o4 I; t9 dcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;
6 c0 J# t. H" e) Ycase ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;
0 B+ J, X" Z$ n! T7 ?StartPlace.x=k;
4 M" p+ W8 b" u% LStartPlace.y=j;
3 Z7 R& c& B( m/ A( r0 Nb_start=TRUE;
7 p! v; w1 t8 D# Q7 Ubreak;6 I- h# R" ~! q, e2 p( J5 w
case ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;
+ }; f$ y5 G( D" w+ D$ [# ?6 yEndPlace.x=k;% R: E9 b7 a* t6 D
EndPlace.y=j;
/ ]4 x" H. n6 l0 }0 Pb_end=TRUE;- H7 l3 K }9 e m% X
break;& D G: F9 V( K1 [# J- ?
default : break;
" m4 q i3 s7 V}
8 H, Z% J7 t$ r( T7 c}" U( T! A0 ?. a* S( j/ j
fclose(fp);
' m8 \% B1 `- G2 ]4 f( j- [clrscr();6 V) B$ |- l% q; [0 k
for(i=0;i<30;i++)5 [7 y& s6 }; \' L
for(j=0;j<20;j++)
) Y; S1 P4 s; m. e$ q# t{
7 }, I; B) E2 X& R" ?9 Wmaze[j].td=Maze[j];
3 B5 N* `- Y- ?/ O% O i8 Bmaze[j].foot=0;: K* T% D6 Q' `& i1 c
maze[j].mark=0;; h; m0 J4 v4 E5 Z- U# B' E
if(Maze[j]==0), x/ P8 u8 a1 k' u1 I
{
`3 F5 e/ P: Jgotoxy(2*i+2,j+2);% X3 r8 l) v/ K
putch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');
' [4 V; T" B8 |, [}
7 c# p8 N& Z \0 _+ y}
' w* m j+ G" Tgotoxy(2*StartPlace.x+2,StartPlace.y+2);% g$ d( m# i# E: d3 Z) K1 u: F
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
" X% D5 i2 i0 Y4 ]8 b8 j+ ngotoxy(2*EndPlace.x+2,EndPlace.y+2);+ x f" `3 E: N# m* m2 z
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');4 Y1 \2 ? _) Z' c& \/ m
return OK;, B8 a9 x: B- w/ D
}
. `' n6 i% p# @( sStatus SaveMaze(char *filename)
$ e+ V+ t" ?) ]* ]: v8 ]! Y' |0 R1 E/* The maze has been saved. */4 T- \* b4 w N7 W7 K* D3 P; ~7 U
{; v8 y. v1 n; G! J1 g
FILE *fp;
) ]! J! t; @1 jchar *buffer;
6 E/ S6 C" Y5 {& E" C" v' Gint i,j,k;
0 G+ @8 ~, X# p% `fp=fopen(filename,"wb");
; V' x* W2 s+ t R4 x4 h# \buffer=(char *)malloc(600*sizeof(char));3 Q! j5 |8 B: s n7 l8 G5 r6 z
for(i=0;i<600;i++)
2 A. l1 f) {% R/ U% T! J{
+ T: o% p3 X3 r1 ^# B- Wj=i/30; k=i%30;
) m% [/ G; v, A5 |$ R; o& S: Iswitch(Maze[j][k])7 j' N' C- K2 u' o' e
{! B2 o0 w- }% `7 N
case 0: buffer=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break;+ l! c& `* d) _" H; @
case 1: buffer=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;( |! S1 @" S% E% i6 m: W2 h# V
case 2: buffer=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;1 t p* Q. Q3 ?2 Y# Y5 B$ i
default : Error("Write"); break;
9 v: N" Z" `! x" ~' ^# t/ r}
. g7 t( ^5 s, ^) v8 w$ @& Oif(k==StartPlace.x&&j==StartPlace.y) buffer=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';3 o9 S5 G T" h8 c
if(k==EndPlace.x&&j==EndPlace.y) buffer=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';3 ?8 t" E+ n6 X1 W
}+ T6 Z t( }! F
fwrite(buffer,600,1,fp);; z* n/ v, u. Y' i
free(buffer);
, f c) O4 b+ m# e5 Cfclose(fp);' c9 U! s% w2 |# h
return OK;
@/ `- s2 f! @; C/ Z/ ~}8 `( }4 u- F+ F- E. F' R
void Error(char *message)
* F7 q! _- v& B1 G; u! h{
5 E$ ~: b9 c, Dclrscr();) C5 J+ ]* L' x0 \
fprintf(stderr,"Error:%s\n",message);5 k& V( U- L, R5 S8 A3 h
exit(1);$ |: ^7 H) M" i6 a- ^) L
} /* Error */
" m7 z, U- b; j
$ Z. f. _" g/ w( d' R. i: N- L' FStatus InitStack(Stack *s)' D z+ H' W: Q, f
/* The stack s has been created and is initialized to be empty. */
2 r7 X6 V' f8 B, R{- f4 A) M7 V* T- e0 J
s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
) w! l8 M, V' b$ c6 E& o+ nif(!s->base) Error("Overflow");7 Y6 n% u; T8 k8 z( t
s->top=s->base;5 E6 m1 u$ j0 e3 `7 y/ V7 K
s->stacksize=STACK_INIT_SIZE;
V4 j9 ~: E \( i( V7 creturn OK;3 v% |1 p1 b/ \
} /* InitStack */
8 V1 c1 B$ T% G- A" z8 FStatus DestroyStack(Stack *s)
" I9 X* o9 O$ D9 L( f, W2 z/* The stack s has been destroyed. */
1 D% s( n8 \1 Z2 g{
( y* m2 \: h. P+ Y, ms->top=NULL;
' J# L8 q- V2 _4 N) c( Zs->stacksize=0;
: |% u$ g1 v6 \3 \free(s->base);
% }! O% u, w- J4 Ns->base=NULL;
0 w; U# y, q/ X/ @- H3 y6 dreturn OK;4 \4 Y Q3 c/ A6 C) k. V; n
} /* DestroyStack */
2 u& h5 k2 g! O' g+ rStatus ClearStack(Stack *s)
: X- M* `* b0 Y% O; v) \/ k/* The stack has been clear to be maximum. */+ i) Z: V0 L$ c6 f+ [( d
{
# Z! [2 Q/ C: a! E- Es->top=s->base;
% f, d/ }; d3 u* M4 cs->stacksize=STACK_INIT_SIZE;
. H1 R7 S# S4 I5 a, C4 Z$ rreturn OK;
8 m8 }5 D& J) D' X$ v' s$ C }} /* ClearStack */% l. T7 l/ ~: E2 j4 J" C# i+ n
Boolean StackEmpty(Stack *s)
) `& m" p6 x( m/* Check if the stack s is empty. */$ e. f. S6 ] W
{. A+ A6 ~3 }6 J: p
if(s->top==s->base) return TRUE;
m6 h7 h3 x- M5 |else return FALSE;' r7 g' P/ S8 [3 r6 p# ^/ v
} /* StackEmpty */# ~6 f a N) p' b, f! ]
int StackLength(Stack *s)4 o5 b( P1 k4 W0 l K
/* Gain the length of the stack s. */
7 z& L$ l) l0 [2 [6 }{
; v/ d, }+ s0 X# r# G/ y2 |8 mif(s->top>s->base) return (int)(s->top-s->base);4 @( l) Z' C- q- d, k/ b
else return 0;
. Q; c* ~" W; q} /* StackLength */! W+ o6 |/ s8 ]2 n
Status Push(Stack *s,SElemType e)
; a6 ^# L. M1 `/* The element e has been pushed into the stack s. */
5 R( ]) x6 D* f! K! o5 @9 E{
# } O) D) F+ j7 D! W: Z# }7 Z9 e' oif(s->top-s->base>=s->stacksize)
, N( f6 a2 A) u( M+ o, Z+ m{
2 R9 E+ z. `5 Y" Y$ k& Q1 Us->base=(SElemType *)realloc(s->base," o, c- K: K3 f4 m; C N* T
(s->stacksize+STACKINCREMENT)*sizeof(SElemType));
. Q: B2 R/ N: Y3 a) F0 nif(!s->base) Error("Overflow");0 S& m1 A" O' C) Y
s->top=s->base+s->stacksize;
( n0 s; }3 H/ X7 _s->stacksize+=STACKINCREMENT;$ m+ e4 r7 ], I5 ^% K
}
$ P4 R. j3 Q) K6 r*s->top++=e;; L# f I k; h: R
return OK;
* K# S( P7 b7 t% @7 U& X7 P* L) @} /* Push */ a+ g9 e4 \$ i1 k) J; t8 P8 x
SElemType Pop(Stack *s,SElemType e)0 ?5 b& Z3 O$ y9 p: H" B
/* The element e has been removed from the stack s. */* ?3 x$ I% c+ B
{
8 s7 A8 R' A/ \+ _# ~if(s->top==s->base) Error("
op"); h9 X: O* }5 k" q8 Y& Z* A
e=*--s->top;% O: F$ q6 H. v; u
return e;2 ]& p0 _8 a. j* V
} /* Pop */
( G; }) m% Z+ X, l& HStatus GetTop(Stack *s,SElemType *e)
/ T K8 m) m, d8 K+ ~/* The element e has got to the top of the stack s.*/* d) G3 m% p# @" |
{0 Z+ O! ^. Y, a7 F+ W# e1 i
if(s->top==s->base) Error("GetTop");
) o; v! }6 ]2 v5 Z- Z*e=*(s->top-1);
2 n+ Q1 M6 r+ V/ @1 e V4 I* v dreturn OK;
8 ]# v& _* b1 Z& u" @2 z} /* GetTop */
( k7 p5 r2 h" }3 `) | P' `4 \8 _/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */8 F+ a+ [& C. {0 s8 O- v6 s
/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))9 a! r9 Y1 W) `6 p/ f4 U9 ~1 @
{
- F/ ?% T: O1 j5 E2 c$ B$ B' eSElemType p;/ A. n0 @8 u( A4 Y P- A
int result;+ I/ ?1 a* V7 ]" t* w7 A3 m
if(s->top==s->base) return ERROR;. p V9 K6 e" z W" j
p=s->base;% E. w/ ?9 ^: P/ N
while(!(p==s->top))' L) m% X# t/ y# L4 ]( m
{2 L- I$ e) Q" B2 ~
result=(*visit)(p);: e; H; J6 z2 C3 P9 ^0 @4 C) J
p++;9 v' W! l; z' c) q* t
}
; O0 n+ @/ S( X8 sreturn OK;+ P) k6 L& }/ Z3 H! e
} */
0 }) X4 x9 `; SBoolean Pass(PosType curpos)/ k0 r2 T0 ? M7 i6 G
/* Check if the current position can be passed. */
& {1 G. r& o) Y) J{
1 g) Z+ G" w! y$ E3 qif(maze[curpos.x][curpos.y].td==1&&
$ s9 y* c9 t% Q+ _) A3 Dmaze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)% z/ X2 @. {8 A- N2 Y
return TRUE;
# M/ S4 s' \& H+ Jelse return FALSE;
$ w5 i. W4 Z& @2 z$ z% z} /* Pass */3 m1 h) Z6 a8 A" P
void MarkPrint(PosType seat)
: {# D, x, Q4 Z v/* Mark the position seat. */
& P- j' D4 {. k2 @( i$ d{$ K: b1 U" t2 L0 D; E* G$ F9 p9 F
maze[seat.x][seat.y].mark=-1;$ [* V; H# n. e6 ? ]0 [5 m3 P- p
/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */
# X' i' w+ j! y" u( ?} /* MarkPrint */
* {/ ~, t/ I( N% ?void FootPrint(PosType curpos)
/ n3 S$ [% [: r) X9 z/ f/ Z# h) G/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */
6 y( V3 T$ m/ ?7 R{/ ^2 X; j% S( |* t* E/ G
maze[curpos.x][curpos.y].foot=1;. j: _9 o% ?& P, q$ z' C- ~6 ?( l
} /* FootPrint */
2 c7 m7 X; K% {PosType NextPos(PosType seat,int di), W% c% y/ A; n! A; F2 e
{; U6 D* `( M+ B7 a6 i+ B/ k! C+ `
switch(di)
, S& F# v- H$ E{5 P! z1 e4 ~+ g! P# r
case 1: seat.y++; return seat; /* Eastward *// b; a3 ^9 k2 h7 c5 ?, N' W
case 2: seat.x++; return seat; /* Southward */ j5 @$ m* n' Z5 A: l; n1 }4 f
case 3: seat.y--; return seat; /* Westward */
0 c8 L2 d$ A( T/ s" E' kcase 4: seat.x--; return seat; /* Northward */! J5 y) @; Q- a! ~
default: seat.x=0; seat.y=0; return seat;2 Y# {7 J8 v; _! q
}9 h( j: p0 f9 ?1 X8 ?
} /* NextPos */! K8 ^$ o- c1 i7 D' L8 B: R
3 Z5 X" N5 _$ i, M. k) }. e
/* The key to the program. */1 s% m& k: J9 ^0 d4 f: x/ V3 D
/* Pre: The maze array & the startplace & the endplace.% h8 p& r* |6 z1 [+ x7 U* k% @6 D
Post: Find the one traverse of the maze and perform the mazepath.; h) e( K" q' J6 o* y
Uses: The ADT stack class.4 I p' F1 P2 C: }( E: o- y- }2 p
*/
$ x. A, v8 w; l: F/ N# i' i, WStatus MazePath(PosType start,PosType end), a' y- N+ T8 C, J6 Z
{
! L& C J& N8 ^' }3 j6 yPosType curpos;' P- K5 ]3 n& J+ D) z) e" b
int curstep;
, m' ]1 k. c) g1 W! [SElemType e;
3 w: A! |+ {( M' KStack *s,stack;
, x) e$ O; z# c: ~ jstack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); }2 G! ]8 |. I1 a* ?* ~: p& ~
if(!stack.base) Error("Overflow");3 `! j# u. E7 m) `: |% a0 J
stack.top=stack.base;0 ~% o( y D5 f& I! c. U
stack.stacksize=STACK_INIT_SIZE;
( V- X& s+ ~- _5 i0 k$ `' ~s=&stack;, t, M2 l" b3 s+ m$ i- f
curpos=start;) o% F$ J& N9 | K
curstep=1;& d5 W3 |4 m$ A. H( x) y
do
, p4 C* S- g" [) t6 x{
; H; a4 w+ `& O1 Gif(Pass(curpos))
7 R0 @) r+ v3 O8 I! q4 P" m8 e{
! E6 t9 x. d ?; Z. Z6 UFootPrint(curpos);1 k, P G' E7 z3 F9 N. C* C
e.ord=curstep; e.seat=curpos; e.di=1;
/ v7 ~; c0 n' Z$ f# Tgotoxy((curpos.y+1)*2,curpos.x+2);3 ~, M5 m+ L9 f: E0 w: O
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');8 E" J( X I# ^3 _) x8 _6 X
delay(8000); /* pospone time. */
/ A! R9 w1 W, w& X7 APush(s,e);
2 x6 M$ {. P& e( m$ W* Aif(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */; j2 J1 Q- s1 O8 d: v3 e
{
+ M6 C' A* K# s8 b0 ZDestroyStack(s);) N( f* F/ ^! S0 c
return TRUE;
! ^$ X9 _8 t5 T- j) a. K5 o}& }# g* s2 E3 {% c/ o
curpos=NextPos(curpos,1); /* Try next position. */& y4 W8 t1 f0 B: [! F2 ]: l
curstep++;
3 f V2 C/ n' [}
$ }3 C( b. V P/ Pelse
) S4 i+ r1 n" [3 W/ n( q1 R8 T{# [& V. a. Y6 B2 d; C
if(!StackEmpty(s))
, g6 M3 @4 P2 W+ C% z{
7 X+ f" b7 r* M' B! Ge=Pop(s,e); /* Removed e from s. */
6 ~( t$ A g0 s1 G0 d$ Qwhile(e.di==4&&!StackEmpty(s)) /* Four directions have been checked- R( E- e% r: b. p; n# H
and s is not empty. */
4 E# L- @6 R: K4 N$ W{
) p- G: h! k4 d# g. c5 J( KMarkPrint(e.seat);! v' O V( K7 a
gotoxy((e.seat.y+1)*2,e.seat.x+2);
5 H$ E, K) K, C6 qputch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
, U' e- |0 O. D, d8 \, o3 ?1 G8 ndelay(8000); /* Pospone time. */
, g' |/ E5 q9 p7 }; o$ \gotoxy((e.seat.y+1)*2,e.seat.x+2);
1 Y3 v, Y" Y$ K1 z, `putch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');/ B" q- S% ?; V- L/ J) q% N
e=Pop(s,e); /* Remove e from s. */3 c A# W5 h/ l+ n
curstep--;6 @0 ]5 a, ?! n9 z6 @
}3 n9 o1 b3 r" x! q$ s# y" q/ X
if(e.di<4) /* The current position hasnot been checked. */
/ t* R, } l2 D2 B- g{
5 K/ f, W) _% Q# Te.di++;. J$ e4 P; `, Z+ l) _4 {
Push(s,e); /* Insert e into s. */
0 k- ]; U" P: wcurpos=NextPos(e.seat,e.di); /* Try next position. */
" g# q( A! h m5 t. }}
5 y9 X' Z3 d. ?/ R1 l8 @' B) g5 T}! w; d2 r; f C# M1 p& P- b" v- m
}4 r$ p1 r) \ ~% c4 K" ?! l
}
, B5 g Q1 n' t% M1 c% Z7 cwhile(!StackEmpty(s));
* k- o% s- @ y" I. BDestroyStack(s);
4 B) m; _6 t4 D4 s9 Wreturn FALSE;
+ C6 }* |- I( g: q/ f} /* MazePath */- J7 T+ o3 C5 h7 `: f' X
void main()
0 j; V: l8 G* s/ v2 D' {, G- Q{
$ H q: W( Z$ h8 yPosType start,end;
|4 x* h% V. c2 u5 y' M* u/ H; [CreatMaze();
! q/ a! X F$ O# p. i% Fstart.x=StartPlace.y;
/ C2 Z$ A. _5 e( g$ }! Wstart.y=StartPlace.x;3 v2 I% f: x% N! M. U3 ^! l M
end.x=EndPlace.y;$ e5 {/ e+ s0 S8 c
end.y=EndPlace.x;8 f$ |1 u p9 p4 p
if(MazePath(start,end))* @( z1 j$ S5 F9 g5 w) B
{
( U& r, a* ~3 @- p* v3 ^3 T2 fgotoxy(2,22);
& I( ` T1 E7 ~8 N9 a; I8 Yprintf("
ath found\n");
" e/ \, y1 ?$ `! ^# D5 [8 c}+ J4 ^; F! E5 |9 m! P
else, W% A! q$ s5 Y- U$ S) _' h% @ e1 d
{
0 f7 F0 x' I0 o% h1 Ogotoxy(2,22);* g) s8 S+ O" G: i
printf("
ath not found\n");
: m6 A8 C( R% g; z: u) e}$ h0 X9 f1 W" [2 A& _+ r5 ?
getch();
$ j8 D& V9 x7 d: M+ L: kclrscr();' F. P3 E3 X7 S; z% l+ p
} </P></DIV>
作者: 韩冰 时间: 2004-10-4 02:36
<
><b><FONT color=#000000>.:.:上海黑暗之龙--麻将原代码:.:.</FONT></b></P><DIV 626px; HEIGHT: 132px" align=left><
align=left>部分图片未上传' ^$ i$ u# W# v2 e* u f; m
/*天宇软件1 E5 K# Z& L. K- F
作者:上海黑暗之龙8 W& o1 q) ?3 n7 d8 j" g
2002/10/30
6 o, ]6 k6 M0 o( t9 L; F/ K麻将原代码*/! S! B, ~! M7 }9 f$ ?
#include "dos.h"
/ U; }& K6 k6 ?9 J0 x$ Y#include "stdio.h"
# a$ R6 f& i: @& @#include "graphics.h"
0 y! `2 M! U' a#include "bios.h"
. \0 F4 f" _8 Q9 I! S K' y1 }* Y#include "conio.h"( B& e# ]! C5 g7 l5 X G. N
#include "stdlib.h"( `. { n4 T* v5 w
unsigned char far *video_buffer=(char far *)0xA0000000L;
! [# D8 @& g' s/ Q) t6 V% ]' v#define VGA256 0x13 /*图形模式13h*/' o6 o+ c* k. ?: u
#define TEXT_MODE 0x03 /*普通文本模式*/
% B* l; K: b. H% y#define SETVGA Set_Video_Mode(VGA256)* ~4 u5 N$ d; y: V4 `9 q+ }
#define OUTVGA Set_Video_Mode(TEXT_MODE)
/ R. ]3 _- l& ?; I#define BYTE unsigned char+ p8 \' L! \8 ?. }7 o# v5 Y
#define WORD unsigned int
6 C. M6 B( m8 R& O. F#define DWORD unsigned int
& f$ ], i; E& }7 v#define ESC 283; T8 @+ u6 o$ Z4 s
#define LEFT 19200
2 P$ T& G2 F: m- e7 Z6 W#define RIGHT 19712
$ _4 R$ `; t; `0 f7 l5 ?# {#define H 9064& T% i' F; C* Q P' X; S
#define ENTER 7181: Y! [0 M! C% u( _, C* P" V" ?
unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;
" T8 H6 W9 D9 a5 wint key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;
6 e" z+ z! Z, E9 rstruct chi
+ r9 P% \- g3 k0 {4 L{
- Z% |+ g# n7 y& V# D8 Oint lg;$ [" i3 H J; c4 `9 c p/ h* m5 n% S
int lgg;
, b* E# h" Y+ |% u: m* `}ch[13];( Z t7 B; U9 b) {0 w7 t0 @
struct mj
) a7 y" ?" Z. Y" S$ I{ char *name; /*名字*/) _$ {4 q( c0 A& ]2 b' o9 N: w
int data1; /*是否已出,无用了*/
; B9 J$ z' z$ H( g: o% lint data2; /*是否在手中,1为自己,2为对方*/
) K2 C' M# E I, [+ ~1 s l) [) Kint number; /*同一个花色的第几张,共4张*/
6 E+ [4 v$ f* z1 x/ @; R7 N; p$ \}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,
4 s7 P( o7 N! `( n4 u2 i4 N"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,2 X2 `6 X0 x- o4 V
"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,8 Z8 M! }; @* A2 e( d) ]0 U [ `
"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,
/ X2 v2 v b6 b# A"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,
# f9 |$ l: Z5 E) f"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,6 P! @/ k9 Q# A9 i5 f/ ~$ V
"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,: C/ I: I2 l! e
"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,
$ p: {6 P* I8 Y9 N& s$ D6 Q"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," A; V1 X% U8 f; L2 N9 ~0 x
"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,
9 h1 \! k' |/ _) S1 L: o"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,3 Y( T# t+ H4 p# n% C! u/ n" t: Z
"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,! t+ `) q' f6 r4 M
"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,
D. o/ k+ @. I' {"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,
5 T$ W. A9 P. ]6 i/ }% e"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,, K' Z( d. n6 w' \9 L. {4 p3 l3 j
"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,$ s7 b0 B! }" B8 x& p3 E4 ]
"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, ^! L# N! N0 V7 J# F
"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,) Q- z- @" @7 _" c" p. J) s
"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,
- o2 _4 G1 E- g$ N6 @$ D' b"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," W5 c) y: g. v! T
"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,
' }0 i) |7 r; n) A( P& R' C7 m- Q"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,
, N/ w" O& D, }% H: G* j"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,
8 I# {, {7 H+ I3 C; @"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,% D+ ^0 B# Z" i/ o8 y2 x, X+ k6 r: g
"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,9 Y [& U" G' F9 f
"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,
& ?; i+ A4 h x: ^3 Z" _: n2 F# `"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,. w2 A/ |, F) w! A1 w8 p2 h3 N
"34.bmp"};
4 O% y! Y' R3 jstruct every! N% K9 s- ?, [5 L; n
{ int *k; /*名字*/4 D9 c8 n8 V6 S: o& x" L" Y
int oneorfour; /*同一张牌的第几张*/5 z% [6 `/ s+ ]. V
int number; /*第几张牌136*/2 s% ]4 K! L% ?% `; Y
int p;# g: h, n5 H4 v8 f- z3 j5 }" K
int g;
' J7 b% L9 v' n9 L6 `- N2 k3 V* eint c;
, |- V1 Y. m' `& uint d[2];
; S0 V. @$ x& q; n% G};
. j% j3 `) U. ^# tstruct me: ]1 t& n( R) }/ @
{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/
3 s+ Y/ e4 Z0 {2 i. _" r; \" `5 Nint p; /*乓对方*/) [4 Q. l( {* {5 a. H
int c; /*吃对方*/
1 y; W( t7 K. }9 J. x7 `/ ~' H" Bint g; /*杠*/) g1 _4 h8 K: L- m2 ^2 q! Z! t% `# i
+ Q& X t: ^6 kstruct every pp[14]; /*存放手上的牌*/
. K; X( _+ G3 q5 |}me;! D8 \5 E0 Z0 b2 t" l
struct computer
" ^/ X3 X4 B$ t1 ^4 i- O( p{ int m;
1 |; o! m- x+ o. W' n1 jint p;8 ]$ s1 P, t. O! R9 B& ]
int c;
: f# _6 a1 m3 A+ |1 ~4 u9 Y) yint g;( K* Z3 g! V+ P) r
struct every pp[14];
: |) H1 d9 S4 S f9 s8 U! U$ i}computer,comp;
z$ h8 d5 l/ R: D. U# G: x% X. v. m9 h
/* 设置调色板 */
\" N" q, @5 Y9 y: i$ zvoid Set_Palette(int Color,BYTE r,BYTE g,BYTE b)
7 B# z! H- J8 z& K+ M{
0 K* b+ j" h2 g! woutportb(0x3c8,Color); /*0x3c8写端口 写色号*/
8 k L, G$ a3 Z/ a1 A: q# K0 Routportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/8 v* ^7 b7 B/ }+ p, |2 O! r% s; s
outportb(0x3c9,g);
0 p) n- g/ O8 C- w. xoutportb(0x3c9,b);
! r. \1 o" n% H& r' @}
1 C e( I4 H" `( M9 g9 B" G# L' L/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*/
5 u% n& D: f i+ x/* 设置显示模式的函数 */
8 H p: v2 V. I( hvoid Set_Video_Mode(int mode)/ v1 l1 F3 \5 F! c7 ~+ z
{; T9 x4 S3 s8 S+ h
union REGS inregs,outregs; /*定义输入和返回寄存器*/% g* A7 ~7 [- y
inregs.h.ah=0; /*ah存放功能号0h表示进入视频模式*/2 w, ^1 j, [6 Y
inregs.h.al=(unsigned char)mode; /*al存放要设定的视频模式*/
" ?+ W- g. {/ B- ?int86(0x10,&inregs,&outregs); /*通过10h中断设定显示模式int86()包含在dos.h*/
* {( _8 q9 b1 z# [2 D, h" |}4 H! Q* n+ q6 R
void v_line(int y0,int y1,int x,unsigned int color), P4 M& R) P. ?0 T( x4 e! M
{ unsigned int address,n,temp;
! O! C0 k0 `: W( w; G) x/ s9 |7 Dif(y0>y1)) S( @# n" z! h
{
3 w) o% r8 Q W1 t; h* Etemp=y1;
7 @0 o4 {: u4 K4 J, G0 ]y1=y0;
1 O5 P! q. k: `! uy0=temp;
0 j) @! B8 ]2 t1 e# a9 z$ W}
( O6 U( V) j: @+ y; Raddress=320*y0+x;1 y; G: o2 ]! |- C8 v$ C
for(n=0;n<=y1-y0;n++)7 N' W9 s) m; }3 I
{
% y/ g) G/ ?3 }& k) y& Q( N" \video_buffer[address]=color;0 {" p) \# ^/ V+ ]$ L- M; {
address+=320;+ D/ k A- Z/ l3 e1 ` ?
}
7 H2 y8 q' h" B. P1 d$ O}
( E! |5 h S) W M3 @void h_line(int x0,int x1,int y,unsigned int color)
0 @( O" @$ U0 f& \% U{ unsigned int address,n,temp;
" y$ Q5 p/ }9 x! W9 u9 [6 l5 Mif(x0>x1), i$ }/ v* g" N
{
7 b. j, L9 d0 Y% xtemp=x1;
) d6 l3 y% q* `$ T, a; ux1=x0;2 J/ Q( w6 l, Y: N: V
x0=temp;# d0 Q' q) ^, o$ \; T; X
}
' I4 i$ w3 ^6 r0 \/ e: y7 }address=320*y+x0;
8 ~/ M2 V# h" L4 I+ U, E. q7 a. jfor(n=0;n<=x1-x0;n++)* k! F7 ~# c$ r7 u. j4 f7 k
{/ J/ U5 g% k: ]; Q4 ?
video_buffer[address]=color;
6 l A8 w- k3 f0 w+ k# E1 Xaddress+=1;
% D b, U5 x) g: F% \}
0 u1 H7 K; |, l}- Y" S5 M; S3 Z1 X# u8 m
void p_pixel(int x,int y,unsigned int color)
4 d' ~+ a/ U: |: X b- X. o! n{ video_buffer[y*320+x]=color;3 @- w% l4 G- [0 G. ]9 x
}
9 a) p$ ]9 j- \4 \1 {$ n0 t9 rvoid s_square(int x,int y,int side,int color)% s# d8 h+ ~/ |- U
{
7 r D( [, @4 X4 c# C5 `h_line(x,x+side,y,color);
8 V' w- d, w; P4 q! W8 K3 ^; S6 z8 dh_line(x,x+side,y+side,color);3 `* R9 w' E, ^
v_line(y,y+side,x,color);( e% f" u y! T% ~% E& |/ o
v_line(y,y+side,x+side,color);; i, R/ C; Q1 Q
}
/ n4 T& h4 j" L2 g i+ X- kvoid r_rectangle(int x1,int y1,int x2,int y2,int color)
# \$ X, E, T1 J) d8 p! Q3 h{
# i/ ]9 \$ G. a; J) L% {) I; G6 Vh_line(x1,x2,y1,color);' u8 N" r8 K3 P. H: M: L/ p
h_line(x1,x2,y2,color);
# J6 S) P: q x, e8 sv_line(y1,y2,x1,color);
c5 \3 D5 `& p1 Z" Bv_line(y1,y2,x2,color); a8 b* S. }* Z, [: i
}
5 Q( e5 b' T2 Yvoid fillRectangle(int x1,int y1,int x2,int y2,int color)0 ?& [' ^/ i4 q; f2 k/ Z* [8 A
{
& I. }( M. h. l6 Sint i;
5 Q" k p8 E ~3 }& W/ w* Bfor(i=y1;i<=y2;i++)) @) P7 i8 ?8 r
{
9 Q3 [, e5 e& I) p* Hh_line(x1,x2,i,color);! U: E7 Z# k! o0 }
}
& v( Z( I2 m0 ?3 R0 F}
1 j8 ?0 [" z1 M! mvoid showbmp(int l)$ N1 g+ |' \$ T6 k2 R7 o. \
{ FILE *bmp;8 a S# C; t; j
int i,x,y;8 S6 F& Q6 {- ~3 j% B
BYTE palette[256][3];( H. W: s% P& k0 t+ m* i" }
bmp=fopen(me.pp[l].k,"rb");( M: B) I! N& P
fseek(bmp,54,SEEK_SET);
" n( {9 }8 [) F* R$ E0 y3 Xfor(i=0;i<256;i++)
0 b1 m4 s- N3 m6 t9 H: z9 M{
2 K9 H6 L! F" C2 ]- G$ l$ ^palette[2]=fgetc(bmp)>>2;+ c4 k2 y, h7 l3 R: `
palette[1]=fgetc(bmp)>>2;
9 q0 i' X5 G1 Q' o Q* Gpalette[0]=fgetc(bmp)>>2;
/ M2 O8 h/ V5 A9 Xfgetc(bmp);
. Z% j0 e4 r8 o, iSet_Palette(i,palette[0],palette[1],palette[2]);
9 e! s) u+ @# R. ~}
) p: \" w* _1 T1 M" a* Ofor (y=0;y<30;y++)
1 W! [ l. c, t) i- z2 Xfor(x=0;x<20;x++); f3 V1 c' T8 a* I, X# _
pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));+ Y! v7 E" Q1 v1 y* `2 ], h: J
fclose(bmp);: V2 Z/ i- k, k) h2 V& ?
}% w" H5 z( \8 \ m
void showbmpd(int l)0 n$ _8 g' E5 X" N) c; B z: l H
{ FILE *bmp;! [ z# Y- h. e" h- n, I
int i,x,y;: K7 v) w/ w$ L5 L
BYTE palette[256][3];9 J9 a _# L, l' V
bmp=fopen(me.pp[l].k,"rb");
3 {/ }* k1 X" N, q) t1 @fseek(bmp,54,SEEK_SET);
A/ z* v+ u' r& ^( `. |for(i=0;i<256;i++)
8 f2 e" S1 x' J- A U{, e4 A" H: l! Q0 i
palette[2]=fgetc(bmp)>>2;
# D* ^( D6 h5 S$ C: cpalette[1]=fgetc(bmp)>>2;
- N. Z% y# B" a7 |2 Cpalette[0]=fgetc(bmp)>>2;1 J! ?4 A# h' w
fgetc(bmp);
& _2 n. E4 u, M6 K0 c [Set_Palette(i,palette[0],palette[1],palette[2]);( S0 c8 z2 @/ b
}7 {. M9 n, {6 i j
for (y=0;y<30;y++)
# K( G" p% X5 kfor(x=0;x<20;x++)* C- ?7 W* E) K$ U4 H
pokeb(0xa000,y*320+x+zyy,fgetc(bmp));
8 u! @0 D0 M$ G$ B0 a+ Ifclose(bmp);
- I6 T* Z. h+ h: h# `; f0 h# C- k}
" p4 V" c7 k! t9 G, n+ K9 G& ivoid showybmp(int ll)7 |5 X8 \' {3 K) O
{ FILE *bmp;
3 T( D" r6 z k4 Cint i,x,y;4 z: m- ^# P0 s) Z Q% L8 @
BYTE palette[256][3];; V) n, S0 Z. U" ~4 Z
bmp=fopen(computer.pp[ll].k,"rb");
9 ^2 X0 z+ k" }* ~fseek(bmp,54,SEEK_SET);
$ f& y" l/ {: G, q9 `* d3 t: w( a" `6 Yfor(i=0;i<256;i++)
) d( i* ~. O* ^9 d{' t# p8 u. L) B% ?
palette[2]=fgetc(bmp)>>2;
: c, {# |5 s; B3 c' |( o [palette[1]=fgetc(bmp)>>2;
0 m7 @6 @6 O7 }0 D1 spalette[0]=fgetc(bmp)>>2;
0 U W, q8 @ B* n% K) Q3 Q$ efgetc(bmp);
9 v: k" c& T( JSet_Palette(i,palette[0],palette[1],palette[2]);0 g' n: C& Y. h( t1 q/ K: Q6 I8 ?6 \
}0 y9 B: V. }6 t1 G# o3 L
for (y=0;y<30;y++)
0 e, _+ M M! m! Z. ?+ Zfor(x=0;x<20;x++)
w* C# }& J) xpokeb(0xa000,y*320+x+zy,fgetc(bmp));
3 Z8 z" ?+ k" I) Q% Dfclose(bmp);
# P4 h# q# _" |5 P}
9 C$ `) f4 u! f& x, n3 ^void showcbmp(int ll)6 v$ X8 h" M% a, f0 v1 i# {
{ FILE *bmp;
$ E) R2 b7 D, l& ?% qint i,x,y;
8 e% _) N9 M0 W( b* aBYTE palette[256][3];
+ ^( h" S% i7 o. o! wbmp=fopen(computer.pp[ll].k,"rb");1 j$ H. \5 g2 r
fseek(bmp,54,SEEK_SET);
8 h( q0 l/ |; Pfor(i=0;i<256;i++)
! H- V7 j8 |0 m! Q8 `# l, @{$ _8 C' V+ D2 T$ t
palette[2]=fgetc(bmp)>>2;7 Y5 h2 l; ]- y3 G( U! B; r. k
palette[1]=fgetc(bmp)>>2;$ ?1 I& L5 g) q$ W) X( ^( _$ n. g
palette[0]=fgetc(bmp)>>2;: v) w) w4 z# A7 l [
fgetc(bmp);
, \. |/ C& \# n0 q8 t. {1 RSet_Palette(i,palette[0],palette[1],palette[2]);- ^* n" t) P8 D" w4 a
}7 D; j: r7 G5 z, Z- j) X" H
for (y=0;y<30;y++)
' u3 \! j# c7 b! M9 H" J. dfor(x=0;x<20;x++)
& U* I8 Y: p" O8 apokeb(0xa000,y*320+x+zyy,fgetc(bmp));
3 {: I) a6 y- c5 X6 P. e8 Ifclose(bmp);$ q7 k: U/ ?1 @4 N
}
# S% ?, b# w2 Kvoid bmpp(int number)# v" D% N' w7 {' _2 d) V E
{ FILE *bmp;
( k7 W3 r* @: \( p# [8 i) x5 z) `! Tint i,x,y;! E% a! k/ Y4 F. ~8 |0 I6 v+ w
BYTE palette[256][3];+ F+ o( `! }- G: a t4 V
bmp=fopen(m[number].name,"rb");2 O% L% O. e1 Z7 U2 T% f/ y
fseek(bmp,54,SEEK_SET);: k1 F1 G8 `+ N2 _. ]' B2 E
for(i=0;i<256;i++)& d- ^- V+ m6 |3 s F l
{" H* n% C; V# V$ I. |
palette[2]=fgetc(bmp)>>2;
, q, v* t. {" I! M8 @* V% r3 o3 Gpalette[1]=fgetc(bmp)>>2;
5 d% o/ a5 y& y7 u! wpalette[0]=fgetc(bmp)>>2;
* K: J; |) |' M- Zfgetc(bmp);
# x! R' K' D( K4 L% Y9 I, |Set_Palette(i,palette[0],palette[1],palette[2]);
6 \! R0 {4 S& L* A& _: O}) g. R+ V' D c B. t2 h# T/ ?
for (y=0;y<30;y++)
/ ~, r- W- s: c" n, `; t1 C" j& Pfor(x=0;x<20;x++)
! ]2 N E0 ~$ C) F9 J) apokeb(0xa000,y*320+x+zl,fgetc(bmp));: Y0 s% S/ _6 y$ h2 m' v7 j& X- }
fclose(bmp);/ s: n. ?8 |) v. P* L' m
}
9 ?, K! {& W5 y/ @- zvoid comlipai() /*整理电脑的牌*/
& C1 ?! o8 A% V- K5 Y3 L{ int n,j,u;7 f c+ |2 Y; W% v( H( ]6 s
int *lingshi;
, r/ ^. E8 Q7 _: d( H" K& C4 H: ~for(n=0;n<computer.m;n++)7 }# h5 f8 V4 B! j
for(j=n;j<computer.m;j++)8 u4 q% y: u, ^# O3 I4 x
{' }; x z( N6 d5 j" v
if(computer.pp[n].number>computer.pp[j+1].number)8 b X3 C7 |# [1 R- D% ^+ Q2 D
{
5 c) k5 q7 v; T( ?4 c ^lingshi=computer.pp[n].k;7 L S. R# y. w5 E. \# `, E
computer.pp[n].k=computer.pp[j+1].k;2 l- }5 b9 h7 M" F" ~$ ^8 R
computer.pp[j+1].k=lingshi;5 x4 Y# B) Y; K
u=computer.pp[n].oneorfour;
9 P- m$ E; F8 X, B1 K$ [computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;
3 g8 G1 ?% x" M0 Qcomputer.pp[j+1].oneorfour=u;8 \( g- O- `* A3 x
u=computer.pp[n].number;; X1 l8 J3 b* {, U( N8 W9 x! U
computer.pp[n].number=computer.pp[j+1].number;
& \; O6 K- q( G |: h# a; Vcomputer.pp[j+1].number=u;- n/ t( t- |) A+ _# P1 ^1 e
}$ b4 m1 y- ]/ I- m
else
# g9 c6 j- @& |if(computer.pp[n].number==computer.pp[j+1].number)
% r6 ?/ C; n) Sif(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)3 h1 }1 }0 T ^
{
+ t0 M; {" Y5 B- Mlingshi=computer.pp[n].k;9 i- E+ r+ e. \9 r' O3 b
computer.pp[n].k=computer.pp[j+1].k;* p- G0 ?' P: G- L
computer.pp[j+1].k=lingshi;
: |- m2 ^9 p' hu=computer.pp[n].oneorfour;
) D0 w% o1 Y6 a1 L2 s3 j4 I' k5 Vcomputer.pp[n].oneorfour=computer.pp[j+1].oneorfour;% ?' C6 @- M# m3 J6 n# }
computer.pp[j+1].oneorfour=u;
- y4 ^( @0 t$ au=computer.pp[n].number;
% ?' O1 ]3 ?% A7 T J5 scomputer.pp[n].number=computer.pp[j+1].number;
P3 m+ m. S3 {9 ?computer.pp[j+1].number=u;
% S5 _9 D: v, A; E$ r$ m8 f6 B}- s& D" B1 u$ e! r: a) z( w ]
}. m+ ~- l# q" ]- L& R& D7 l; h3 K
}
- z7 Y( C* C& f7 f$ \6 zvoid melipai()
! n9 I1 d4 M3 v( I# E{ int n,j,u;! w0 k9 {5 Z) o! k7 k1 M9 i% j
int *lingshi;. \; W$ r! F4 _+ P
for(n=0;n<me.m;n++)2 d% A( M2 O0 s1 U
for(j=n;j<me.m;j++)
5 ?2 X5 B3 W- @9 t+ a{2 }9 H! x# C' Y- V# c0 s
if(me.pp[n].number>me.pp[j+1].number)
R5 V$ A4 d0 Z% X{( d" Z/ B+ w B" U
lingshi=me.pp[n].k;5 _$ t0 u: P# }. F+ b
me.pp[n].k=me.pp[j+1].k;! L* ~$ h9 I" V3 O
me.pp[j+1].k=lingshi;
: ?' I' ^: [- ^6 i8 r ?# W6 z* X: Du=me.pp[n].oneorfour;
: N7 z& `! S& \/ w' Mme.pp[n].oneorfour=me.pp[j+1].oneorfour; v; O4 Y; Q, ?7 F9 {% m+ r! R% P& r
me.pp[j+1].oneorfour=u;4 Y' V3 S/ ?( l8 I
u=me.pp[n].number;0 d; s( H) q+ L) @% }
me.pp[n].number=me.pp[j+1].number;2 F6 U, f1 ]+ s
me.pp[j+1].number=u;
5 ]6 p/ a8 Z2 l% O+ x" Y9 e9 w m}
X- c( `; s: t; _+ e+ }else l- ?/ o6 k, L u
if(me.pp[n].number==me.pp[j+1].number)8 j. S' k$ U+ x) o0 H
if(me.pp[n].oneorfour>me.pp[j+1].oneorfour)
8 b! j. i) i+ z; ` e, {{
" S* y" ?9 f1 @/ }' _) nlingshi=me.pp[n].k;) L3 s8 P0 J; p; h; J) \! u+ p
me.pp[n].k=me.pp[j+1].k;
P( I L4 R6 }* o& E2 Z4 g6 Eme.pp[j+1].k=lingshi;( h6 m- q# P6 \( t8 l6 {' Y6 n! ]
u=me.pp[n].oneorfour;& {8 W. }5 t+ e' J0 u0 V& u
me.pp[n].oneorfour=me.pp[j+1].oneorfour;+ x# h: m, O( M$ `7 h4 B
me.pp[j+1].oneorfour=u;' }) F4 m6 t B, Q3 ~, i
u=me.pp[n].number;
, w% S' D% b K; O# \! Qme.pp[n].number=me.pp[j+1].number;
7 R5 p% d1 J2 c rme.pp[j+1].number=u;) `; V6 D* Q; ~7 F' s8 P% p
}
% G3 t9 S! N6 E9 }}( z8 H% W/ ]2 M% D
}: t# K* O- J* z: `' h
void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/
1 F* ]( t' f' h% r+ K. e* b8 S1 y# Q{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
! Z: b4 u" Z. Q: \0 C* ~0 H9 p d8 {# jif(me.pp[c].number<=35 && me.pp[c].number>=0)' d1 D) u; |% l9 p; [/ h2 I
{' g6 f& t8 n5 V8 ^) {7 N
logo=1;
/ m9 Z' }. j& m6 k4 J# ]if(me.pp[c].number<=3 && me.pp[c].number>=0)
3 o. C' T; d' \7 {; alogoo=1;
) G; P- c4 x- d% k6 qelse if(me.pp[c].number<=7 && me.pp[c].number>=4)
6 L- f; P! \9 y3 \/ q; zlogoo=2;
# v8 P' [' t9 Y R3 [" |else if(me.pp[c].number<=11 && me.pp[c].number>=8)9 _7 G; f( E0 Z/ s) G
logoo=3;
B1 s' q4 X5 e- I% kelse if(me.pp[c].number<=15 && me.pp[c].number>=12)' U. [" O G3 M
logoo=4;
% x& ^, j$ G/ U9 L' f% Relse if(me.pp[c].number<=19 && me.pp[c].number>=16)
0 n* n2 b* W. G T7 ?" S2 }0 `$ Mlogoo=5;' O+ \) K) L( g* e
else if(me.pp[c].number<=23 && me.pp[c].number>=20)& v& Q6 u0 @% n0 E8 k
logoo=6;
7 J: @% o1 d1 p1 @2 \else if(me.pp[c].number<=27 && me.pp[c].number>=24)
" k" @0 m0 L3 C7 rlogoo=7;& s* F- H6 X# H4 m) H+ B5 R
else if(me.pp[c].number<=31 && me.pp[c].number>=28)
' f0 B {# ]1 I$ ~. X: z$ Xlogoo=8;- m2 `( P5 N7 K1 {
else if(me.pp[c].number<=35 && me.pp[c].number>=32), N' m: ]# n7 _! ^# |- {3 ?& g. l. T
logoo=9;
) v+ U, ?0 o) ?5 y$ K+ A" f0 l}( @' _/ e, F- F
else if(me.pp[c].number<=71 && me.pp[c].number>=36)
8 c+ a Z# g# k9 j9 {% c{( A9 q/ T! q; D8 G
logo=2;0 r/ C% E Q k0 T
if(me.pp[c].number<=39 && me.pp[c].number>=36)
( y5 J& m+ b0 U& Rlogoo=1;; O7 K3 s" i q, @& @, b. }1 o
else if(me.pp[c].number<=43 && me.pp[c].number>=40)
# H) n: j& J) U* m# A! D: vlogoo=2;
$ Y$ _( D1 }4 ~5 B: i5 }else if(me.pp[c].number<=47 && me.pp[c].number>=44)0 B7 u6 ~ {' b( D1 ^
logoo=3;/ Q& o4 _9 ~* T
else if(me.pp[c].number<=51 && me.pp[c].number>=48)# a. \7 R- N2 [6 j( T$ b0 [
logoo=4; t: G% \; I, }. _$ P+ T2 c! W
else if(me.pp[c].number<=55 && me.pp[c].number>=52)* s7 u6 O9 Q1 X
logoo=5;0 B* F+ A% W2 W( \
else if(me.pp[c].number<=59 && me.pp[c].number>=56)3 \! Q1 X8 P- V1 Q; n
logoo=6;
* ^6 h* K$ J1 \4 U1 a9 L$ O Lelse if(me.pp[c].number<=63 && me.pp[c].number>=60)
! G8 f' J' v' a3 q$ {5 ]. r" alogoo=7;5 n0 m3 e+ ]$ ]
else if(me.pp[c].number<=67 && me.pp[c].number>=64)
" C/ ?/ U% s0 t. t4 W5 r. ]" q( a# Nlogoo=8;9 L9 _+ `- R* G$ ^) N
else if(me.pp[c].number<=71 && me.pp[c].number>=68)" { K% B/ Y& o, L
logoo=9;
, X) q: A6 `- K" G# S}
8 T% _ `$ e" o* g- R8 P: Aelse if(me.pp[c].number<=107 && me.pp[c].number>=72)
8 Y9 o+ E( C+ ~{
" t& j7 o. [1 T2 r7 v9 c& Q7 C, o( tlogo=3;
9 F& q R: r$ ], k# o; \7 v) o" `if(me.pp[c].number<=75 && me.pp[c].number>=72)
1 Y$ _# S9 M& H8 x0 }logoo=1;
9 Y$ m2 a$ h8 N0 @3 J' M% |% K( z$ Telse if(me.pp[c].number<=79 && me.pp[c].number>=76)
, f+ E% c1 ^( k! llogoo=2;# L. w' a* |& i' n! H/ w9 B
else if(me.pp[c].number<=83 && me.pp[c].number>=80)
) ~; u9 ~8 \% j' P2 k; E/ rlogoo=3; W% v) I& n' e& t5 _9 O5 \
else if(me.pp[c].number<=87 && me.pp[c].number>=84)
8 H/ y+ {# h5 r b# x ]logoo=4;
7 y# J9 V# {4 eelse if(me.pp[c].number<=91 && me.pp[c].number>=88)
g, ?" a! ^9 Q5 y9 B e; @logoo=5;
7 W& f2 j) d4 e, p7 w7 S2 b! Kelse if(me.pp[c].number<=95 && me.pp[c].number>=92)- D9 I, Y w; O+ `( B9 l
logoo=6;
- \3 }1 F3 a/ T! ^" Relse if(me.pp[c].number<=99 && me.pp[c].number>=96)7 F6 M1 ^0 Y+ K3 D4 v- b
logoo=7;7 O6 m8 u" G- l1 n6 k
else if(me.pp[c].number<=103 && me.pp[c].number>=100)
8 E1 |" d& I! v6 e( glogoo=8; J0 l O: _* |. Y
else if(me.pp[c].number<=107 && me.pp[c].number>=104)5 Z9 w5 o1 M/ P; _6 _
logoo=9;( t' K2 k1 \5 G2 A1 m0 \- [
}, O& `6 Q( m- X0 t
else if(me.pp[c].number<=135 && me.pp[c].number>=108)
' Y0 E; z) O! H% x{
3 N+ o# I" S o7 Ulogo=4;; d& w/ Y, f+ [5 z% L) m
if(me.pp[c].number<=111 && me.pp[c].number>=108)
# n9 `3 e7 i3 G8 N) F, \logoo=1;
; w9 x, |0 }! b: N2 Aelse if(me.pp[c].number<=115 && me.pp[c].number>=112)2 F; m! ~) |+ U/ G8 O P8 z5 O
logoo=2;3 l" r0 o$ b4 M) r5 S
else if(me.pp[c].number<=119 && me.pp[c].number>=116)
0 i6 V! Y7 V& N7 Zlogoo=3;
2 L& l2 N Y( | Uelse if(me.pp[c].number<=123 && me.pp[c].number>=120)$ c+ B" K7 H6 t6 S/ w
logoo=4;8 h' b- `1 T* i5 F
else if(me.pp[c].number<=127 && me.pp[c].number>=124)# C8 K C4 D: r# u. N& Y
logoo=5;
# C a% G; P8 }) kelse if(me.pp[c].number<=131 && me.pp[c].number>=128)
. w* z; r1 e. D) {logoo=6;6 M0 p5 e( E4 E3 U4 V9 L1 o
else if(me.pp[c].number<=135 && me.pp[c].number>=132)5 @+ K% u& d' i% E: \- O
logoo=7;
) l8 _; y A6 F. g$ y6 u) Z5 V}
: P1 o' Z# E2 v+ Twhile(b<=computer.m), {: U7 e6 g' l0 ~+ r
{( m3 ]# N/ f( l% ~2 P2 g
if(computer.pp.number<=35 && computer.pp.number>=0) /*假定电脑经过分析后出了第一张牌*/
9 l' D8 l, [2 K5 O: ^* u( Y{. a& Y0 D" q' L9 h8 o
lg=1;" Z( k3 j1 p+ f. g+ s
computer.pp.d[0]=1;
# T* W9 \ j. K; W0 kif(computer.pp.number<=3 && computer.pp.number>=0)7 G# v/ _/ m/ @8 P
{/ o M7 [" Y* o6 {. x- z3 n. K
lgg=1;; P# e1 n: @0 ^7 V
computer.pp.d[1]=1;
% J( r1 S* D2 g5 |" f+ i}5 x+ u, h, z/ X" [* b: T
else if(computer.pp.number<=7 && computer.pp.number>=4)- I4 t- t2 p; L' r
{
5 T( V; O# s2 f7 @0 Xlgg=2;
& @% p: u2 R7 X3 k4 P3 ccomputer.pp.d[1]=2;
W/ j! i9 m1 U2 S2 o}
8 l+ c; E: n& A3 g4 a6 O) ielse if(computer.pp.number<=11 && computer.pp.number>=8)' h6 Q2 t. |6 V6 P
{
, U& R# l8 ^, wlgg=3;1 T- z% w4 Y" q& W" H5 ~6 v
computer.pp.d[1]=3;1 B: E1 _5 l0 O& j, P) L
}' Y. K/ V6 D \2 p0 t8 y1 y
else if(computer.pp.number<=15 && computer.pp.number>=12)5 Q. f) r! v U
{
1 p2 A& V" V2 H8 x7 t) Mlgg=4;
% M+ _4 y- }/ T( D% S$ _computer.pp.d[1]=4;
. [) u# ?; e/ U: B}
( D/ u" N: L! |$ s+ {$ S; F& t* Nelse if(computer.pp.number<=19 && computer.pp.number>=16)
' M4 S( j1 p9 O' P+ Z{
2 t2 K; C( m b* i) hlgg=5;1 U$ x n3 n8 k1 |: _
computer.pp.d[1]=5;
9 d Z6 e2 c f) A% @9 ^}: l. S0 T* k: l- Z
else if(computer.pp.number<=23 && computer.pp.number>=20)4 X" o) y2 R; Z& o/ Z$ }, D
{
( |0 m- I! S0 j8 i @lgg=6;
( _- D) m0 c r) e2 Fcomputer.pp.d[1]=6;
% T) P' x4 {9 G2 _ U}, _' D |9 o0 M) s
else if(computer.pp.number<=27 && computer.pp.number>=24)
) U" y2 i& Z9 F. Q9 n% X+ ^5 z{6 ]- ^/ l: j8 N$ ]
lgg=7;+ u3 `" h0 ], J Y
computer.pp.d[1]=7;
( A3 |2 F/ b+ M0 N* V} [9 q* m. E. ?7 c) N
else if(computer.pp.number<=31 && computer.pp.number>=28)" T9 Z6 G1 z3 _ b4 ]3 i
{
4 a5 K/ O# E5 c2 Olgg=8;5 i3 ] g5 S% f9 r- T6 S* A
computer.pp.d[1]=8;/ q0 A i% F' K
}
8 d) E' |, s% }+ F+ \& pelse if(computer.pp.number<=35 && computer.pp.number>=32)
, L7 {0 J) z# X5 D2 {{0 e. ^3 H* ^; ]; b; S1 ?9 C
lgg=9;
; _1 ~. _& v: f6 q- n: E P/ bcomputer.pp.d[1]=9;
6 `: c* T# V# S} c# T% y6 T9 z$ M
}
' O. g4 u! r1 E% ?) l Xelse if(computer.pp.number<=71 && computer.pp.number>=36), |3 U* G' V+ j2 b7 [& D! m& H2 E( l
{) V) K8 \8 u, W. v. t0 m8 i9 G
lg=2;
# h2 [% y' p: A2 b o; [; Y6 }computer.pp.d[0]=2;) O: z$ T0 X4 n6 m
if(computer.pp.number<=39 && computer.pp.number>=36)
# H6 P+ g" H, ~3 p{
& ?! z, c4 C( Q1 J) vlgg=1;
" f4 `8 j9 y2 Q. v Xcomputer.pp.d[1]=1;- m0 `( P B1 M2 A; d- ?3 ]5 F7 M
}
) C7 ?3 l" }( Kelse if(computer.pp.number<=43 && computer.pp.number>=40)
1 p! Q' m6 V/ Y) r+ D{
6 Z* u, ^2 K9 M# c/ y1 Slgg=2;
3 a9 i' A: M8 bcomputer.pp.d[1]=2;8 X; U( R' k; t0 o9 ~
}5 ?; E6 q3 w' p. y- h4 R
else if(computer.pp.number<=47 && computer.pp.number>=44); B( `: ?5 ^4 E+ j9 p8 M' w1 ^
{
$ H" j. J& D/ N1 w- V6 \0 p# I0 |lgg=3;0 o M8 y& v* E; w' R
computer.pp.d[1]=3;- Y: L+ Q4 i8 m3 l
}% ~: Q4 a& @. v3 C! f* U$ l
else if(computer.pp.number<=51 && computer.pp.number>=48)& z6 S; R% }, C# g# J
{$ Q1 k6 V; M3 {/ \
lgg=4;' j7 h5 u! k$ o# u" Z- g4 l
computer.pp.d[1]=4;, S5 I9 K; \3 ]* L) @" M! }5 r) [
}
' H1 R7 G6 {1 X$ v7 Q3 p6 Y8 [" Velse if(computer.pp.number<=55 && computer.pp.number>=52). r1 H9 }8 p5 g* w( _: b
{+ S3 e/ V# s; c& L3 m; u
lgg=5;
3 f- |6 |9 i- Xcomputer.pp.d[1]=5;
8 N" e7 Q/ N( @9 M}
5 P9 R: |0 x/ }% f& U5 P kelse if(computer.pp.number<=59 && computer.pp.number>=56)
7 U8 U/ \$ A0 T{
. { Q& z2 B) A- O, [3 l& C4 a/ }lgg=6;" n6 I6 L$ @2 r9 B0 C1 I: o* Q9 g
computer.pp.d[1]=6;
2 ^$ U" N: P: }* f' E}
5 x/ E+ Q; A c& k& s/ b6 yelse if(computer.pp.number<=63 && computer.pp.number>=60)
, k" h5 K/ c# f$ F7 `' |{
5 H; j h0 l! U K$ x8 Slgg=7;4 \4 e6 ^2 t3 |7 Z7 o" Q$ |2 Z
computer.pp.d[1]=7;
3 b0 G4 A1 J- A% f" G8 e}
7 a- _- j& }1 Yelse if(computer.pp.number<=67 && computer.pp.number>=64)
$ m) o( V! O& E0 R{* R) e3 J; q7 i2 O
lgg=8;% r6 Q! ?# n/ ~- C
computer.pp.d[1]=8;. d3 L& _0 ^( ~# q1 B8 G6 u
}( |- l7 f6 j3 D% l8 e, I2 n, O
else if(computer.pp.number<=71 && computer.pp.number>=68)
" U- l: p* \' T- G8 W$ Q% O{' v7 E" |/ C) j5 v
lgg=9;* W' y7 v" _5 ^3 \5 J$ p! w
computer.pp.d[1]=9;
' v4 c; Y& ~3 \8 K; G- Z}( S2 C5 B" d3 n% b! [2 ~
}
% }+ Z" W& ^ @/ K* P. I7 {else if(computer.pp.number<=107 && computer.pp.number>=72)
- _! F# x0 y% l7 I{
8 a) ?8 Y6 @5 |6 ~, blg=3;2 k5 }; ^" o+ o5 |8 G( _% _: }3 K
computer.pp.d[0]=3;& N2 X/ M4 u+ F3 n+ Y/ ~
if(computer.pp.number<=75 && computer.pp.number>=72)# o7 |# _' T# \6 [8 O2 w
{
( b: |! v& y7 q0 q4 ulgg=1;' T, C/ w" _. x2 C" E V! u" m( Z
computer.pp.d[1]=1;
% `+ P+ Y) ]% ?& _0 |}
/ d, J3 F. Q; qelse if(computer.pp.number<=79 && computer.pp.number>=76)5 ^$ |" ?8 j0 _4 V; d
{5 S4 l" u6 W2 I" @" k' {
lgg=2;
$ `4 x- x( {% r& Zcomputer.pp.d[1]=2;
% G% _, n# W+ k}! R* E ^* e; A" m, k, p. V& W
else if(computer.pp.number<=83 && computer.pp.number>=80)
* m( X8 t2 h# i$ w3 _9 B1 `: r' @{
7 |, N. y; o' D8 Y4 vlgg=3;
5 f; q7 Y6 h+ `7 ^9 P G* _# h- n. Qcomputer.pp.d[1]=3;3 s2 E @8 \2 S B
}; B7 Z* u0 {# Y O) w# Q- {5 F
else if(computer.pp.number<=87 && computer.pp.number>=84)
9 q* k+ | m1 N{
2 A# u( A& j# N, ] N; E( Tlgg=4;0 L0 V, z5 I% \: u" A
computer.pp.d[1]=4;
6 z Q) U" v3 o4 Z8 i}; k* @. m9 G8 \+ T
else if(computer.pp.number<=91 && computer.pp.number>=88)
: g8 e' L) l. p4 w# S3 y{$ n- J& P0 P& h0 `4 E, K j
lgg=5;
! o0 l) X* T' X& n! j7 B- g- _computer.pp.d[1]=5;" W, Z0 ^4 }' g
}4 \2 j; R' J- L8 \1 B+ E6 G8 B0 }9 q
else if(computer.pp.number<=95 && computer.pp.number>=92)
: f( U, m1 {2 I1 ~7 g1 [, Q- l{
% b6 T: g( C9 d; l6 f: S2 `lgg=6;) Z0 C }$ |5 I" F& n7 y; Z: \
computer.pp.d[1]=6;
' [: G1 s, z! u+ B$ d+ m+ a& P}. Q3 ]2 ^/ v" ` O+ n- }1 w& {
else if(computer.pp.number<=99 && computer.pp.number>=96); s2 \: r! q5 E9 Q6 a
{3 ?: q% u1 ~* X' O5 U
lgg=7;
/ X% l4 h9 |- z3 n1 Fcomputer.pp.d[1]=7;
5 }) m& m% ^( o+ |0 [- s9 l}+ A8 Z! U: }+ M d0 z) s
else if(computer.pp.number<=103 && computer.pp.number>=100)& ]& I0 V* d- M
{! {6 ~2 D/ V! L. _' ?: V5 S7 [0 X
lgg=8;
6 E4 n: e/ s9 o7 W ncomputer.pp.d[1]=8;% y' ?8 ?$ T+ i3 R- [5 d1 O6 c
}
. Q, A+ G3 d V+ \; m; w& L: Kelse if(computer.pp.number<=107 && computer.pp.number>=104)3 T. }5 n9 i: [" x
{
9 ~; g; \5 I# G2 S+ g7 `% ulgg=9;
6 v* Z/ }8 V; U3 d& S# N# \3 l0 ^computer.pp.d[1]=9;
5 G1 e' w7 h8 @) @+ j}$ H" v9 K! ]. P c8 ~
}
0 m; A0 N. P8 _8 X: d, H" Nelse if(computer.pp.number<=135 && computer.pp.number>=108)0 |! \8 c. V5 _# m' Q! r+ U
{ p& O2 U; n6 F" H
lg=4;
1 g) @! G! ^0 o/ q$ c( scomputer.pp.d[0]=4;
) J7 Y/ P5 P, F# p8 J+ iif(computer.pp.number<=111 && computer.pp.number>=108)
8 E- M4 v# n+ K2 Y9 l{
, o8 C J8 l! f+ C# clgg=1;
0 S7 y4 ^' \4 P: J; P8 ycomputer.pp.d[1]=1;
2 Y5 ~: I1 h3 _ X, ^}
A. D0 @3 T# L' |2 C0 [. v4 Ielse if(computer.pp.number<=115 && computer.pp.number>=112)
$ P+ d% W4 d; r% q, l. I% ~. c{
0 ]+ ]4 w. K/ {" a k8 ulgg=2;
9 i1 G/ h( P# I" s9 L. ]computer.pp.d[1]=2;5 V U5 f, o1 T8 w# H
}
( u" n0 |& e9 }. W) lelse if(computer.pp.number<=119 && computer.pp.number>=116): N A. @2 U6 `6 ^% w
{
+ M, V. K4 u! e5 N# Plgg=3;0 x _2 G( N2 V9 Y: f# \) ^- m
computer.pp.d[1]=3;6 G' {2 i0 m9 H. |8 i
}, k3 I" o! Y8 D4 y' Z, J' a
else if(computer.pp.number<=123 && computer.pp.number>=120)
; D- N0 X G; u* d{4 N' z+ A; o; Y+ G" S% S/ d7 F. N- f
lgg=4;
* Y1 d. o5 A' ?" g+ N3 o1 q8 Rcomputer.pp.d[1]=4;
3 c& q( v% }0 w# ?8 [) ~% F/ G} ?# [3 K% @' f+ l0 E
else if(computer.pp.number<=127 && computer.pp.number>=124)
1 C. e" u0 A& v+ B{
7 D, y+ E X) j0 b* y) jlgg=5;
- e9 J* f' b9 \. I$ o: J4 Z6 F% K- dcomputer.pp.d[1]=5; [$ h* E5 M- W- U
}
6 T% {# Q% P+ d5 j8 Nelse if(computer.pp.number<=131 && computer.pp.number>=128)
( U5 u; h" ~8 |% b' d7 X8 t' M2 K{
( Q$ k% X( K0 t* ^5 C6 \lgg=6;
3 `% \3 R4 n" W, Q8 bcomputer.pp.d[1]=6;
; B/ |4 M* b+ `9 |3 _6 n) A}" K4 L' N/ p5 T1 N) {3 Q+ _& T
else if(computer.pp.number<=135 && computer.pp.number>=132)# A8 `7 S$ A j l0 j8 Q
{" \0 A: z% P0 D7 N- `
lgg=7;
! P' C! e9 G# jcomputer.pp.d[1]=7;
9 H+ L6 m; s6 P/ W9 d}
2 i- K; d4 \! ?8 g1 D}
% H& O7 l- I( v9 y! {* e, E
* N7 n5 ]9 I1 S% A0 Q$ {7 B- nif(logo==lg) /*如果相等的话,那再进一步的判断,乓杠的判断*/
; K" l8 R- i* q% H- g: Rif(logoo==lgg)
+ L% X2 J* Q1 _1 Dpg++;
4 b9 n# {' }; w' R; B0 ?8 `- t( Tch.lg=lg; /*保存电脑手里的每张牌的信息*/0 c- ]5 e5 y2 [7 C* z2 w
ch.lgg=lgg; U* e' T, n1 Z" b% u
lg=0;
3 A2 k6 o: b$ l0 \- W* ]# m) c( plgg=0;
4 b! `, `, {2 S6 k0 `& \b++;/ b4 v7 x: G* T3 w Q4 @5 P
}5 D& ~7 F- z& x9 D ]6 \9 _5 k1 {" V
if(pg==2) /*乓*/: s% i3 C4 I9 e7 V* `
{: q, V! l* N: |) D' d+ u
# a5 j3 } ^7 Y7 r: V; \2 I qsing=1;5 D6 N4 V, A/ ^2 P1 {
b=computer.m;
, D5 Y+ J1 J7 h& i9 twhile(b!=-1)! I, j9 {6 Z, P
{0 z- ~ \1 v/ h/ P* H
if(strcmp(me.pp[c].k,computer.pp.k)==0)
( R: ^$ T8 s; A) y$ E( r, pcomputer.pp.p=1;
# y$ \6 S1 j: c' G9 X d4 I$ b
4 P+ M$ D9 I6 ub--;
p0 r& N n: l3 u0 |8 J4 O}
( @4 f( s. B6 U) @" o1 g, I' x9 b. S}/ k6 F |! u# J. K8 F
if(pg==3) /*杠*/
1 C: g- X' k6 c2 ~5 u( M$ J{1 ~: ^' N$ }+ {8 M3 k' @; s
3 p2 ?' Z `$ t
sing=2;
2 n6 E1 Q l) [- ?2 }: p! Rb=computer.m;2 n6 ]2 E, Q, U; _4 z2 j) f$ y; @
while(b!=-1)
1 r7 p% T8 F z. W3 I" {{# O9 V2 R" e0 i/ U
if(strcmp(me.pp[c].k,computer.pp.k)==0): j$ r* u# O0 v! }; s1 z
computer.pp.g=1;
' \& y. s( s" wb--;
% _0 Z4 V' y9 m}
( b2 ~. X2 R/ y0 D6 w: b9 N G$ \}
' i6 W+ |" Q+ K2 P2 m! @$ pf=0;
6 D' Q: r3 G. A4 \& k1 Z) ^while(f<computer.m) /*吃的判断*/
* D1 d5 C3 H6 D# x, T, d) [# _{ if(ch[f].lg==logo && ch[f].lg!=4)5 ^! n' |, ^) W1 k4 X/ n
{& l1 s2 P! m+ H
if(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/
0 |6 B5 ?/ ]" X+ Vif(ch[f].lgg-logoo==1). B( l1 R3 W4 b( }: v' Q# l9 a
{4 \' P7 k1 f/ o0 s3 u
gp++;
1 r( @4 y, E) A, D9 _! o4 b6 ~; Acomputer.pp[f].c=1;
/ G, @, B6 s# R" D |! n9 z; n Zcomputer.pp[f+1].c=1;
9 O% d; r0 q0 C( j% {9 k% b- V, M}# n. w, o9 m/ C4 z8 F& t
if(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*// g9 O5 a) L; ~" ]: }: G$ F; _/ \
if(ch[f+1].lgg-logoo==-1)
$ U y# \7 f) g% ?" I5 q8 Q) A4 @{* Z% j7 }" @4 P& [/ b. O6 Y
gp++;% j6 R* r( O. W& ~ u
computer.pp[f].c=1;: B) V( R5 v1 t$ \0 W2 V
computer.pp[f+1].c=1;3 W" [! d9 K+ z0 Z+ ^! o
}/ P) Q. E( T$ ]5 F! d2 M
if(ch[f].lgg-logoo==-1) /*中吃*/# Q! u3 f* U- ]. f3 R1 \: Y
if(ch[f+1].lgg-logoo==1)! u) ` L& }1 P- B: Y, |
{
( K5 g: I" c3 Q$ x* H& ^: egp++;
' S7 x$ D0 Q2 K" b) P7 Q% Ccomputer.pp[f].c=1;. K: m5 ], S* A" e& C0 i5 s S
computer.pp[f+1].c=1;
% ~; j- T6 {$ ?}
. |# ^) G1 l) p' g4 t/ \# E7 @+ Nif(gp==1)
1 W4 M% I) c" L8 Ibreak;
) V8 F, {& G+ I/ U- l}
$ A+ {7 V3 i, M' ~f++;7 V3 R) q( D/ A
}) [5 K, C, k2 ^7 W7 f& [8 r+ j
if(gp==1)& V- \. ^& K7 O5 W
{sing=7;/ f6 m* w- T5 ~( B' {
+ C2 l. L8 D" `1 Y3 P: P
}
' F0 c+ k; c, I; k( {) r, |& mpg=0;% B Z# A* a2 `3 z( Z& ^$ @
gp=0;0 [- F% X4 C+ I& K" r8 m4 o
b=0;, \# E. H; p9 e: x: w _
}
: b/ [7 \* h9 y7 e5 fvoid rgznme(int c) /*本程序涵数的核心针对我的牌*/; l% L, _" `' [' i! a# G: w
{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
: {1 @( P/ E/ Gif(computer.pp[c].number<=35 && computer.pp[c].number>=0). d) ]0 H3 c& F! }7 U
{
Z- @( E7 B4 ?) ilogo=1;
1 d2 R% u, Y: q) ]0 M: i/ s$ w9 _if(computer.pp[c].number<=3 && computer.pp[c].number>=0)) r. I" o; \; R2 {& E6 V
logoo=1;
* }+ n$ C0 t" Z+ Jelse if(computer.pp[c].number<=7 && computer.pp[c].number>=4)
$ W" @* `! E" p/ l5 r+ Tlogoo=2;
: J& d( ]- n. x" R8 \3 Kelse if(computer.pp[c].number<=11 && computer.pp[c].number>=8)4 s- x% Z- }5 a& J
logoo=3;) K x: E1 W8 f8 q5 s( X( s8 T. r, @
else if(computer.pp[c].number<=15 && computer.pp[c].number>=12)
1 G/ H8 ]2 q6 Q4 ]# R4 w I( Llogoo=4;
( W8 k0 j1 Z3 \9 i+ Gelse if(computer.pp[c].number<=19 && computer.pp[c].number>=16)* S# `4 u* P+ _4 R' n$ U3 X1 H$ y* e
logoo=5;& A* l( Z! l3 H6 g9 a
else if(computer.pp[c].number<=23 && computer.pp[c].number>=20)
+ f/ Z) t' C$ A: z3 i+ J, rlogoo=6;- A. Y: S; j; M9 t4 ^1 y$ @
else if(computer.pp[c].number<=27 && computer.pp[c].number>=24)+ s X9 k! _' R6 j
logoo=7;, ~: C3 [3 b$ q8 q i. `
else if(computer.pp[c].number<=31 && computer.pp[c].number>=28)5 {+ i6 [1 u4 [; R- I& J* C
logoo=8;
* K# U5 O' @ P6 qelse if(computer.pp[c].number<=35 && computer.pp[c].number>=32)
7 B' ^5 R' E" X9 ]8 i: Ylogoo=9;# [) H) {% M6 L4 Z. R; R5 ]
}! {" X1 D; ]* p# {: d. c* V% {, L
else if(computer.pp[c].number<=71 && computer.pp[c].number>=36)
6 \( K. {! [4 _9 M6 T2 \{* b) A+ z0 ^, R! Z
logo=2;1 U2 M! D5 ]7 k; I1 ?
if(computer.pp[c].number<=39 && computer.pp[c].number>=36)
' M v, I8 i* z0 D* {; C8 U* Q7 Jlogoo=1;
5 {! h0 u3 H+ r$ `+ velse if(computer.pp[c].number<=43 && computer.pp[c].number>=40)9 H. ~6 n8 @ E6 k- h- t* R1 @, z
logoo=2;
+ S, @8 P# ]( {8 n% R5 Felse if(computer.pp[c].number<=47 && computer.pp[c].number>=44)
& b: m) j2 K$ w: i5 `logoo=3;
+ w1 d" s6 L9 u. V8 Gelse if(computer.pp[c].number<=51 && computer.pp[c].number>=48)
5 X2 ^4 g V1 F# a% _logoo=4;
2 U% I; P* o- [" r$ welse if(computer.pp[c].number<=55 && computer.pp[c].number>=52)
# S* [: w9 _) d! }0 d, x; W* n+ Ilogoo=5;7 `0 [+ E/ Z H5 K# Q; C
else if(computer.pp[c].number<=59 && computer.pp[c].number>=56)
2 d" P9 \& C( |# E9 t& |logoo=6;- z" y( g- [+ m% ~: y: v
else if(computer.pp[c].number<=63 && computer.pp[c].number>=60)
1 Z5 w5 |/ v$ Mlogoo=7;! ]0 @' ~# T1 c2 Y& l
else if(computer.pp[c].number<=67 && computer.pp[c].number>=64)
# P" \/ P1 @& Zlogoo=8;$ L/ ?" w4 O) A$ A( i/ U
else if(computer.pp[c].number<=71 && computer.pp[c].number>=68)
! B3 x. N7 |2 Nlogoo=9;
; [) u1 }4 c& I5 S8 ^6 u1 R}
5 n( `$ D1 r& b* F1 G! Y5 uelse if(computer.pp[c].number<=107 && computer.pp[c].number>=72)' Q+ k% e7 Z, A- _, q% O% {6 y/ ]
{
5 N7 i. H) z, p4 m5 wlogo=3;2 x' n a2 X, Z: T/ o0 h3 a: h
if(computer.pp[c].number<=75 && computer.pp[c].number>=72)
+ j1 N5 e! R" `logoo=1;( o+ I* J9 {9 r
else if(computer.pp[c].number<=79 && computer.pp[c].number>=76)0 O2 e! H; N( c; h- M7 H$ ]2 ]7 @
logoo=2;
! x, h) Z: c3 g |9 eelse if(computer.pp[c].number<=83 && computer.pp[c].number>=80), }4 o/ X6 p1 r
logoo=3;
+ [* L$ W, a0 _' O- D' v3 [2 D7 Zelse if(computer.pp[c].number<=87 && computer.pp[c].number>=84) L2 |6 a! H) a5 V( f4 X# k
logoo=4;
, L9 V; ?! a$ h% D/ kelse if(computer.pp[c].number<=91 && computer.pp[c].number>=88)
3 |; g, a }( {+ ulogoo=5;
* d: m- T M& ^0 B/ d( q& kelse if(computer.pp[c].number<=95 && computer.pp[c].number>=92)
% T; G* |; ^1 W7 ~( Tlogoo=6;( v6 Y! W3 T$ }7 t- y
else if(computer.pp[c].number<=99 && computer.pp[c].number>=96)
! l+ r. t, n, o8 Y0 Blogoo=7;$ S$ n: C) J2 B& F B5 w
else if(computer.pp[c].number<=103 && computer.pp[c].number>=100)4 L7 K* J' |; A
logoo=8;
+ {* S# j# h- \* c; f3 \else if(computer.pp[c].number<=107 && computer.pp[c].number>=104)
6 v2 W/ e* h1 Z% y4 klogoo=9;
5 O5 O9 Q" h; } p; |1 c) V}: Y% y/ k- H g9 ~
else if(computer.pp[c].number<=135 && computer.pp[c].number>=108) C& |0 E1 I1 F- c; i) J
{- D; r, s! e2 r; e
logo=4;9 X% `1 o$ N9 ^7 t4 N8 t
if(computer.pp[c].number<=111 && computer.pp[c].number>=108), q; I2 G/ C! k/ s0 s& K- b
logoo=1;+ ^0 C& ^" |3 Z
else if(computer.pp[c].number<=115 && computer.pp[c].number>=112); [7 X( W! b, @7 j; K6 f
logoo=2;7 W) ], n/ k4 v* u3 W+ K& h' G
else if(computer.pp[c].number<=119 && computer.pp[c].number>=116)
- l; n) V% v* T4 S' f% \+ qlogoo=3;
- m0 a0 ]# @! a1 e6 S7 `3 Helse if(computer.pp[c].number<=123 && computer.pp[c].number>=120)* a4 U7 c2 \& N6 A8 \+ L
logoo=4;
' s' ]; K) Z5 n* jelse if(computer.pp[c].number<=127 && computer.pp[c].number>=124)3 X# Y. Y2 Q( ?* m" v
logoo=5;/ _ w: z8 w+ b( V' t
else if(computer.pp[c].number<=131 && computer.pp[c].number>=128)
9 ?# d$ a! f) p- m/ @/ i xlogoo=6;5 e. n( G; x# `' p
else if(computer.pp[c].number<=135 && computer.pp[c].number>=132)
# u# L% Q5 C" {6 slogoo=7;+ v( o: e" q, {7 a
}
. \4 n7 u5 `: p* n1 vwhile(b<=me.m)9 S6 t7 q1 X7 G% }/ d* e! a- f
{
4 z$ f6 G# C% O; c' r' q$ xif(me.pp.number<=35 && me.pp.number>=0) /*我分析后出了第一张牌*/! H" a) B, O9 O+ V, U0 b' O4 _
{
1 l1 X+ c; f# [. T k1 elg=1;# }0 a! U! a- l4 D2 X( G4 A
me.pp.d[0]=1;' G3 l b0 V0 l9 R1 H
if(me.pp.number<=3 && me.pp.number>=0)1 k! R& q1 q; q4 A) S
{
l$ C5 L1 F2 X& E8 g2 Elgg=1;' O6 y0 I7 O: l4 _* t. ?: F. v
me.pp.d[1]=1;
2 e0 |$ H2 t, Y4 u9 J}5 b/ o( G4 E# ] c+ i" }5 i4 j" B
else if(me.pp.number<=7 && me.pp.number>=4)
9 w; s2 E9 W3 O" e% f{) u! S4 A6 W# {7 W/ T: F. I: Q
lgg=2;
/ X# F' }( S6 T% ]1 ?me.pp.d[1]=2;
, g' g" \2 ^2 R: w, ?1 c}5 Z! W1 `5 T) q) @9 w7 t! V# D
else if(me.pp.number<=11 && me.pp.number>=8)
4 U2 }8 V5 l# P{# {4 G9 w$ Q8 e2 c& s, `) U
lgg=3;; G! j; Q7 \; b3 J" ?& I( w; T
me.pp.d[1]=3;
9 O" {: m: F- H# P5 q}. {4 v$ t0 j1 k: s# Z
else if(me.pp.number<=15 && me.pp.number>=12)9 y, Y6 A; U! [8 Z
{
* G( ]. o) d3 Olgg=4;
) `4 v# X) G- a# J& z4 Qme.pp.d[1]=4;
4 P0 L/ x, x9 \. t3 y) F}
) R, t- m* b) {- y' X4 Welse if(me.pp.number<=19 && me.pp.number>=16)' \/ G- v* ?/ N7 u
{) l& H, F, s7 ~: A1 n' m
lgg=5;0 W4 i* ~: q* g" l2 M( D; z# C$ S
me.pp.d[1]=5;
/ B: j+ ]# z& o( V* D6 r( b) _5 J}
: G5 ]' j0 a# C- @, k' H, o6 H7 J0 |else if(me.pp.number<=23 && me.pp.number>=20)
K8 P4 g! C9 _# l2 ^' A9 r. _6 C{
5 ?: P, X9 L9 N) d: O$ Blgg=6;. h. P% R9 t5 v9 R6 k' i) `; l
me.pp.d[1]=6;: C! M& z( e7 i5 l/ f
}
3 Z2 e6 r4 m2 celse if(me.pp.number<=27 && me.pp.number>=24)3 r% E' c* \+ b; v$ L( @6 g4 s1 M
{! g, L% M' F1 t$ w( R5 V) h
lgg=7;
, f5 X' M0 P$ n( Q! `' K& qme.pp.d[1]=7;1 {9 [, ~2 `# h5 g& r S
}
( |$ @# F7 b# a' s/ Q; @else if(me.pp.number<=31 && me.pp.number>=28)2 Y7 i( N" C: u! u2 s7 x
{" D i2 h7 X) p" k
lgg=8;
& Q# V2 K9 b$ {7 }1 ? l5 `' yme.pp.d[1]=8;) ?# d! A# M, z+ v, l `' D' W
}
6 [$ r7 s# L& \1 g" j. K( }else if(me.pp.number<=35 && me.pp.number>=32)# M! q! s. `% U. e! q
{, T1 V7 E8 I, d- D
lgg=9;$ @, g8 {6 b4 A W7 }# I; Z
me.pp.d[1]=9;7 Z \8 P, L/ [! ^- ^$ |; E
}
9 {1 C8 j2 D: x( B+ I}; e% N5 G# z' N" S9 q) s: y# p. @
else if(me.pp.number<=71 && me.pp.number>=36)
5 l/ @+ Z, b8 U- ~{5 y* F _* \* d! \6 n2 z% | @
lg=2;
) A2 R$ I+ X3 L x- i# W. h3 pme.pp.d[0]=2;& ~+ G! C$ @! t6 L
if(me.pp.number<=39 && me.pp.number>=36)
' p2 z0 }/ O( a/ H7 W{
! K# S+ C# B9 a' e0 y, U! Elgg=1;
. Q( ^4 p7 l* y) X1 sme.pp.d[1]=1;
* F6 R. B- J. X( D X1 [+ E$ N+ }# |% x- ^}% Y3 W" F. ?( L6 v1 l$ y6 Z
else if(me.pp.number<=43 && me.pp.number>=40)1 C2 ]" i1 Z( U; v3 A# G1 _
{
/ B! A# E, P) i1 A" ^5 ulgg=2;3 x7 ~; P5 F! J6 T, O
me.pp.d[1]=2;
8 ]; j! e. k/ l! z7 U2 h+ ?3 x}
8 c; t6 M c. L) M+ e3 [" ^else if(me.pp.number<=47 && me.pp.number>=44)7 w) V, W5 N* g! M6 o3 m
{0 r- w1 y& G3 m3 h, z# R
lgg=3;
+ i3 B" m D% p+ V1 @ U- |% M7 xme.pp.d[1]=3;, ^2 R9 X) t& B- G& _; W1 K
}
9 [- f Q9 B$ j, }else if(me.pp.number<=51 && me.pp.number>=48)
; m% ]9 y; q6 Q9 W+ A8 O5 j{* d" R, j# V) y$ J8 q
lgg=4;% c0 o- C+ { ~$ x
me.pp.d[1]=4;
$ h" ~; E' r5 A4 ], b: G}( k9 r& |8 A, {- M' k% K; x9 q( p
else if(me.pp.number<=55 && me.pp.number>=52)2 F, V: x( T5 }% u$ c& ], w2 `# T
{! L+ n7 `: P0 t4 s7 }0 B$ w
lgg=5;0 Z y0 z+ n N. h" F3 ^/ p7 G
me.pp.d[1]=5;
4 [3 _5 [3 h" l. {) y}
2 N6 `+ b+ m6 `' p; {# welse if(me.pp.number<=59 && me.pp.number>=56)8 Z1 S! w5 f( N$ c# m3 D
{5 p# f8 i) G- I# C; B
lgg=6;
V7 \: X9 W0 D! G& Ame.pp.d[1]=6;" | |; `( e& b/ K
}- e$ j; Y) A; H6 A
else if(me.pp.number<=63 && me.pp.number>=60)% u+ [# a3 V5 M2 ?+ _$ O' S3 D
{
! [+ M) g" P/ f" flgg=7;
X0 C4 I! ?) h% l+ U/ t4 lme.pp.d[1]=7;- _4 o8 [9 ]( ?7 f- Q
}" M/ p7 O! M* X1 r1 M
else if(me.pp.number<=67 && me.pp.number>=64)! L4 k+ o- g3 O, w0 e% T
{/ V @/ B( Y9 x+ u, w8 F# h$ l
lgg=8;; z6 Z" K( s7 }4 a
me.pp.d[1]=8;
* J$ a8 ?! Y9 j G# q! A}
! S7 P6 l4 ^3 [! N$ Nelse if(me.pp.number<=71 && me.pp.number>=68)
& s7 E) x Q) \{% G Q( o; n( J9 N) b$ Q; ^+ B( J
lgg=9;+ f$ [4 n1 |, x- ^& Z m2 Q, ?
me.pp.d[1]=9;: }; Y+ S: u2 y7 F, m5 m
}" q. `# F% C8 a0 ]- B- D! d& \
}
" z6 ^; k( D/ s* G+ Z5 felse if(me.pp.number<=107 && me.pp.number>=72)
4 q1 B" g6 J" D7 v) f8 y{; h: t" P! h9 u! `' z2 b! X
lg=3;
5 u) u8 C, B' ^$ Zme.pp.d[0]=3;
' E/ ^/ m4 F( t" Pif(me.pp.number<=75 && me.pp.number>=72)) M5 M% a4 J$ w9 W
{6 ~3 B$ s( h E* V! R3 m
lgg=1;+ k! l2 P# I' E }$ o$ n
me.pp.d[1]=1;6 Y6 g: B4 Z7 N1 d! w2 [1 u
}
; d4 V' {) _1 @else if(me.pp.number<=79 && me.pp.number>=76)* o3 |' e$ x! w/ ^ k0 k1 ^* X
{6 ]# ~+ L0 ^6 a8 s) c8 c$ d' u
lgg=2;1 P' M. ?, i9 t9 a4 b. L
me.pp.d[1]=2;8 f' }: d4 b3 G8 v6 L, S3 ?+ W( }
}) M$ S2 |/ Z" n
else if(me.pp.number<=83 && me.pp.number>=80)
/ q. s- i* f! O& C, _* c{
; K* o6 O) d4 B* _! ]lgg=3;4 F1 m- z- w" q! @. `( b2 @
me.pp.d[1]=3;
0 H, x# q. H7 k2 K}
7 f/ k* Z0 Q2 m' n2 ?else if(me.pp.number<=87 && me.pp.number>=84)6 d- y/ Q* m6 M6 U/ {: r5 n9 S
{+ C2 R% B* ^6 s* E: P4 @
lgg=4;7 @- V3 E9 o+ ]
me.pp.d[1]=4;2 j5 v$ U9 g2 s' w
}
" M& |. x& ]3 ~else if(me.pp.number<=91 && me.pp.number>=88)) w w, j) `* T& _ |
{
* Q' e, R$ f3 v4 e. X4 glgg=5;6 z2 @# D' a- d" v9 u2 S" E$ B7 z
me.pp.d[1]=5; W% P9 S3 `2 T) H% g# k5 X
}/ A3 h! r) A$ d7 V) ^. }
else if(me.pp.number<=95 && me.pp.number>=92)
; E; D) D: \6 h) @! z{
! M h9 }( b8 X, [9 ?/ Llgg=6;0 m# C. ?6 q. ^
me.pp.d[1]=6;
! o1 [4 v% c/ K; M' A8 k$ N}+ ~5 c; k4 k# R& |! x5 J
else if(me.pp.number<=99 && me.pp.number>=96)
3 l( r1 l3 k$ t7 v5 x! ]( J( M" [3 Z{
5 Q( x! z" k L6 V3 \lgg=7;, p. P7 H9 N+ c- s _7 n" R5 }. x
me.pp.d[1]=7;) u' N6 ?. z) c
}! P: M- [; f; ~! n7 G
else if(me.pp.number<=103 && me.pp.number>=100)