summaryrefslogtreecommitdiffstats
path: root/lskat/lskatproc/lskatproc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lskat/lskatproc/lskatproc.h')
-rw-r--r--lskat/lskatproc/lskatproc.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/lskat/lskatproc/lskatproc.h b/lskat/lskatproc/lskatproc.h
new file mode 100644
index 00000000..b5840461
--- /dev/null
+++ b/lskat/lskatproc/lskatproc.h
@@ -0,0 +1,104 @@
+/***************************************************************************
+ lskatproc.h - description
+ -------------------
+ begin : Sun Apr 9 2000
+ copyright : (C) 2000 by Martin Heni
+ email : martin@heni-online.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef LSKATPROC_H
+#define LSKATPROC_H
+#include <stdlib.h>
+#include <unistd.h>
+#include <time.h>
+#include <math.h>
+#include <string.h>
+
+#include "KInputChildProcess.h"
+
+/**
+ *@author Martin Heni
+ */
+
+
+
+#define LOWERT -999999999L
+#define SIEG_WERT 9999999L
+
+
+#define START_REK 1 // (0) 1:Nur Stellungsbewertung bei Level 1
+ // 0:Level 1 schon eine Rekursion
+
+typedef enum {Club=0,Spade=1,Heart=2,Diamond=3,Grand=4} CCOLOUR;
+typedef enum {Ace=0,King=1,Queen=2,Jack=3,Ten=4,Nine=5,Eight=6,Seven=7} CCARD;
+#define NO_OF_CARDS 32
+#define NO_OF_TILES 16
+#define NO_OF_TRUMPS 5
+
+class lgame
+{
+ public:
+ lgame();
+ lgame(lgame &game);
+ lgame &operator=(lgame &game);
+
+ int WonMove(int c1,int c2);
+ int CardValue(int card);
+ bool LegalMove(int p1, int p2);
+ void SetHeight(int player, int pos,int h);
+ int GetHeight(int player, int pos);
+ int GetCard(int player, int pos,int height);
+ int Value(int player);
+ void AddScore(int c1,int c2);
+ void SwitchStartplayer();
+ int MakeMove(int c,int pos);
+ void Init();
+ long random(long max);
+ int Subvalue(int side);
+ int ExtractGame(KEMessage *msg);
+
+ short currentplayer;
+ short startplayer;
+ int card[NO_OF_CARDS];
+ int cardheight[16];
+ int cardvalues[14];
+ short score[2];
+ CCOLOUR trump;
+ short movenumber;
+ int curmove[2];
+ bool endgame;
+ int played[NO_OF_CARDS]; // cards already played
+ short level;
+};
+
+
+class lskatproc : public KInputChildProcess
+{
+
+private:
+
+public:
+ lskatproc();
+ ~lskatproc();
+
+ virtual bool ReceiveMsg(KEMessage *msg,int id);
+
+
+ void initrandom();
+ int GetComputerMove(lgame game,short &x,short &y,int rek);
+ void SendDebug(const char *s);
+
+ private:
+ char buf[1024];
+};
+
+#endif