30 files changed, 980 insertions, 372 deletions
diff --git a/noncore/games/kcheckers/checkers.h b/noncore/games/kcheckers/checkers.h index bd2be08..2592fb1 100644 --- a/noncore/games/kcheckers/checkers.h +++ b/noncore/games/kcheckers/checkers.h @@ -1,56 +1,56 @@ #ifndef CHECKERS_H #define CHECKERS_H #define NONE 0 #define MAN1 1 #define KING1 2 #define FREE 3 #define KING2 4 #define MAN2 5 #define FULL 6 #define UL -6 #define UR -5 #define DL 5 #define DR 6 class Checkers { public: Checkers(int); virtual bool go1(int,int)=0; void go2(); bool checkMove1(); bool checkMove2(); virtual bool checkCapture1()=0; virtual bool checkCapture2()=0; void setLevel(int i) {levelmax=i;}; - int getBoard(int i) {return board[i];}; + + int board[54]; protected: int level; // Current level int levelmax; // Maximum level int turn(); void turn(int &,bool capture=false); int to; - int board[54]; int bestboard[54]; int bestcounter; virtual void kingMove2(int,int &)=0; virtual bool manCapture2(int,int &)=0; virtual bool kingCapture2(int,int,int &)=0; virtual bool manCapture1(int,int,bool &)=0; virtual bool kingCapture1(int,int,bool &)=0; }; #endif diff --git a/noncore/games/kcheckers/echeckers.h b/noncore/games/kcheckers/echeckers.h index 5ca3ecc..c3f7075 100644 --- a/noncore/games/kcheckers/echeckers.h +++ b/noncore/games/kcheckers/echeckers.h @@ -1,28 +1,28 @@ #ifndef ECHECKERS_H #define ECHECKERS_H -#include <checkers.h> +#include "checkers.h" class ECheckers:public Checkers { public: ECheckers(int skill):Checkers(skill){}; bool go1(int,int); bool checkCapture1(); bool checkCapture2(); private: void kingMove2(int,int &); bool manCapture1(int,int,bool &); bool kingCapture1(int,int,bool &); bool manCapture2(int,int &); bool kingCapture2(int,int,int &); }; #endif diff --git a/noncore/games/kcheckers/field.cpp b/noncore/games/kcheckers/field.cpp index 0755008..aacfc1c 100644 --- a/noncore/games/kcheckers/field.cpp +++ b/noncore/games/kcheckers/field.cpp @@ -1,31 +1,82 @@ #include <qpainter.h> #include "field.h" -Field::Field(QWidget *parent,int i):QWidget(parent) + +Field::Field(QWidget* parent,int i):QWidget(parent) { pixmap=new QPixmap(SIZE,SIZE); + CHECK_PTR(pixmap); number=i; + + pattern=NULL; + picture=NULL; + frame=NULL; } + void Field::paintEvent(QPaintEvent*) { bitBlt(this,0,0,pixmap); } + void Field::mousePressEvent(QMouseEvent* mouseevent) { if(mouseevent->button()!=Qt::LeftButton) return; emit click(number); } -void Field::draw(QImage *image) + +void Field::draw() { QPainter paint; paint.begin(pixmap); - paint.drawImage(0,0,*image); + + if(pattern) paint.drawImage(0,0,*pattern); + + if(label.length()) + { + paint.setPen(white); + paint.setFont(QFont(font().family(),10)); + paint.drawText(2,11,label); + } + + if(picture) paint.drawImage(0,0,*picture); + + if(frame) paint.drawImage(0,0,*frame); + paint.end(); update(); } + +void Field::setFrame(QImage* image) +{ + frame=image; + draw(); +} + + +void Field::setPicture(QImage* image) +{ + picture=image; + draw(); +} + + +void Field::setPattern(QImage* image) +{ + pattern=image; + draw(); +} + + +void Field::setLabel(const QString & string) +{ + label=string; + draw(); +} + + diff --git a/noncore/games/kcheckers/field.h b/noncore/games/kcheckers/field.h index d929e49..297d94e 100644 --- a/noncore/games/kcheckers/field.h +++ b/noncore/games/kcheckers/field.h @@ -1,27 +1,44 @@ #ifndef FIELD_H #define FIELD_H #include <qwidget.h> #include <qpixmap.h> #define SIZE 28 class Field:public QWidget { Q_OBJECT public: Field(QWidget*,int); - void draw(QImage*); + + void setFrame(QImage*); + void setPicture(QImage*); + void setPattern(QImage*); + void setLabel(const QString &); + signals: void click(int); + protected: void paintEvent(QPaintEvent*); void mousePressEvent(QMouseEvent*); + private: + void draw(); + int number; + + // pixmap = pattern + label + picture + frame; + + QImage* frame; + QImage* picture; + QImage* pattern; + QString label; + QPixmap *pixmap; }; #endif diff --git a/noncore/games/kcheckers/kcheckers.cpp b/noncore/games/kcheckers/kcheckers.cpp index 3df744e..c2eba0d 100644 --- a/noncore/games/kcheckers/kcheckers.cpp +++ b/noncore/games/kcheckers/kcheckers.cpp @@ -1,382 +1,586 @@ #include <qimage.h> #include <qframe.h> #include <qlayout.h> #include <qmenubar.h> +#include <qtoolbar.h> +#include <qpe/config.h> #include <qwhatsthis.h> +#include <qtoolbutton.h> #include <qmessagebox.h> #include <qapplication.h> #include "kcheckers.h" #include "echeckers.h" #include "rcheckers.h" -#include "pics/exit.xpm" #include "pics/logo.xpm" +#include "pics/undo.xpm" +#include "pics/exit.xpm" +#include "pics/help.xpm" #include "pics/wood1.xpm" #include "pics/wood2.xpm" #include "pics/wood3.xpm" +#include "pics/green1.xpm" +#include "pics/green2.xpm" +#include "pics/green3.xpm" #include "pics/marble1.xpm" #include "pics/marble2.xpm" #include "pics/marble3.xpm" #include "pics/biglogo.xpm" #include "pics/man_black.xpm" #include "pics/man_white.xpm" #include "pics/king_black.xpm" #include "pics/king_white.xpm" #include "pics/contexthelp.xpm" +QString KCheckers::enNumeration="1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829303132"; +QString KCheckers::ruNumeration="B8D8F8H8A7C7E7G7B6D6F6H6A5C5E5G5B4D4F4H4A3C3E3G3B2D2F2H2A1C1E1G1"; + const int KCheckers::t[]={6,7,8,9,11,12,13,14,17,18,19,20,22,23, 24,25,28,29,30,31,33,34,35,36,39,40,41,42,44,45,46,47}; + KCheckers::KCheckers():QMainWindow(0,0,WStyle_DialogBorder) { setCaption("KCheckers"); - setIcon(QPixmap(biglogo)); - showMaximized(); + setIcon(QPixmap(biglogo_xpm)); + + setToolBarsMovable(false); + + // Make a menubar + + gameMenu=new QPopupMenu; + CHECK_PTR(gameMenu); - QPopupMenu* gameMenu=new QPopupMenu; - gameMenu->insertItem(QPixmap(logo),tr("New"),this,SLOT(newGame())); + gameMenu->insertItem(QPixmap(logo_xpm),tr("&New"),this,SLOT(newGame()),CTRL+Key_N); gameMenu->insertSeparator(); - gameMenu->insertItem(QPixmap(exit),tr("Quit"),qApp,SLOT(quit())); + undoID=gameMenu->insertItem(QPixmap(undo_xpm),tr("&Undo Move"),this,SLOT(undoMove()),CTRL+Key_Z); + gameMenu->insertSeparator(); + gameMenu->insertItem(QPixmap(exit_xpm),tr("&Quit"),qApp,SLOT(closeAllWindows()),CTRL+Key_Q); skillMenu=new QPopupMenu; + CHECK_PTR(skillMenu); - skillMenu->insertItem(tr("Beginner"),this,SLOT(setSkillBeginner()),0,BEGINNER); - skillMenu->insertItem(tr("Novice"), this,SLOT(setSkillNovice()), 0,NOVICE); - skillMenu->insertItem(tr("Average"), this,SLOT(setSkillAverage()), 0,AVERAGE); - skillMenu->insertItem(tr("Good"), this,SLOT(setSkillGood()), 0,GOOD); - skillMenu->insertItem(tr("Expert"), this,SLOT(setSkillExpert()), 0,EXPERT); - skillMenu->insertItem(tr("Master"), this,SLOT(setSkillMaster()), 0,MASTER); + skillMenu->insertItem(tr("&Beginner"),this,SLOT(setSkillBeginner()),CTRL+Key_1,BEGINNER); + skillMenu->insertItem(tr("&Novice"), this,SLOT(setSkillNovice()), CTRL+Key_2,NOVICE); + skillMenu->insertItem(tr("&Average"), this,SLOT(setSkillAverage()), CTRL+Key_3,AVERAGE); + skillMenu->insertItem(tr("&Good"), this,SLOT(setSkillGood()), CTRL+Key_4,GOOD); + skillMenu->insertItem(tr("&Expert"), this,SLOT(setSkillExpert()), CTRL+Key_5,EXPERT); + skillMenu->insertItem(tr("&Master"), this,SLOT(setSkillMaster()), CTRL+Key_6,MASTER); optionsMenu=new QPopupMenu; + CHECK_PTR(optionsMenu); - optionsMenu->insertItem(tr("English Rules"),this,SLOT(setRulesEnglish()),0,ENGLISH); - optionsMenu->insertItem(tr("Russian Rules"),this,SLOT(setRulesRussian()),0,RUSSIAN); + numID=optionsMenu->insertItem(tr("&Show Numeration"),this,SLOT(showNumeration())); + optionsMenu->insertSeparator(); + optionsMenu->insertItem(tr("&English Rules"),this,SLOT(setRulesEnglish()),0,ENGLISH); + optionsMenu->insertItem(tr("&Russian Rules"),this,SLOT(setRulesRussian()),0,RUSSIAN); optionsMenu->insertSeparator(); - optionsMenu->insertItem(tr("Marble Board"),this,SLOT(setPatternMarble()),0,MARBLE); - optionsMenu->insertItem(tr("Wooden Board"),this,SLOT(setPatternWood()), 0,WOOD); + optionsMenu->insertItem(tr("&Green Board"), this,SLOT(setPatternGreen()), 0,GREEN); + optionsMenu->insertItem(tr("&Marble Board"),this,SLOT(setPatternMarble()),0,MARBLE); + optionsMenu->insertItem(tr("&Wooden Board"),this,SLOT(setPatternWooden()),0,WOODEN); QPopupMenu* helpMenu=new QPopupMenu; + CHECK_PTR(helpMenu); - helpMenu->insertItem(QPixmap(contexthelp),tr("What's This"),this,SLOT(whatsThis())); + helpMenu->insertItem(QPixmap(contexthelp_xpm),tr("What's This"),this,SLOT(whatsThis()),SHIFT+Key_F1); + helpMenu->insertItem(QPixmap(help_xpm),tr("&Rules of Play"),this,SLOT(help()),Key_F1); helpMenu->insertSeparator(); - helpMenu->insertItem(QPixmap(logo),tr("About KCheckers"),this,SLOT(about())); + helpMenu->insertItem(QPixmap(logo_xpm),tr("&About KCheckers"),this,SLOT(about())); helpMenu->insertItem(tr("About &Qt"),this,SLOT(aboutQt())); - menuBar()->insertItem(tr("Game"), gameMenu); - menuBar()->insertItem(tr("Skill"), skillMenu); - menuBar()->insertItem(tr("Options"),optionsMenu); - menuBar()->insertItem(tr("Help"), helpMenu); + QToolBar* menuToolBar=new QToolBar(this); + CHECK_PTR(menuToolBar); + QMenuBar* menuBar=new QMenuBar(menuToolBar); + CHECK_PTR(menuBar); - skill=NOVICE; - skillMenu->setItemChecked(skill,true); + menuBar->insertItem(tr("&Game"), gameMenu); + menuBar->insertItem(tr("&Skill"), skillMenu); + menuBar->insertItem(tr("&Options"),optionsMenu); + menuBar->insertItem(tr("&Help"), helpMenu); - rules=ENGLISH; + // Restore a settings + + readConfig(); + + skillMenu->setItemChecked(skill,true); optionsMenu->setItemChecked(rules,true); + optionsMenu->setItemChecked(numID,false); - pattern=WOOD; - optionsMenu->setItemChecked(pattern,true); + // Make a toolbar + + QToolBar* emptyToolBar=new QToolBar(this); + emptyToolBar->setHorizontalStretchable(true); + + QToolBar* toolBar=new QToolBar(this); + CHECK_PTR(toolBar); + + QSize buttonSize(24,24); + + QToolButton* gameButton=new QToolButton(QPixmap(logo_xpm),tr(" New Game ") ,"",this,SLOT(newGame()),toolBar); + CHECK_PTR(gameButton); + gameButton->setMinimumSize(buttonSize); + + undoButton=new QToolButton(QPixmap(undo_xpm),tr(" Undo Move "),"",this,SLOT(undoMove()),toolBar); + CHECK_PTR(undoButton); + undoButton->setMinimumSize(buttonSize); - imageMan1=new QImage(man_black); - imageMan2=new QImage(man_white); - imageKing1=new QImage(king_black); - imageKing2=new QImage(king_white); + QToolButton* helpButton=new QToolButton(QPixmap(help_xpm),tr(" Rules of Play "),"",this,SLOT(help()),toolBar); + CHECK_PTR(helpButton); + helpButton->setMinimumSize(buttonSize); - imageWood1=new QImage(wood1); - imageWood2=new QImage(wood2); - imageWood3=new QImage(wood3); - imageMarble1=new QImage(marble1); - imageMarble2=new QImage(marble2); - imageMarble3=new QImage(marble3); + // Make a checkers board - imagePat1=imageWood1; - imagePat2=imageWood2; - imageFrame=imageWood3; + imageMan1=new QImage(man_black_xpm); CHECK_PTR(imageMan1); + imageMan2=new QImage(man_white_xpm); CHECK_PTR(imageMan2); + imageKing1=new QImage(king_black_xpm); CHECK_PTR(imageKing1); + imageKing2=new QImage(king_white_xpm); CHECK_PTR(imageKing2); + + imageWood1=new QImage(wood1_xpm); CHECK_PTR(imageWood1); + imageWood2=new QImage(wood2_xpm); CHECK_PTR(imageWood2); + imageWood3=new QImage(wood3_xpm); CHECK_PTR(imageWood3); + imageGreen1=new QImage(green1_xpm); CHECK_PTR(imageGreen1); + imageGreen2=new QImage(green2_xpm); CHECK_PTR(imageGreen2); + imageGreen3=new QImage(green3_xpm); CHECK_PTR(imageGreen3); + imageMarble1=new QImage(marble1_xpm); CHECK_PTR(imageMarble1); + imageMarble2=new QImage(marble2_xpm); CHECK_PTR(imageMarble2); + imageMarble3=new QImage(marble3_xpm); CHECK_PTR(imageMarble3); QWidget* centralWidget=new QWidget(this); setCentralWidget(centralWidget); QFrame* frame=new QFrame(centralWidget); + CHECK_PTR(frame); frame->setFrameStyle(QFrame::Box|QFrame::Plain); frame->setFixedSize(SIZE*8+2,SIZE*8+2); + statusLabel = new QLabel(centralWidget); + statusLabel->setAlignment(Qt::AlignHCenter); + QVBoxLayout* vlayout=new QVBoxLayout(centralWidget); - vlayout->addWidget(frame); - statusLabel = new QLabel(centralWidget); + vlayout->addStretch(); + vlayout->addWidget(frame); + vlayout->addStretch(); vlayout->addWidget(statusLabel); + vlayout->addStretch(); - for(int i=0;i<64;i++) field[i]=new Field(frame,i); + for(int i=0;i<64;i++) + { + field[i]=new Field(frame,i); + CHECK_PTR(field[i]); + } QGridLayout* grid=new QGridLayout(frame,8,8,1,0); + CHECK_PTR(grid); for(int i=0;i<4;i++) { for(int k=0;k<4;k++) { grid->addWidget(field[i*8+k+32],i*2, k*2 ); grid->addWidget(field[i*8+k ],i*2, k*2+1); grid->addWidget(field[i*8+k+4 ],i*2+1,k*2 ); grid->addWidget(field[i*8+k+36],i*2+1,k*2+1); } } for(int i=0;i<32;i++) connect(field[i],SIGNAL(click(int)),this,SLOT(click(int))); + selected=false; + + setPattern(pattern); + + QWhatsThis::add(frame,"A checkers board"); + userFirst=false; game=NULL; newGame(); } +void KCheckers::readConfig() +{ + Config config("KCheckers"); + config.setGroup("KCheckers"); + QString entry; + + entry=config.readEntry("skill","novice"); + if(entry=="beginner") skill=BEGINNER; + else if(entry=="average") skill=AVERAGE; + else if(entry=="good") skill=GOOD; + else if(entry=="expert") skill=EXPERT; + else if(entry=="master") skill=MASTER; + else skill=NOVICE; + + entry=config.readEntry("rules","english"); + if(entry=="russian") rules=RUSSIAN; + else rules=ENGLISH; + + entry=config.readEntry("theme","wooden"); + if(entry=="green") pattern=GREEN; + else if(entry=="marble") pattern=MARBLE; + else pattern=WOODEN; +} + + +void KCheckers::closeEvent(QCloseEvent* event) +{ + Config config("KCheckers"); + config.setGroup("KCheckers"); + QString entry; + + if(skill==BEGINNER) entry="beginner"; + if(skill==NOVICE) entry="novice"; + if(skill==AVERAGE) entry="average"; + if(skill==GOOD) entry="good"; + if(skill==EXPERT) entry="expert"; + if(skill==MASTER) entry="master"; + config.writeEntry("skill",entry); + + if(rules==ENGLISH) entry="english"; + if(rules==RUSSIAN) entry="russian"; + config.writeEntry("rules",entry); + + if(pattern==GREEN) entry="green"; + if(pattern==MARBLE) entry="marble"; + if(pattern==WOODEN) entry="wooden"; + config.writeEntry("theme",entry); + + event->accept(); +} + + void KCheckers::setSkill(int set) { skillMenu->setItemChecked(skill,false); skill=set; skillMenu->setItemChecked(skill,true); game->setLevel(skill); } void KCheckers::setRules(int set) { optionsMenu->setItemChecked(rules,false); rules=set; optionsMenu->setItemChecked(rules,true); colorChange(); newGame(); } void KCheckers::setPattern(int set) { optionsMenu->setItemChecked(pattern,false); pattern=set; optionsMenu->setItemChecked(pattern,true); switch(pattern) { + case GREEN: + imagePat1=imageGreen1; + imagePat2=imageGreen2; + imageFrame=imageGreen3; + break; case MARBLE: imagePat1=imageMarble1; imagePat2=imageMarble2; imageFrame=imageMarble3; break; - case WOOD: + case WOODEN: imagePat1=imageWood1; imagePat2=imageWood2; imageFrame=imageWood3; } - drawBoard(); + for(int i=0; i<32;i++) field[i]->setPattern(imagePat2); + for(int i=32;i<64;i++) field[i]->setPattern(imagePat1); + + if(selected) field[from]->setFrame(imageFrame); +} + - if(selected) field[from]->draw(imageFrame); +void KCheckers::showNumeration() +{ + if(optionsMenu->isItemChecked(numID)) + { + optionsMenu->setItemChecked(numID,false); + for(int i=0;i<32;i++) field[i]->setLabel(""); + } + else + { + optionsMenu->setItemChecked(numID,true); + drawNumeration(); + } +} + + +void KCheckers::drawNumeration() +{ + if(rules==ENGLISH) + { + if(userFirst) + for(int i=0;i<32;i++) + field[i]->setLabel(enNumeration.mid(i*2,2)); + else + for(int i=0;i<32;i++) + field[i]->setLabel(enNumeration.mid(62-i*2,2)); + } + else + { + if(userFirst) + for(int i=0;i<32;i++) + field[i]->setLabel(ruNumeration.mid(i*2,2)); + else + for(int i=0;i<32;i++) + field[i]->setLabel(ruNumeration.mid(62-i*2,2)); + } +} + + +void KCheckers::drawBoard(int i) +{ + switch(game->board[t[i]]) + { + case MAN1: + field[i]->setPicture(imageMan1); + break; + case MAN2: + field[i]->setPicture(imageMan2); + break; + case KING1: + field[i]->setPicture(imageKing1); + break; + case KING2: + field[i]->setPicture(imageKing2); + break; + default: + field[i]->setPicture(NULL); + } +} + + +void KCheckers::help() +{ + QMessageBox::information(this,"Rules of Play", + "In the beginning of game you have\n" + "12 checkers (men).\n" + "The men move forward only.\n" + "The men can capture:\n" + "- by jumping forward only (english\n" + " rules);\n" + "- by jumping forward or backward\n" + " (russian rules).\n" + "A man which reaches the far side of\n" + "the board becomes a king.\n" + "The kings move forward or\n" + "backward:\n" + "- to one square only (english rules);\n" + "- to any number of squares (russian\n" + " rules).\n" + "The kings capture by jumping\n" + "forward or backward.\n" + "Whenever a player is able to make a\n" + "capture he must do so.", + QMessageBox::Ok|QMessageBox::Default); } void KCheckers::about() { - QMessageBox::about(this, "About", - "KCheckers, a board game. Ver 0.2\n" - "(C) 2002, A. Peredri <andi@ukr.net>\n\n" - "http://kcheckers.tuxfamily.org\n\n" - "Opie version by S.Prud'homme\n" - "<prudhomme@laposte.net>\n\n" - "http://opie.handhelds.org\n\n" - "This program is distributed under the\n" - "terms of the GNU General Public\n" - "License."); + QMessageBox::about(this,"About KCheckers", + "KCheckers, a board game. Ver 0.3\n" + "(C) 2002, A. Peredri <andi@ukr.net>\n\n" + "http://kcheckers.tuxfamily.org\n\n" + "Contributors:\n" + "S. Rosen <srosen@erols.com>\n\n" + "Qtopia version: S.Prud'homme\n" + "<prudhomme@laposte.net>\n\n" + "This program is distributed under the\n" + "terms of the GNU General Public\n" + "License."); } void KCheckers::aboutQt() { QMessageBox::aboutQt(this); } void KCheckers::newGame() { - if(game) - { - delete game; - QWhatsThis::remove(this); - } + if(game) delete game; switch(rules) { case ENGLISH: game=new ECheckers(skill); - QWhatsThis::add(this, - "<b>Rules of English Checkers</b>" - "<ul>" - "<li>In the beginning of game you have<br>12 checkers (men)." - "<li>Men move forward only." - "<li>Men capture by jumping forward only." - "<li>A man which reaches the far side of<br>the board becomes a king." - "<li>Kings move forward or backward to<br>one square." - "<li>Kings capture by jumping forward or<br>backward." - "<li>Whenever a player is able to make<br> a capture he must do so." - "</ul>"); + CHECK_PTR(game); break; + case RUSSIAN: game=new RCheckers(skill); - QWhatsThis::add(this, - "<b>Rules of Russian Checkers</b>" - "<ul>" - "<li>In the beginning of game you have<br> 12 checkers (men)." - "<li>Men move forward only." - "<li>Men capture by jumping forward or<br>backward." - "<li>A man which reaches the far side of<br> the board becomes a king." - "<li>Kings move forward or backward to<br>any number of squares." - "<li>Kings capture by jumping forward or<br>backward." - "<li>Whenever a player is able to make<br> a capture he must do so." - "</ul>"); + CHECK_PTR(game); } - selected=false; + unselect(); gameOver=false; + gameMenu->setItemEnabled(undoID,false); + undoButton->setEnabled(false); + colorChange(); - drawBoard(); + + for(int i=0;i<32;i++) drawBoard(i); + if(optionsMenu->isItemChecked(numID)) drawNumeration(); if(!userFirst) compGo(); statusLabel->setText(tr("Go!")); } +// Undo the last computer and user moves + +void KCheckers::undoMove() +{ + for(int i=0;i<32;i++) + { + game->board[t[i]]=undoBoard[i]; + drawBoard(i); + } + + unselect(); + gameOver=false; + + gameMenu->setItemEnabled(undoID,false); + undoButton->setEnabled(false); + + statusLabel->setText(tr("Go!")); +} + + void KCheckers::colorChange() { userFirst=!userFirst; QImage* image; image=imageMan1; imageMan1=imageMan2; imageMan2=image; image=imageKing1; imageKing1=imageKing2; imageKing2=image; } -void KCheckers::drawBoard() +void KCheckers::unselect() { - // Drawing of start position - for(int i=0;i<32;i++) - { - field[i]->draw(imagePat2); - if(game->getBoard(t[i])==MAN1) field[i]->draw(imageMan1); - else if(game->getBoard(t[i])==MAN2) field[i]->draw(imageMan2); - else if(game->getBoard(t[i])==KING1) field[i]->draw(imageKing1); - else if(game->getBoard(t[i])==KING2) field[i]->draw(imageKing2); - } - - for(int i=32;i<64;i++) field[i]->draw(imagePat1); + if(selected) field[from]->setFrame(NULL); + selected=false; } void KCheckers::click(int fieldNumber) { if(gameOver) return; - switch(game->getBoard(t[fieldNumber])) + switch(game->board[t[fieldNumber]]) { case MAN1: case KING1: // User selected if(!selected) { from=fieldNumber; selected=true; - field[fieldNumber]->draw(imageFrame); + field[fieldNumber]->setFrame(imageFrame); return; } // User reselected else { - field[from]->draw(imagePat2); - if(game->getBoard(t[from])==MAN1) field[from]->draw(imageMan1); - else field[from]->draw(imageKing1); + field[from]->setFrame(NULL); from=fieldNumber; - field[fieldNumber]->draw(imageFrame); + field[fieldNumber]->setFrame(imageFrame); return; } case FREE: if(!selected) return; if(!userGo(fieldNumber)) return; - selected=false; + + unselect(); if(!(game->checkMove2() || game->checkCapture2())) { gameOver=true; statusLabel->setText(tr("Congratulation! You have won!")); return; } statusLabel->setText(tr("Please wait...")); qApp->processEvents(); compGo(); if(!(game->checkMove1() || game->checkCapture1())) { gameOver=true; statusLabel->setText(tr("You have lost. Game over.")); return; } statusLabel->setText(tr("Go!")); } } void KCheckers::compGo() { int save[32]; - for(int i=0;i<32;i++) save[i]=game->getBoard(t[i]); + for(int i=0;i<32;i++) save[i]=game->board[t[i]]; game->go2(); for(int i=0;i<32;i++) { - if(game->getBoard(t[i])==save[i]) continue; - field[i]->draw(imagePat2); - if(game->getBoard(t[i])==MAN1) field[i]->draw(imageMan1); - else if(game->getBoard(t[i])==MAN2) field[i]->draw(imageMan2); - else if(game->getBoard(t[i])==KING1) field[i]->draw(imageKing1); - else if(game->getBoard(t[i])==KING2) field[i]->draw(imageKing2); + if(game->board[t[i]]==save[i]) continue; + drawBoard(i); } } bool KCheckers::userGo(int to) { int save[32]; - for(int i=0;i<32;i++) save[i]=game->getBoard(t[i]); + for(int i=0;i<32;i++) save[i]=game->board[t[i]]; if(!game->go1(t[from],t[to])) { statusLabel->setText(tr("Incorrect course.")); return false; } + for(int i=0;i<32;i++) undoBoard[i]=save[i]; + gameMenu->setItemEnabled(undoID,true); + undoButton->setEnabled(true); + for(int i=0;i<32;i++) { - if(game->getBoard(t[i])==save[i]) continue; - field[i]->draw(imagePat2); - if(game->getBoard(t[i])==MAN1) field[i]->draw(imageMan1); - else if(game->getBoard(t[i])==MAN2) field[i]->draw(imageMan2); - else if(game->getBoard(t[i])==KING1) field[i]->draw(imageKing1); - else if(game->getBoard(t[i])==KING2) field[i]->draw(imageKing2); + if(game->board[t[i]]==save[i]) continue; + drawBoard(i); } + return true; } diff --git a/noncore/games/kcheckers/kcheckers.h b/noncore/games/kcheckers/kcheckers.h index e86524f..ccf5bae 100644 --- a/noncore/games/kcheckers/kcheckers.h +++ b/noncore/games/kcheckers/kcheckers.h @@ -1,97 +1,125 @@ #ifndef KCHECKERS_H #define KCHECKERS_H #include <qmainwindow.h> #include <qlabel.h> #include "field.h" #include "checkers.h" -#define WOOD 1 -#define MARBLE 2 +#define WOODEN 1 +#define GREEN 2 +#define MARBLE 3 #define ENGLISH 11 #define RUSSIAN 12 #define BEGINNER 2 #define NOVICE 4 -#define AVERAGE 5 -#define GOOD 6 -#define EXPERT 7 -#define MASTER 8 +#define AVERAGE 6 +#define GOOD 7 +#define EXPERT 8 +#define MASTER 9 + +class QToolButton; class KCheckers:public QMainWindow { Q_OBJECT public: KCheckers(); + protected: + void closeEvent(QCloseEvent*); + private slots: + + void help(); void about(); void aboutQt(); void newGame(); - void click(int); // Processes the mouse clics on fields + void undoMove(); + void click(int); + void showNumeration(); void setSkillBeginner() {setSkill(BEGINNER);}; void setSkillNovice() {setSkill(NOVICE);}; void setSkillAverage() {setSkill(AVERAGE);}; void setSkillGood() {setSkill(GOOD);}; void setSkillExpert() {setSkill(EXPERT);}; void setSkillMaster() {setSkill(MASTER);}; - void setPatternWood() {setPattern(WOOD);}; + void setPatternWooden() {setPattern(WOODEN);}; + void setPatternGreen() {setPattern(GREEN);}; void setPatternMarble() {setPattern(MARBLE);}; void setRulesEnglish() {setRules(ENGLISH);}; void setRulesRussian() {setRules(RUSSIAN);}; private: + void compGo(); bool userGo(int); - void drawBoard(); + void drawBoard(int); + void drawNumeration(); void colorChange(); + void unselect(); + void readConfig(); void setSkill(int); void setRules(int); void setPattern(int); int from; // Selected by user int skill; int rules; int pattern; + + int numID; // Show Numeration + int undoID; // Undo Move + int undoBoard[32]; + bool gameOver; bool selected; bool userFirst; Field* field[64]; // Fields of board QImage* imagePat1; // Patterns QImage* imagePat2; QImage* imageFrame; // Frame of selected field QImage* imageWood1; QImage* imageWood2; QImage* imageWood3; + QImage* imageGreen1; + QImage* imageGreen2; + QImage* imageGreen3; QImage* imageMarble1; QImage* imageMarble2; QImage* imageMarble3; QImage* imageMan1; QImage* imageMan2; QImage* imageKing1; QImage* imageKing2; - Checkers* game; - QPopupMenu* skillMenu; - QPopupMenu* optionsMenu; - QLabel* statusLabel; + Checkers* game; + QPopupMenu* gameMenu; + QPopupMenu* skillMenu; + QPopupMenu* optionsMenu; + QToolButton* undoButton; + QLabel* statusLabel; + + static QString enNumeration; + static QString ruNumeration; static const int t[32]; // Translate table }; #endif diff --git a/noncore/games/kcheckers/kcheckers.pro b/noncore/games/kcheckers/kcheckers.pro index bdbb46e..5892d3c 100644 --- a/noncore/games/kcheckers/kcheckers.pro +++ b/noncore/games/kcheckers/kcheckers.pro @@ -1,32 +1,31 @@ TEMPLATE = app CONFIG = qt warn_on release HEADERS = checkers.h \ echeckers.h \ field.h \ kcheckers.h \ rcheckers.h SOURCES = checkers.cpp \ echeckers.cpp \ field.cpp \ kcheckers.cpp \ main.cpp \ rcheckers.cpp INTERFACES = -INCLUDEPATH += . \ - $(OPIEDIR)/include +INCLUDEPATH += $(OPIEDIR)/include LIBS += -lqpe DESTDIR = $(OPIEDIR)/bin TARGET = kcheckers TRANSLATIONS = ../../i18n/pt_BR/kcheckers.ts TRANSLATIONS += ../../i18n/de/kcheckers.ts TRANSLATIONS += ../../i18n/en/kcheckers.ts TRANSLATIONS += ../../i18n/hu/kcheckers.ts TRANSLATIONS += ../../i18n/sl/kcheckers.ts TRANSLATIONS += ../../i18n/pl/kcheckers.ts TRANSLATIONS += ../../i18n/ja/kcheckers.ts TRANSLATIONS += ../../i18n/ko/kcheckers.ts TRANSLATIONS += ../../i18n/no/kcheckers.ts TRANSLATIONS += ../../i18n/zh_CN/kcheckers.ts TRANSLATIONS += ../../i18n/zh_TW/kcheckers.ts TRANSLATIONS += ../../i18n/fr/kcheckers.ts diff --git a/noncore/games/kcheckers/main.cpp b/noncore/games/kcheckers/main.cpp index ac86271..b8dd620 100644 --- a/noncore/games/kcheckers/main.cpp +++ b/noncore/games/kcheckers/main.cpp @@ -1,18 +1,18 @@ #include <qpe/qpeapplication.h> #include <qfont.h> #include "kcheckers.h" int main(int argc, char *argv[]) { QPEApplication app(argc,argv); KCheckers kcheckers; app.setMainWidget(&kcheckers); - kcheckers.show(); + kcheckers.showMaximized(); return app.exec(); } diff --git a/noncore/games/kcheckers/opie-kcheckers.control b/noncore/games/kcheckers/opie-kcheckers.control index 30ee336..a1b0503 100644 --- a/noncore/games/kcheckers/opie-kcheckers.control +++ b/noncore/games/kcheckers/opie-kcheckers.control @@ -1,10 +1,10 @@ Files: bin/kcheckers apps/Games/kcheckers.desktop pics/kcheckers Package: opie-kcheckers Priority: optional Section: opie/games Maintainer: leseb <prudhomme@laposte.net> Architecture: arm -Version: 0.2-$SUB_VERSION +Version: 0.3-$SUB_VERSION Depends: opie-base ($QPE_VERSION) Description: The game of Checkers A game for the Opie environment. diff --git a/noncore/games/kcheckers/pics/biglogo.xpm b/noncore/games/kcheckers/pics/biglogo.xpm index 6570d88..1ca8ab1 100644 --- a/noncore/games/kcheckers/pics/biglogo.xpm +++ b/noncore/games/kcheckers/pics/biglogo.xpm @@ -1,41 +1,40 @@ /* XPM */ -static const char *biglogo[]={ -"32 32 6 1", +static const char *biglogo_xpm[]={ +"32 32 5 1", ". c None", "# c #000000", -"a c #303030", -"d c #d7d7d7", -"c c #eaeaea", -"b c #ffffff", +"c c #d7d7d7", +"b c #eaeaea", +"a c #ffffff", "................................", "................................", "................................", "................................", "....########################....", -"....#aaaaaaaaaaaaaaaaaaaaaa#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbbbbbcbc##########a#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbbbcbcbc##########a#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbcbcbcbc##########a#....", -"....#abbbbbbbbbc##########a#....", -"....#abcbcbcbbcc##########a#....", -"....#abbbbbbbccc##########a#....", -"....#abcbcbccccc##########a#....", -"....#a##########cccccccccca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccccccdca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccccdcdca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccdcdcdca#....", -"....#a##########cccccccccda#....", -"....#a##########ccdcdcdcdca#....", -"....#a##########cccccccdcda#....", -"....#aaaaaaaaaaaaaaaaaaaaaa#....", +"....########################....", +"....##aaaaaaaaaa############....", +"....##aaaaaaabab############....", +"....##aaaaaaaaaa############....", +"....##aaaaababab############....", +"....##aaaaaaaaaa############....", +"....##aaabababab############....", +"....##aaaaaaaaab############....", +"....##abababaabb############....", +"....##aaaaaaabbb############....", +"....##abababbbbb############....", +"....############bbbbbbbbbb##....", +"....############bbbbbbbbbb##....", +"....############bbbbbbbbcb##....", +"....############bbbbbbbbbb##....", +"....############bbbbbbcbcb##....", +"....############bbbbbbbbbb##....", +"....############bbbbcbcbcb##....", +"....############bbbbbbbbbc##....", +"....############bbcbcbcbcb##....", +"....############bbbbbbbcbc##....", +"....########################....", "....########################....", "................................", "................................", "................................", "................................"}; diff --git a/noncore/games/kcheckers/pics/contexthelp.xpm b/noncore/games/kcheckers/pics/contexthelp.xpm index 9447207..bc455e2 100644 --- a/noncore/games/kcheckers/pics/contexthelp.xpm +++ b/noncore/games/kcheckers/pics/contexthelp.xpm @@ -1,20 +1,22 @@ /* XPM */ -static const char *contexthelp[]={ -"14 14 3 1", +static const char *contexthelp_xpm[]={ +"16 16 3 1", ". c None", "a c #000000", "# c #ffffff", -"##............", -"#a#...........", -"#aa#.....aaaa.", -"#aaa#...aa..aa", -"#aaaa#......aa", -"#aaaaa#.....aa", -"#aaaaaa#...aa.", -"#aaaaaaa#.aa..", -"#aaaa###..aa..", -"#a##a#........", -"##..#a#...aa..", -"....#a#.......", -".....#........", -".............."}; +"................", +".##.............", +".#a#............", +".#aa#.....aaaa..", +".#aaa#...aa..aa.", +".#aaaa#......aa.", +".#aaaaa#.....aa.", +".#aaaaaa#...aa..", +".#aaaaaaa#.aa...", +".#aaaa###..aa...", +".#a##a#.........", +".##..#a#...aa...", +".....#a#........", +"......#.........", +"................", +"................"}; diff --git a/noncore/games/kcheckers/pics/exit.xpm b/noncore/games/kcheckers/pics/exit.xpm index 6fe404e..e4a31dc 100644 --- a/noncore/games/kcheckers/pics/exit.xpm +++ b/noncore/games/kcheckers/pics/exit.xpm @@ -1,21 +1,23 @@ /* XPM */ -static const char *exit[]={ -"14 14 4 1", +static const char *exit_xpm[]={ +"16 16 4 1", ". c None", "# c #000000", "a c #303030", "b c #757575", -"..............", -"......##......", -"......##......", -"...#..##..#...", -"..a##.##.##a..", -".b##..##..##b.", -".a#b..##..b#a.", -".##...##...##.", -".##...##...##.", -".a#b..##..b#a.", -".b##......##b.", -"..a##b..b##a..", -"...a######a...", -"....ba##ab...."}; +"................", +".......##.......", +".......##.......", +"....#..##..#....", +"...a##.##.##a...", +"..b##..##..##b..", +"..a#b..##..b#a..", +"..##...##...##..", +"..##...##...##..", +"..a#b..##..b#a..", +"..b##......##b..", +"...a##b..b##a...", +"....a######a....", +".....ba##ab.....", +"................", +"................"}; diff --git a/noncore/games/kcheckers/pics/green1.xpm b/noncore/games/kcheckers/pics/green1.xpm new file mode 100644 index 0000000..208bdfb --- a/dev/null +++ b/noncore/games/kcheckers/pics/green1.xpm @@ -0,0 +1,62 @@ +/* XPM */ +static const char *green1_xpm[]={ +"32 32 27 1", +"y c #6db06d", +"v c #70b370", +"s c #71b471", +"x c #73b673", +"w c #74b774", +"j c #76b976", +"l c #77ba77", +"c c #79ba79", +"o c #7abb7a", +"m c #7bbe7b", +"d c #7cbf7c", +"i c #7ebf7e", +"a c #7fc07f", +"e c #80c180", +"k c #81c281", +"b c #82c382", +"# c #84c584", +". c #85c685", +"f c #86c786", +"g c #88c788", +"n c #88c988", +"r c #89ca89", +"q c #8bca8b", +"u c #8dcc8d", +"p c #8ecd8e", +"t c #90cd90", +"h c #91ce91", +".#a.abcacdefghabijgbf.ajdkbb.fgl", +"abadadbamefffnadaijfffkcjoeka..l", +"keaiaoakm#ggagpabaoaakabkmdammba", +"mmmdmjijmebgifqadbfjdaik#mddbaak", +"aamaajaoliab.brradgmcbambabaakba", +"baadaaaksmae.bgttpgaoakijff.fdak", +"g.bcabaaakabk.gnpnnkomdaobb#f.bl", +"f.#adakabaik#b.ggggf.#ammgmk..fl", +"f#kkkijadbambae.abfgfamaebaake#l", +"ff#.baoaoaklekkbadffaboakijojobl", +"ggk#bbakomdadeaak.nnadeicaocmegl", +"gngkgggf.#aakabkiabunnabavldmaij", +"fgabaffbdwjdaik#aadggfkaklmxjxao", +"ffkakgfbaomcbaabaa.ffbaaemiocmak", +"gfkbf#bakkaoakkejabaawcmdmiididl", +"rgkk..gbebkomdadbadmlwbalmmdekay", +"nbadbb.#abf.#ammakbaojaijjijkbba", +"qfkjaak#kak.baijijaijcjaojaooaak", +"ng.jomaakabkfbaoaoaaowwlmcxbamij", +"qggawljdaik#.ffijaksbaoakajbaijo", +"ug.bcamcbambgijijfaxakoekkaakaol", +"ufff#baoaklegaoaorfmbajaaaaajakl", +"gng.gkkomdadbqnuprfbabaljloadiol", +".b#fngf.#amijanpqgg.iaijbajmab#l", +"iik#.b.fkkxaockqu.iakaaoakmebfgl", +"gggbaiakkawbajabgfjdaik#baabnqab", +"fijakakabkeakbaaekmcbambakafnpad", +"baoggdaikijbaakijwaoaklewbaeijao", +"ijfffcbamaoakaaaobkomdadjakbaohl", +"aobgfoaklecijjdaikf.#ammbajafrij", +"aobakomdadkaomcbambbababakijefao", +"llakf.#ammlllaoakleakakaklaoluul"}; diff --git a/noncore/games/kcheckers/pics/green2.xpm b/noncore/games/kcheckers/pics/green2.xpm new file mode 100644 index 0000000..4ecfdd5 --- a/dev/null +++ b/noncore/games/kcheckers/pics/green2.xpm @@ -0,0 +1,107 @@ +/* XPM */ +static const char * green2_xpm[] = { +"32 32 72 1", +" c None", +". c #349034", +"+ c #348D34", +"@ c #338433", +"# c #306630", +"$ c #306B30", +"% c #317931", +"& c #328632", +"* c #349334", +"= c #359635", +"- c #369C36", +"; c #36A436", +"> c #369F36", +", c #35A735", +"' c #36A136", +") c #36A636", +"! c #369A36", +"~ c #359935", +"{ c #359B35", +"] c #328032", +"^ c #306E30", +"/ c #359135", +"( c #338A33", +"_ c #328332", +": c #338233", +"< c #359435", +"[ c #327D32", +"} c #2F632F", +"| c #317731", +"1 c #327832", +"2 c #338C33", +"3 c #338733", +"4 c #2E612E", +"5 c #2C5C2C", +"6 c #348834", +"7 c #327B32", +"8 c #327332", +"9 c #35A035", +"0 c #338F33", +"a c #316A31", +"b c #2F672F", +"c c #317431", +"d c #348B34", +"e c #317231", +"f c #328B32", +"g c #327532", +"h c #307030", +"i c #2E642E", +"j c #348634", +"k c #316F31", +"l c #337C33", +"m c #2C5F2C", +"n c #2B5B2B", +"o c #254D25", +"p c #2F692F", +"q c #359E35", +"r c #358C35", +"s c #36A936", +"t c #38A338", +"u c #295429", +"v c #2D602D", +"w c #2E5F2E", +"x c #337F33", +"y c #337933", +"z c #306730", +"A c #2F652F", +"B c #285528", +"C c #337233", +"D c #326E32", +"E c #2F6A2F", +"F c #348334", +"G c #358A35", +".+@#$%&*=--;>,'),'>''>!.~->{*]^/", +"(_:__(+.~!>'>';'>>!>>-=+{{!<+[}|", +"1$&++23]*-->'>'>>-----~.!-~.]456", +"11+==.78/{>>>>>>9--{!~==!=0@abc>", +"b1/==dee+=>-'-!!-9!!!=*../7bb]]'", +"b1.=*+11+=!!!!==!>>===+7&3[c1@]~", +"11+**+1&+.*~-~!=!!==++((+=.f6&@~", +"_(++33d&f.=<==*0./+2+0...=(]]]6*", +"(]11|(f@+++==+@133@32+**.*0]7&=*", +"71g7(.=<==.+=(h10g|]]@(f+0+33.==", +"6@3*<~--!.6@+]11gh|h4i%]3+&+++*+", +"@1@*~->!<+]j~=+@k@][e5}kc&@l[]3~", +"6^(=!{=~~{-!!~/]11]7cmnoi$|chk@!", +"/+/=-=+==>>>>>*1p^k|[]c7]2+*<==>", +"==~=->{~>>'>-=d1|@(&++*.=<->>'>{", +"!-->>!*{{---!<f&f+.+*{~==->''';=", +"!-9-'-*=-~-q~+@(+.*=-!!<r->)'))~", +"-==>'{<=<~-!*&k]+/*~-{;'-;>',;)*", +"--~<9{~~-<**fl|]3(*!!-->>''s)t;f", +"-q=~<->>=<//3iu[fd=~===>-'',,''3", +"><=<~>''>!!<@vv%3.2.+d**<~9>''-@", +"<6@==>''>--!+]7w3++]]%6@@(+=!{!+", +"f(++=>''-{=!<+]@:@@x$bbx:81_**f@", +"====!>'>-!==.*fy%h[|zv5AAia%@@|]", +"--{<{'''-==<.+f6]_]36i5$$$hechc*", +"{!-!<=~{*/+(+f+((ff(g}nzc8%]|c3+", +"-!!<+++(_7[(3+/*~.(3@lBB1]@_^[@3", +"==+d+$Ca}e_3f.~{~=.(6:z$7@3@]&(f", +".+&heD$:|]@@+=!~~=<+3:]7@&3+&2=+", +"+f&:_6|:7%%f+<=!==*+&:]:]j[+==-+", +"2__+2_[7@@@&+=<=<++37^b[@j/{->-+", +"1cc71|||cc1^g7l77c|cE5Ec77FGGrG["}; diff --git a/noncore/games/kcheckers/pics/green3.xpm b/noncore/games/kcheckers/pics/green3.xpm new file mode 100644 index 0000000..f9aa154 --- a/dev/null +++ b/noncore/games/kcheckers/pics/green3.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static const char *green3_xpm[]={ +"32 32 2 1", +"# c None", +". c #00f100", +"............................", +"............................", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"..########################..", +"............................", +"............................"}; diff --git a/noncore/games/kcheckers/pics/help.xpm b/noncore/games/kcheckers/pics/help.xpm new file mode 100644 index 0000000..49d24b0 --- a/dev/null +++ b/noncore/games/kcheckers/pics/help.xpm @@ -0,0 +1,74 @@ +/* XPM */ +static const char *help_xpm[]={ +"16 16 55 1", +". c None", +"e c #000000", +"W c #010101", +"j c #040404", +"w c #383838", +"# c #393939", +"a c #3f3f3f", +"k c #404040", +"o c #494949", +"x c #4a4a4a", +"C c #4d4d4d", +"p c #4e4e4e", +"0 c #4f4f4f", +"T c #6b6b6b", +"Y c #6d6d6d", +"E c #8c8c8c", +"N c #999999", +"Z c #a2a2a2", +"U c #a8a8a8", +"i c #b5b5b5", +"d c #bababa", +"R c #c0c0c0", +"V c #c4c4c4", +"X c #cacaca", +"S c #cbcbcb", +"O c #cecece", +"M c #d1d1d1", +"b c #d3d3d3", +"Q c #d5d5d5", +"c c #d9d9d9", +"D c #dadada", +"P c #dbdbdb", +"f c #dddddd", +"K c #dedede", +"H c #e3e3e3", +"l c #e5e5e5", +"J c #e6e6e6", +"L c #e7e7e7", +"g c #e8e8e8", +"q c #eaeaea", +"I c #ebebeb", +"h c #ececec", +"G c #ededed", +"y c #eeeeee", +"F c #f0f0f0", +"A c #f2f2f2", +"B c #f3f3f3", +"v c #f4f4f4", +"u c #f5f5f5", +"r c #f6f6f6", +"m c #f7f7f7", +"z c #f8f8f8", +"t c #fafafa", +"s c #fbfbfb", +"n c #fcfcfc", +"......###.......", +".....abcdee.....", +".....afghcije...", +".....klmnnmciop.", +".....oqrstuvpwpe", +".....xyzzzABpCDe", +"....#EBrrFyGeee.", +"....kHFBBIJKj...", +"....#JgyLHDMe...", +".###NMOPccQRe...", +"#nzSTTURVSRW....", +"#icnzXYTZUUe....", +".eeicnmSp0Ne....", +"...eeicpwpe.....", +".....eeppDe.....", +".......eee......"}; diff --git a/noncore/games/kcheckers/pics/king_black.xpm b/noncore/games/kcheckers/pics/king_black.xpm index 382ee71..c5e6703 100644 --- a/noncore/games/kcheckers/pics/king_black.xpm +++ b/noncore/games/kcheckers/pics/king_black.xpm @@ -1,39 +1,39 @@ /* XPM */ -static const char *king_black[]={ +static const char *king_black_xpm[]={ "28 28 8 1", ". c None", "# c #000000", "f c #303030", "d c #585858", "b c #808080", "a c #a0a0a0", "c c #dcdcdc", "e c #ffffff", "..........########..........", "........##aaabbbbb##........", "......##caddddddddbb##......", ".....#ccc###########bb#.....", "....#eed##############b#....", "...#ee#################b#...", "..#ee###################b#..", "..#e##########e#########b#..", ".#ce##########e##########b#.", ".#c##########ded#########b#.", "#aa####ca####aeb####ea####b#", "#aa####bea###cea###aeb####b#", "#ad####dce###ecc###ecd####b#", "#ad#####cea##ecc##aea#####b#", "#ad#####acea#ecc#aecb#####b#", "#ad######cee#ecc#eec######b#", "#ad######cceeecceeca######b#", "#bd######acccccccccb######b#", ".#b#######ccccccccc######b#.", ".#b#######cccccccca######b#.", "..#b######aaaaaaaab#####b#..", "..#b#######fffffffff####b#..", "...#b##################b#...", "....#b################b#....", ".....#bb############bb#.....", "......##bb########bb##......", "........##bbbbbbbb##........", "..........########.........."}; diff --git a/noncore/games/kcheckers/pics/king_white.xpm b/noncore/games/kcheckers/pics/king_white.xpm index 30932e8..f1e4257 100644 --- a/noncore/games/kcheckers/pics/king_white.xpm +++ b/noncore/games/kcheckers/pics/king_white.xpm @@ -1,39 +1,39 @@ /* XPM */ -static const char *king_white[]={ +static const char *king_white_xpm[]={ "28 28 8 1", ". c None", "# c #000000", "d c #303030", "e c #585858", "f c #808080", "c c #a0a0a0", "b c #dcdcdc", "a c #ffffff", "..........########..........", "........##aaaaaaaa##........", "......##aaabbbbbbbcc##......", ".....#aaabbbbbbbbbbbcc#.....", "....#aabbbbbbbbbbbbbbbc#....", "...#aabbbbbbbbbbbbbbbbbc#...", "..#aabbbbbbbbbbbbbbbbbbbc#..", "..#abbbbbbbbbadbbbbbbbbbc#..", ".#abbbbbbbbbbadbbbbbbbbbbc#.", ".#abbbbbbbbbbadbbbbbbbbbbc#.", "#aabbbb#abbbbadbbbbba#bbbbc#", "#abbbbb#dabbac#cbbbae#bbbbc#", "#abbbbbaddbbafdfbbaf#ebbbbc#", "#abbbbbbedcbaedebba##cbbbbc#", "#abbbbbbcddaadddbafdebbbbbc#", "#abbbbbbbdddadddacddcbbbbbc#", "#abbbbbbbeddfdddfddebbbbbbc#", "#abbbbbbbcdddddddddcbbbbbbc#", ".#cbbbbbbbddddddddebbbbbbc#.", ".#cbbbbbbbedddddddcbbbbbbc#.", "..#cbbbbbbcfffffffbbbbbbc#..", "..#cbbbbbbbbbbbbbbbbbbbbc#..", "...#cbbbbbbbbbbbbbbbbbbc#...", "....#cbbbbbbbbbbbbbbbbc#....", ".....#ccbbbbbbbbbbbbcc#.....", "......##ccbbbbbbbbcc##......", "........##cccccccc##........", "..........########.........."}; diff --git a/noncore/games/kcheckers/pics/logo.xpm b/noncore/games/kcheckers/pics/logo.xpm index a47d3de..e6cc0a0 100644 --- a/noncore/games/kcheckers/pics/logo.xpm +++ b/noncore/games/kcheckers/pics/logo.xpm @@ -1,23 +1,25 @@ /* XPM */ -static const char *logo[]={ -"14 14 6 1", +static const char *logo_xpm[]={ +"16 16 6 1", ". c None", "# c #000000", "d c #dcdcdc", "c c #e1e1e1", "b c #efefef", "a c #ffffff", -"..............", -".############.", -".#aaaab######.", -".#aaaaa######.", -".#aabab######.", -".#aaabb######.", -".#babbb######.", -".######bcbbc#.", -".######bbbbd#.", -".######bbcdd#.", -".######bcddd#.", -".######cdddd#.", -".############.", -".............."}; +"................", +"................", +"..############..", +"..#aaaab######..", +"..#aaaaa######..", +"..#aabab######..", +"..#aaabb######..", +"..#babbb######..", +"..######bcbbc#..", +"..######bbbbd#..", +"..######bbcdd#..", +"..######bcddd#..", +"..######cdddd#..", +"..############..", +"................", +"................"}; diff --git a/noncore/games/kcheckers/pics/man_black.xpm b/noncore/games/kcheckers/pics/man_black.xpm index e40a265..c07b1d6 100644 --- a/noncore/games/kcheckers/pics/man_black.xpm +++ b/noncore/games/kcheckers/pics/man_black.xpm @@ -1,39 +1,39 @@ /* XPM */ -static const char *man_black[]={ +static const char *man_black_xpm[]={ "28 28 8 1", ". c None", "# c #000000", "c c #585858", "a c #808080", "f c #a0a0a0", "e c #bdbdbd", "b c #dcdcdc", "d c #ffffff", "..........########..........", "........##aaaaaaaa##........", "......##ba########aa##......", ".....#bbc###########aa#.....", "....#ddc##############a#....", "...#dd#######cccc######a#...", "..#dd######aacccccc#####a#..", "..#d#####ddeaac##ccc####a#..", ".#bd####dde#######ccc####a#.", ".#b####dde#########cc##cc##.", "#aa####de#####ccc##ccc#ccc##", "#a####ade#####ccc###cc#ccc##", "#a####ae########cc#####ccc##", "#a####ca#########ac####ccc##", "#a###ccc#########ed####acc##", "#a###cc####c#####dd###aacc##", "#a###ccc###cc###dd####eeaa##", "#a####cc####caedde###bbdbc##", ".#a###ccc#####dd#####bdde##.", ".#a####ccccc########bddd###.", "..#a####cccc#######bdddb##..", "..#a######cc#####bbdddb###..", "...#a########aebbdddbb###...", "....#a#####caaabddbbe###....", ".....#aa#cccccfbbde####.....", "......##a#cccccb######......", "........############........", "..........########.........."}; diff --git a/noncore/games/kcheckers/pics/man_white.xpm b/noncore/games/kcheckers/pics/man_white.xpm index b0968db..59556fe 100644 --- a/noncore/games/kcheckers/pics/man_white.xpm +++ b/noncore/games/kcheckers/pics/man_white.xpm @@ -1,41 +1,41 @@ /* XPM */ -static const char *man_white[]={ +static const char *man_white_xpm[]={ "28 28 10 1", ". c None", "# c #000000", "g c #808080", "d c #a0a0a0", "f c #b3b3b3", "a c #d7d7d7", "e c #dcdcdc", "h c #e1e1e1", "c c #f6f6f6", "b c #ffffff", "..........########..........", "........##aaaaaaaa##........", "......##abbcbbbbbbdd##......", ".....#abbbeeeeeeebbedd#.....", "....#abbbeafffffffebeed#....", "...#abbeadfggdgggdfebbfd#...", "..#abbeafggeeeeeeggfeeefd#..", "..#abeafgabbbbbbbeegfebed#..", ".#abeafgebbeeeeebbbegfebfd#.", ".#abefgebbedddddeebbhgdbed#.", "#abbafgebeddggggdhebegdebfd#", "#abefgebbedgggffffebbagdbed#", "#abefgebedggffafffeebegdbed#", "#abefgebedggfaaaafeebegdbed#", "#abefgebedgfaaeeafeebegdbed#", "#acefgebedgfaeebbbeebegdbed#", "#abeffebedgffeabbbebbegfchd#", "#acbhfgebeddfaabbbebhfdhhfd#", ".#dbhfggebedddfeeebbhgfbhd#.", ".#debefgeebbeeeeebbhgfbbhd#.", "..#deeefgeebbbbbbbhgfbbhd#..", "..#debbefggehhhhhfgfhbhhd#..", "...#deebeffggggggdfebhhd#...", "....#deebeeehddddbbbchd#....", ".....#ddeeebbbbbbeehdd#.....", "......##ddeeeeeeeedd##......", "........##dddddddd##........", "..........########.........."}; diff --git a/noncore/games/kcheckers/pics/marble1.xpm b/noncore/games/kcheckers/pics/marble1.xpm index 124cbd2..087a024 100644 --- a/noncore/games/kcheckers/pics/marble1.xpm +++ b/noncore/games/kcheckers/pics/marble1.xpm @@ -1,240 +1,244 @@ /* XPM */ -static const char *marble1[]={ -"28 28 209 2", +static const char *marble1_xpm[]={ +"32 32 209 2", "#Y c #cbcee3", ".s c #cccfe4", ".X c #cdcfe5", "ba c #cdd0e2", "ad c #cdd0e5", "a7 c #ced0e3", "al c #ced0e5", "ae c #ced0e6", "aW c #ced1e3", ".J c #ced1e6", "#c c #cfd1e4", "aA c #cfd1e7", "bd c #cfd2e4", "b. c #cfd2e5", ".W c #cfd2e7", "#I c #cfd2e8", "a5 c #d0d2e5", "be c #d0d2e7", ".8 c #d0d2e8", "aM c #d0d3e4", ".4 c #d0d3e5", "#b c #d0d3e6", ".r c #d0d3e8", "bl c #d0d3e9", ".f c #d1d3e6", "bm c #d1d3e9", ".E c #d1d4e6", ".A c #d1d4e7", "at c #d1d4e8", ".t c #d1d4e9", "#E c #d1d4ea", "#d c #d2d4e7", ".Y c #d2d4ea", "#a c #d2d5e7", ".5 c #d2d5e8", "bk c #d2d5e9", "#B c #d2d5ea", "#p c #d3d5e8", "## c #d3d5eb", ".3 c #d3d6e8", "aZ c #d3d6e9", "aG c #d3d6ea", "#X c #d3d6eb", ".7 c #d3d6ec", "a# c #d3d8e4", ".2 c #d4d5e9", "#y c #d4d6e9", "#5 c #d4d6eb", ".L c #d4d6ec", "#e c #d4d7e9", ".Q c #d4d7ea", "#Q c #d4d7eb", ".O c #d4d7ec", "#D c #d4d7ed", ".R c #d5d7ea", "#O c #d5d7eb", "aH c #d5d7ec", "#l c #d5d7ed", "aV c #d5d8e9", ".d c #d5d8ea", ".e c #d5d8eb", ".q c #d5d8ed", ".K c #d5d8ee", "aT c #d5d9e8", "aF c #d6d8ea", ".S c #d6d8eb", "aQ c #d6d8ed", ".N c #d6d8ee", ".l c #d6d9eb", ".i c #d6d9ec", "#N c #d6d9ed", "#s c #d6d9ee", ".0 c #d6d9ef", "aa c #d6dae7", "az c #d7d9eb", "#q c #d7d9ec", "#F c #d7d9ef", ".a c #d7daec", ".c c #d7daed", "#R c #d7daee", ".6 c #d7daef", ".w c #d7daf0", "aw c #d7dbe8", "#v c #d8daed", "bn c #d8daee", "a6 c #d8daef", "#j c #d8daf0", "ah c #d8dbeb", ".B c #d8dbed", ".b c #d8dbee", "#k c #d8dbf0", ".y c #d8dbf1", "aj c #d8dce9", "ay c #d8dcea", "#9 c #d8dcec", "#S c #d9dbee", "bo c #d9dbef", "#n c #d9dbf1", "#4 c #d9dceb", "#g c #d9dcee", ".# c #d9dcef", "an c #d9dcf0", ".v c #d9dcf1", "#6 c #d9dcf2", "#3 c #d9deeb", ".F c #dadcef", "a1 c #dadcf0", "as c #dadcf2", "#x c #daddef", ".g c #daddf0", "a2 c #daddf1", "ac c #daddf2", "#u c #daddf3", "ap c #dadeeb", "aE c #dadeec", "aP c #dadfec", "ag c #dbddef", ".o c #dbddf0", "bj c #dbddf1", "af c #dbddf3", "#V c #dbdef0", "#w c #dbdef1", "a0 c #dbdef2", "#. c #dbdef3", ".u c #dbdef4", "aU c #dbdfee", "au c #dcdef1", "a9 c #dcdef2", "#r c #dcdef3", "#m c #dcdef4", "#8 c #dcdff1", ".C c #dcdff2", "#L c #dcdff3", ".V c #dcdff4", ".M c #dcdff5", "#Z c #dddff2", ".9 c #dddff5", "b# c #dddff6", "#o c #dde0f2", ".h c #dde0f3", "#P c #dde0f4", "#t c #dde0f5", "#H c #dde0f6", "#T c #dee0f3", "ao c #dee1f1", "#f c #dee1f4", "bc c #dee1f6", ".z c #dee1f7", "ai c #dee2ef", "#U c #dfe1f3", "#W c #dfe1f5", "a3 c #dfe1f7", "av c #dfe2f3", ".P c #dfe2f5", "#7 c #dfe2f7", ".x c #dfe2f8", "aC c #dfe3f0", "aL c #dfe3f1", "bg c #e0e2f5", "bh c #e0e2f8", "#1 c #e0e3f4", "#0 c #e0e3f5", ".j c #e0e3f6", "#M c #e0e3f7", "#J c #e0e3f8", "bf c #e0e3f9", "aK c #e0e5f2", "a8 c #e1e3f9", "aI c #e1e4f5", ".m c #e1e4f6", ".H c #e1e4f7", "bb c #e1e4fa", "aB c #e2e5f5", "aS c #e2e5f6", ".D c #e2e5f7", "#h c #e2e5f8", ".1 c #e2e5f9", "#C c #e2e5fa", "a4 c #e2e5fb", "Qt c #e3e5f9", ".p c #e3e6f9", "aY c #e3e6fa", "bi c #e3e6fc", "aX c #e4e6f9", "#K c #e4e6fa", "ab c #e4e7f9", "#i c #e4e7fa", ".U c #e4e7fb", "aO c #e4e8f5", "aR c #e5e7fb", "#z c #e5e8fa", "aN c #e5e8fb", "#A c #e5e8fc", ".Z c #e5e8fe", "aD c #e5e9f6", "ak c #e5e9f7", ".I c #e6e9fa", "#G c #e6e9fc", ".G c #e6e9fd", "aJ c #e6eaf8", ".k c #e7eafc", ".T c #e7eafd", "am c #e7eafe", "ar c #e7ebf8", "aq c #e7ebf9", "ax c #e7ecf9", ".n c #eaedfe", "#2 c #edf2fc", "a. c #f0f4fd", "Qt.#.a.b.c.b.d.b.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.r.t.u.v.w.x.y.t.z", ".j.c.e.b.c.i.i.b.l.A.B.C.b.j.D.E.F.G.H.I.q.J.J.K.L.y.M.M.M.N.O.z", ".P.i.Q.B.i.R.c.B.l.S.g.C.b.g.H.C.h.T.U.V.W.t.W.r.X.Y.z.Z.z.L.0.u", ".1.c.2.3.4.5.b.a.l.a.a.o.g.#.d.l.b.p.H.O.X.6.7.8.t.K.9#.##.O.6.O", ".p.b#a#b#c#d.#.c.d#e.A.c#f.C#g.H#h#i.h#j.t.v#k.y.s#l#m#n.O.K.q.8", "#o.l#p.3.d.a.a#q.c.b.R.R.C.d.Q.h#i.C#h#r#s.v.w.0.K#t.x#u.0.0.Y.t", ".p.h.S.3#v#w.a.i#x.g#y#d.S#w#z.p.j#g.I#A.K.r#B.W#u#C#D#D#E.v.t#F", ".j.h.3#c#e#y.b.B#a.E.a.a#wQt.j.c#w#g.j#G.K.s.t.J.M#H#I.r.W#l#B.u", "#f#f#e#b.c.E.4.E.l.a#e#xQt#f#q#b.b.c.##A#J.w.9.z#K.w#u.w#u.0#u#H", "#L#M#N#O#P#Q#N#R.5.5.Q#w.h.e.c.i.B#S#w#T#U.a#V#W.h.s#l#D.M#m.z.0", "#n#u.O#X#k#Y#B#s.L#t#h#h.l.##Z.F.#.C#0#1#2#3#4.D.e#5.O#6.u.6#E.s", "#u#k.K#D#l#X#s#B###7.p.H#S.h.P#w.#.F#8#9a.a#aaab.dac.x#H#u.Nadae", ".v.y#s#B.r#D.N.qaf#L.##g.e.c#w.g.b.bagahaiajak.m.H#7.u.0.q.y#B.L", "#F#m.Nal.J.r#B.Vaman#y.b.b.d.S.i.i#g#8aoapaqar#V.h#..w.Y.r.q.q.t", "#F.M#s.sad.tas.V.vat.d.gau.B.i.l.e.b.havawaxayaz.3.6.7ad#Yae#X.L", ".L.u.N#YaA.v#u.y.Oat.5.3.3.3.Q.i.F#T.HaBaCaDaEaF#eaG.8ad.s.s#B#k", ".W#u#l#YaH#C#s#s.yan#x.l.d#v.#.h.H#h.jaIaJaKaLaM#v.W.W#B.W.J.O.y", ".W#j.w.Y#s#H#X.O.w.6.l.Q.d.b.jaN#i.jagaIaOaPaLaM.S.r.t.L#B.Y.0as", ".Y.O.u.u.7.J.L#B#BaQ#S#f.p.p#GaR.j.h#faSayaTaUaV.4aQ.K##.O.O.was", "aW.A.C.c.i.Q.i.Q.c#b.laX#f.b#V.Pau.e.DaY.aaZ.g#L#Q.v.uas#k.ca0a1", "#T#V.h#a.d.C#p#a.g.B.P.j.#.c.h.h.b#g.pa2#B.qa3a4##.N#k#k#s.b.#.i", ".P.#.F.E.R#pa5.c#i.P.j#w.g.#.h.R.E#8#o.6.0#kas.u.w#j#k#ka6.b.l#y", ".j#V.ga7.4#wau#v.g.l#w.h.#.a#S.f.3#f.iat.7.O.ya8#Haf#n#nac#g.B.3", ".ga9#h#v.b.H.j.E.d.#.P#fb.a5#q.S.haN.c#s.w.r#Bb#.u.w.O#l.6.g#w.R", ".#.P.H#Z.b.Q.F#p.d.H#T.h#aba.d#w.P#f#S.J.t.O.K.ubbas.0.ubc.o.c.l", "Qt.H.H#f.o#g.c.c.g#Z.S.e.dbd#a.#.h#v.c#X.0.q#X.6#H#k.v#u#s#S.g#V", "Qt.C.o.g.b.C.e.F.C.B#cbd.l#a#a.c.#.Q.l#5.6.6.K#6.u.y.M.ybe.5.a#g", -".C.i#w#w.dau.e.c.b.Q#c#daZ.5.c.e.e#g.i#X#j.w.0af#Hbf#m.q#X#a#e.i"}; +".C.i#w#w.dau.e.c.b.Q#c#daZ.5.c.e.e#g.i#X#j.w.0af#Hbf#m.q#X#a#e.i", +"#w.#bg.j#v.F.i.d.d#y.f#O.5.3#P.3#ya0#q#s#u#k.O.qbhbi#.#Q#k.b.bbj", +"#f.C#w#w.F#e.B.b.lbk#Y.W##.6bbbl.O.w.L.A.l#q#y.B.H.h.#.B.##t.Mac", +".H.F.C#w.3.e.i.i.eaZad.W.0.y#t#m.z#k#l.c.d.E.b#i#8.a.d.##P.z.v.O", +"#V.i.h#f#e.i.e.e.e#Qbm.t.y#k.r.yaf#F#nbn.d.i.h#h#e#v.o#wbo.q#l#l"}; diff --git a/noncore/games/kcheckers/pics/marble2.xpm b/noncore/games/kcheckers/pics/marble2.xpm index f31ee0b..6348bb9 100644 --- a/noncore/games/kcheckers/pics/marble2.xpm +++ b/noncore/games/kcheckers/pics/marble2.xpm @@ -1,595 +1,595 @@ /* XPM */ -static const char *marble2[]={ +static const char *marble2_xpm[]={ "32 32 560 2", "dC c #6079b1", "et c #6079b4", "fU c #607ab1", "fT c #607ab2", "f5 c #607bb1", "eu c #6179b4", "f2 c #617ab0", "dR c #617ab1", "df c #617ab2", "cY c #617ab3", "dT c #617ab4", "ef c #617bb3", "cS c #617bb4", "f6 c #617caf", "cU c #617cb0", "de c #627ab4", "eb c #627ab5", "gj c #627ab8", "fo c #627bb1", "dg c #627bb2", "dl c #627bb3", "dW c #627bb4", "dQ c #627caf", "cT c #627cb3", "f4 c #627cb5", "dD c #637ab5", "fB c #637bb4", "gi c #637bb5", "en c #637cb1", "ea c #637cb3", "dX c #637cb4", "cX c #637cb5", "dS c #637cb6", "dc c #637cb7", "dE c #647bb4", "cC c #647cb6", "fR c #647db3", "dB c #647db4", "eS c #647db5", "fC c #647db6", "dU c #647db7", "d9 c #647eb0", "fc c #647eb4", "ee c #647eb6", "ec c #6480b3", "dd c #657db9", "f1 c #657eb4", "eR c #657eb5", "d8 c #657eb6", "fQ c #657eb7", "fS c #657eb8", "eT c #657fb2", "cz c #657fb5", "cR c #657fb9", "#Y c #667fb6", "cD c #667fb7", "ey c #6680b4", "d7 c #6681b7", "fA c #677fb9", "e9 c #6780b4", "eI c #6780b6", "aI c #6780b7", "dM c #6780b8", "dV c #6781b9", "ed c #6782b7", "bK c #687eb7", "ba c #6881b6", ".C c #6881b7", "cB c #6881b8", "em c #6881b9", "fP c #6881bc", "a4 c #6882b5", "aQ c #6884b6", "aP c #6884b8", "gO c #6981b7", "bt c #6981b9", "fh c #6981bb", "dN c #6982b6", "cq c #6982b7", ".D c #6982b8", "ch c #6982b9", "fd c #6982ba", "cF c #6982bb", "dP c #6983b3", "dA c #6983b4", "cr c #6983b5", "at c #6983b6", "af c #6983b7", "cy c #6983b8", "fu c #6983b9", "d1 c #6983bc", "aO c #6984b9", "bJ c #6a7fb9", "cL c #6a82b8", "gP c #6a82b9", "cZ c #6a82bc", "bb c #6a83b5", "b# c #6a83b8", ".W c #6a83b9", "cE c #6a83ba", "ag c #6a83bb", "aw c #6a83bc", "db c #6a83bd", ".K c #6a84b6", "bF c #6a84b8", "dL c #6a84b9", "dI c #6a84ba", "eY c #6a84bb", "gA c #6a85b4", "dH c #6a85b5", "da c #6a85b6", "f# c #6a86bb", "dh c #6b81b7", "bs c #6b81bb", "gh c #6b84b7", "#B c #6b84b8", "#Z c #6b84b9", ".# c #6b84ba", "aj c #6b84bb", "aF c #6b84bc", "bo c #6b85b7", "ax c #6b85b8", "ao c #6b85b9", "#j c #6b85ba", "d2 c #6b87b8", "bu c #6c83b6", "dy c #6c83ba", "eU c #6c85b8", "a0 c #6c85ba", ".c c #6c85bb", "f8 c #6c85bc", "#V c #6c85bd", "cP c #6c85be", "ai c #6c86b7", "cp c #6c86b8", ".5 c #6c86b9", "ac c #6c86ba", "ev c #6c86bc", "d0 c #6c86c0", "bP c #6c87bd", "br c #6d84b9", "gG c #6d85b8", "fi c #6d85c0", "bR c #6d86ba", "ap c #6d86bb", "#i c #6d86bc", "co c #6d86bd", "aE c #6d86be", "cb c #6d87b7", "gs c #6d87b8", ".E c #6d87ba", "ew c #6d87bb", "d6 c #6d88bf", "gF c #6e86ba", "gL c #6e87bb", "bj c #6e87bc", ".a c #6e87bd", "e4 c #6e87be", "aK c #6e87bf", "#F c #6e87c1", ".t c #6e88ba", "dK c #6e88bb", "dm c #6e88bc", "e5 c #6e88be", "do c #6e89b8", "aN c #6e89be", "dp c #6f86b8", "#E c #6f87c0", "a6 c #6f88bd", ".b c #6f88be", "cx c #6f88bf", "eo c #6f89b9", ".g c #6f89ba", "a1 c #6f89bb", "#G c #6f89bc", "cg c #6f89bd", "eN c #6f8ab9", "bO c #6f8bc2", "cn c #7087bd", "gH c #7088b9", "ci c #7089bd", "#X c #7089be", "#k c #7089bf", "eL c #708aba", "au c #708abb", ".H c #708abc", ".e c #708abd", "as c #708abe", "b5 c #708abf", "fb c #708bba", "b4 c #708bbb", "b. c #718abd", "bC c #718abe", "#l c #718abf", ".y c #718ac0", "aH c #718ac2", "f7 c #718ac3", "a7 c #718bbb", "#C c #718bbc", ".f c #718bbd", ".h c #718bbe", "#f c #718cbc", "fE c #7289ba", "fK c #728bc0", ".X c #728bc1", "aG c #728bc3", "cu c #728cbd", "c. c #728cbe", "#0 c #728cbf", "dY c #728cc0", "an c #728cc1", "dO c #728db9", "ct c #728dbc", "aL c #728dbd", "gI c #728eb9", "#e c #728ec0", "f. c #7290c4", "gk c #7389bd", "bI c #7389be", "gz c #7389bf", "gQ c #738abb", "fF c #738bbe", "cO c #738bc2", "dz c #738cbf", "ab c #738cc0", "cw c #738cc2", "eg c #738cc3", ".T c #738dbd", ".G c #738dbe", "el c #738dbf", "bn c #738dc0", "aC c #738dc1", "bD c #738ebc", ".L c #738ebd", "aM c #738ec3", "gJ c #738fbb", "fl c #738fbd", ".S c #738fc1", "gy c #748bbe", "fM c #748cbf", "bU c #748dc1", ".z c #748dc3", "a9 c #748ebf", "cv c #748ec0", ".6 c #748ec1", "aD c #748ec3", ".M c #748fbd", ".8 c #748fbe", "fp c #748fbf", "d5 c #7490c3", "d# c #758bc3", "eZ c #758dbe", "#p c #758ec4", "aZ c #758fbf", ".k c #758fc0", ".F c #758fc1", ".4 c #758fc2", "bV c #758fc4", "#5 c #7590c0", "aS c #768dbe", "fL c #768ec5", "Qt c #768fc5", "ez c #7690c0", "fj c #7690c1", "cf c #7690c2", "aY c #7690c3", "fV c #7690c5", "#D c #7691be", "#q c #7691c0", "bE c #7691c1", "cm c #778ec2", "bQ c #7790c1", "gM c #7790c4", ".d c #7790c6", "fJ c #7791c0", "#6 c #7791c1", "#1 c #7791c2", ".s c #7791c3", ".i c #7791c4", "bZ c #7791c5", "a# c #7792be", "#S c #7792bf", "bk c #7792c2", "fk c #7793c2", "aU c #7793c3", "di c #788ec0", "f0 c #7891c7", "cA c #7892c3", ".J c #7892c4", "#W c #7892c5", "#U c #7892c6", "#H c #7893bf", "ak c #7893c0", "cc c #7893c1", "#o c #7893c2", "ex c #7893c3", "dZ c #7894c4", "bL c #798fc2", "dG c #7991c4", "#8 c #7992c6", ".A c #7992c8", "gB c #7993c0", "#y c #7993c3", "ae c #7993c4", "#O c #7993c5", "eh c #7993c6", "#N c #7994c2", "#m c #7994c3", "#T c #7994c4", "gt c #7994c5", "eW c #7995c3", "aT c #7995c7", "b9 c #7a90c7", ".U c #7a92c1", "dq c #7a93c1", "eE c #7a93c6", "cN c #7a93c7", "a5 c #7a93c9", "f3 c #7a93cb", "fm c #7a94c0", "dJ c #7a94c3", "bl c #7a94c4", "dt c #7a94c5", ".r c #7a94c6", "#7 c #7a94c7", "bW c #7a94c9", "#t c #7a95c0", "eA c #7a95c3", "#n c #7a95c4", "d3 c #7a95c5", "cG c #7a95c7", "bq c #7b92c2", "fa c #7b93ca", "bp c #7b94bf", ".B c #7b94ca", ".j c #7b95c6", ".I c #7b95c7", ".7 c #7b95c8", "fG c #7b95ca", "ei c #7b96c4", "fz c #7b96c5", ".1 c #7b96c6", "eX c #7b96c7", ".u c #7b97c9", "dF c #7c93c9", "dx c #7c95c0", "cQ c #7c96c6", ".l c #7c96c7", "#R c #7c96c8", "eH c #7c96c9", "bX c #7c97c4", "#r c #7c97c6", ".2 c #7c97c7", "dj c #7d94c0", "#A c #7d94c1", ".R c #7d94c5", "ds c #7d95c7", ".v c #7d97c7", "c6 c #7d97c8", ".Y c #7d97c9", "c1 c #7d98c4", "b3 c #7d98c5", "#J c #7d98c6", ".0 c #7d98c8", "d4 c #7d99c7", "e8 c #7e95c4", "eD c #7e96c6", "fs c #7e97c4", "cM c #7e97cb", "fv c #7e98c6", "aB c #7e98c8", ".Z c #7e98c9", "#Q c #7e98ca", "aA c #7e98cb", "a. c #7e99c5", "az c #7e99c6", ".9 c #7e99c7", "by c #7f96c1", "gR c #7f96c5", "c5 c #7f96c8", "bx c #7f97c4", "#g c #7f97c6", ".Q c #7f97c8", "aa c #7f99c9", "dn c #7f99ca", "aJ c #7f99cb", "a3 c #7f99cc", "eO c #7f9ac5", "fI c #7f9ac6", "c# c #7f9ac8", "b0 c #7f9ac9", "gl c #8097c6", "gE c #8098cc", "a2 c #809acb", ".p c #809bc7", "ad c #809bc9", "gu c #809bca", "e1 c #809bcb", "fr c #8199c3", "gx c #8199ca", "bm c #819bcb", "gK c #819bcc", "cI c #819cc4", ".O c #819cc7", "aq c #819cc8", ".3 c #819ccb", "e0 c #819ccc", "eB c #8298c0", "eM c #8298c6", "b8 c #8298cb", "fD c #8299c8", "cl c #8299ca", "c0 c #829ccc", "eG c #829cce", "aX c #829dc9", "a8 c #829dcb", "gg c #829dcd", "f9 c #8399c6", "c8 c #839ac9", "c2 c #839acc", "cK c #839cd2", "ft c #839dcc", "#K c #839dcd", "du c #839dce", ".o c #839ecc", "#M c #839ecd", "ca c #839ece", "es c #849aca", ".w c #849ccb", "bY c #849ece", "#P c #849ecf", "av c #849fcb", "#I c #849fcd", "eK c #849fce", "cV c #84a0c9", "ay c #84a0ca", "fO c #859cc3", ".m c #859fd0", ".N c #85a0cc", "b2 c #85a0cd", "eV c #85a0ce", "eQ c #85a1c9", "ej c #85a1cc", "#w c #869dc7", "gr c #869dc9", "fn c #869fca", "dr c #869fcd", "#s c #86a1cd", "cj c #86a1ce", ".n c #86a1d0", "bc c #879ece", "e7 c #879fca", "ck c #879fcd", "gw c #879fce", "gN c #87a0d3", "gf c #87a1d1", "c7 c #87a1d2", "b1 c #87a2cc", "#9 c #87a2ce", "cs c #87a2d0", "eP c #87a2d1", "ge c #889eca", ".q c #88a3ce", "#. c #88a3cf", "eJ c #88a3d0", "bS c #88a3d3", "e2 c #88a4c8", "al c #88a4cb", "#u c #89a0ca", "dv c #89a2d0", "cH c #89a4cc", "ar c #89a4d0", "#L c #89a4d2", "#b c #8aa1ce", "aR c #8aa3d4", "aV c #8aa4d1", "ce c #8aa4d5", "bT c #8aa5d2", "#4 c #8aa6c8", "ek c #8aa6d0", "fY c #8ba0cc", "#a c #8ba1cf", ".P c #8ba2d3", ".x c #8ba3cf", "aW c #8ba4cf", "b6 c #8ba6d1", "bB c #8ba6d2", "cd c #8ba6d3", "am c #8ba7cb", "gd c #8ca1cd", "#h c #8ca3cf", "gD c #8ca7ce", "#2 c #8ca7d3", "gv c #8ca7d6", "gc c #8da4cd", "cJ c #8da9d2", "fZ c #8ea3d2", "e# c #8ea8d3", "## c #8ea9d4", "bi c #8ea9d5", "gb c #8fa5cd", "fN c #8fa6d3", "cW c #8fa9d6", "bN c #90a6c9", "#v c #90a7d1", "#d c #90a7d4", "be c #90a8d2", "#z c #90a8d7", "dw c #90a9d1", "e3 c #90abd9", "e. c #91add5", "b7 c #92aad2", "fH c #92acd7", "ah c #92addc", "fX c #93a9d1", "bH c #93aad8", "gS c #93abd4", "fg c #93abd5", "bf c #94abd2", ".V c #94acd8", "gm c #94add4", "c9 c #94aecf", "gC c #94aed9", "ep c #94afdd", "c3 c #95add6", "bd c #96adda", "fe c #96aed2", "e6 c #97aed7", "#c c #97aedb", "gq c #97afd9", "d. c #97b0d5", "fy c #97b2de", "fw c #98b1d9", "eF c #98b4d9", "ga c #99b1d1", "c4 c #99b1da", "bA c #9aafd3", "bz c #9ab0d7", "#3 c #9ab6dc", "g. c #9bb1db", "#x c #9bb2dc", "fq c #9cb3db", "gT c #9cb4d8", "gn c #9cb5d8", "dk c #9cb5dd", "bh c #9db2d4", "bw c #9db3da", "bv c #9db3de", "gp c #9db5dd", "bg c #9eb3d7", "go c #9eb6dd", "eq c #a0b6da", "fx c #a0b8dc", "ff c #a0b8de", "er c #a1b6df", "fW c #a1b8db", "bG c #a1bae2", "eC c #a2b9e4", "bM c #a3b9e3", "g# c #a4bcdf", "Qt.#.a.b.a.#.cQt.d.e.f.g.e.h.h.i.j.k.l.m.n.o.p.q.r.s.t.r.u.v.w.x", ".y.z.A.B.y.#.C.#.D.E.F.G.H.s.f.I.J.K.K.t.L.M.N.O.P.Q.Q.R.S.T.U.V", ".W.b.X.X.a.W.W.#.c.h.Y.Z.0.1.2.3.4.5.6.7.8.9#.###a#b#c#d#e#f#g#h", "#i.c#i#i#j.##k#l#k.E.F.l#m#n#m#o.z.c#pQt#q#r#s#t#u#v#w#x#e#y#z#A", ".b#B#C.G#D#E#F.E#G.4.4.e#H#I#J#K#L#M.o#N.F#O.Y.t#P#Q.l#R#S#T#U#V", ".r#W#G.f.v#X#Y#Z.e.6#0.h#1#2#3#4#5.T.T#6.h.e#7#8#9a.a##9aa.Kabac", "adaeafag.rahaiaj.E.6#W#0.Jakalamanaoap#Z.C.D.D#ka#aqararasatau#6", "av#6.cawaxayazaj.haA.r#WaB#OaCaDaEaFajaGaH#V#VaI.HaJ.s.faKapaL.o", "aMaNaOaPaQ.taRaSaTaUaVaWaXaYasaZ.#a0a1a2a3.h.5a4a5#p.b.caKa6a7a8", "a9b.b#ajbabbbcbdbebfbgbhbiabbjbkacaxblbmaY#G#0bn.b.##i.Wafaxbo#P", "bpbqbrbsbtbubvbwbxbybzbAbBbCas#T.s.1#mbD.h.6a3.e.D.y.b.abE.HbFa6", "bGbHbIbJbKbLbMbNbObPb.bQ#SbRas.k#CbS#LbT.r.s.ibU.ybVbW.dbXbYbZaH", "b0bX.Nb1b2b3#nai#i#i#i.X.d.c#i#ib4b5#0b6b7#hb8b9c.a9#rc#ca.ZaB#6", "aucbcccdcecfcg.b.a.a.a.a.y.X.b.Daichcicjckclcmcn.yaEco.Wcp.Ka1.Y", ".Ccqcrb4csctcucv.a#i#i.W.acw.c.Wa4aKcx#ncwcy.WczcAcgcBcCcDcDcEcB", "cFag#XcGcHcIcJ#.cKQt.cb#cLcMcNcOaccPagcQcRcScTcUcVcW.Y.yawcXcXcY", "cZ.#c0c1c2c3c4c5c6c7.gauc8c9d.d#dadbdc.bdddedfdgdhdidjdkaEdldldf", "codmdndodpdqdrdsdtc7.jdudvdwdxdydzagcDdAdBdldCcYdDdEdFdGdldfdldl", ".taYaYaxdHdIb5a9.l#1.Ga9bXdJdKcEdLdMdNdOdPdQdRdSdTdUdVdWdXdldCdC", "cQcAdY.zdZd0d1d2a7#1d3aad4d5d6d7dCd8d9e.e#a7eaebecedeeefeadRcEeg", "aAeh.4.icAc..5.yeib2ejek.jelao.WemeneoepeqeresbrcoeteubFdHaueh.a", "bn.E.6a3#1.Jeh#kevew.h.Y#Texc.apageyezeAeBeCeDeEcv#Za7eFeGb.ba#Y", "#GdKeHaYcu#OaxeIch.aci.reJeKaB.f#VeyeLbDeMckeNbEeOePeLeQeh.ceReS", "cveEeH.H#1.feT.DeU.g#oa8eVeWeX.JeYbF#1#oeZbQe0e1e2e3e4e5#ichemcD", "e6e7e8.0.Je9.Daj.a.4.Jdtf.f#evfa#G.4dK.h#0.6dmew.abmfbfcdXfdcDdM", "fefffga#cheSfhfi#i#0.sfjfkflfmfn#o#1aCev#Yfofofo#YaLfpdfdlememem", "fqfrfsftaCa0fuaw#i.h.rdn.Yfvfwfxfyfz.DfAdXdfdXdXfB.K#WfCdleSdMag", "fDfEfFfGfHfIfJ.kfK.f.fcffLfMfNfOeOezchfPfQfCcXdWeufRbVfScXfTfUea", "fVewc..lfWfXfYfZb2eAfp.faua9.j#1.zf0.aeI.W.#f1f2dCdBf3d8f4fTf5f6", "f7agf8a0f9g.g#gagbgcgdge.ldt.ldt.b.c#i.dgfbYfz#fdHdPgg#ygheRgigj", ".#bFax.Kgkglgmgngogpgqgrfjcudn.j.y.#.C.WcAcpgsgtgu#m#mgvgwgxgygz", "gAgBgCgDgEgFgGgHgIgJadfz.kc6gK#1gLcy.DcEcEfdajgMgNb.gOgPgQgRgSgT"}; diff --git a/noncore/games/kcheckers/pics/marble3.xpm b/noncore/games/kcheckers/pics/marble3.xpm index 36c9b17..3b70b4f 100644 --- a/noncore/games/kcheckers/pics/marble3.xpm +++ b/noncore/games/kcheckers/pics/marble3.xpm @@ -1,33 +1,33 @@ /* XPM */ -static const char *marble3[]={ +static const char *marble3_xpm[]={ "28 28 2 1", "# c None", ". c #0000ff", "............................", "............................", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "............................", "............................"}; diff --git a/noncore/games/kcheckers/pics/undo.xpm b/noncore/games/kcheckers/pics/undo.xpm new file mode 100644 index 0000000..313e1d0 --- a/dev/null +++ b/noncore/games/kcheckers/pics/undo.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static const char *undo_xpm[]={ +"16 16 5 1", +". c None", +"# c #000000", +"c c #a0a0a0", +"b c #dcdcdc", +"a c #ffffff", +"................", +"................", +".......#........", +"......##........", +".....#a#........", +"....#aa########.", +"...#aabaaaaaab#.", +"..#aabbbbbbbbc#.", +"...#abbccccccc#.", +"....#ac########.", +".....#a#........", +"......##........", +".......#........", +"................", +"................", +"................"}; diff --git a/noncore/games/kcheckers/pics/wood1.xpm b/noncore/games/kcheckers/pics/wood1.xpm index 866f8d9..eb2d71d 100644 --- a/noncore/games/kcheckers/pics/wood1.xpm +++ b/noncore/games/kcheckers/pics/wood1.xpm @@ -1,117 +1,117 @@ /* XPM */ -static const char *wood1[]={ +static const char *wood1_xpm[]={ "32 32 82 2", "#c c #9c825c", ".H c #9c8664", "#p c #a48a64", "#f c #a48a6c", ".I c #a48e64", ".G c #a48e6c", ".X c #a4926c", "#g c #ac8a6c", ".u c #ac8e6c", "#o c #ac8e74", ".b c #ac926c", ".c c #ac9274", ".d c #ac966c", "Qt c #ac9674", ".j c #ac9a74", "#b c #ac9a7c", ".w c #ac9e74", ".V c #b49274", ".A c #b49674", ".W c #b4967c", ".S c #b49a6c", ".s c #b49a74", ".t c #b49a7c", ".U c #b49e74", ".i c #b49e7c", ".2 c #b49e84", ".f c #b4a27c", ".q c #b4a284", ".k c #b4a67c", "#n c #b4a684", ".P c #bc9a74", "#d c #bc9a7c", ".R c #bc9e74", ".# c #bc9e7c", ".1 c #bc9e84", ".g c #bca27c", ".v c #bca284", ".F c #bca67c", ".a c #bca684", "#. c #bcaa7c", ".h c #bcaa84", ".p c #bcaa8c", "#a c #bcae84", ".n c #bcae8c", ".8 c #bcb28c", "#j c #c49e84", ".K c #c4a27c", ".O c #c4a284", ".N c #c4a67c", ".D c #c4a684", "#e c #c4a68c", "#i c #c4aa7c", ".e c #c4aa84", ".z c #c4aa8c", ".T c #c4ae84", ".r c #c4ae8c", ".l c #c4b28c", ".o c #c4b294", ".C c #c4b68c", ".7 c #c4b694", "#l c #c4ba94", ".L c #ccaa8c", ".Q c #ccae84", ".E c #ccae8c", ".Z c #ccae94", ".6 c #ccb284", ".B c #ccb28c", ".J c #ccb294", ".M c #ccb68c", ".x c #ccb694", ".0 c #ccb69c", ".m c #ccba94", "#m c #ccba9c", ".5 c #ccbe94", ".9 c #ccc29c", ".Y c #d4b694", ".y c #d4ba94", "#h c #d4ba9c", "#k c #d4be94", ".4 c #d4be9c", ".3 c #d4c29c", "## c #dcc69c", "Qt.#.a.#Qt.b.c.d.a.e.a.f.g.h.i.b.j.f.h.h.a.k.l.m.a.a.n.o.p.i.q.r", ".#.i.s.t.g.g.t.uQt.sQt.d.t.e.e.v.h.f.w.a.x.y.r.f.f.i.a.r.z.g.a.o", ".g.v.g.A.A.g.z.B.r.B.r.e.e.l.B.r.l.B.o.C.l.l.n.e.a.v.a.e.a.i.s.g", ".i.g.D.i.s.v.B.y.a.E.B.r.a.v.#.s.s.a.B.F.G.H.I.i.v.g.g.g.a.g.i.f", ".#.i.s.g.z.B.z.#.G.A.i.#.#.g.g.i.l.B.l.r.e.F.v.F.f.i.i.e.r.B.J.x", ".D.D.i.A.s.#.g.i.K.v.D.v.K.a.L.J.e.e.e.r.M.J.e.g.E.e.e.e.e.e.a.N", ".r.r.D.A.GQt.a.E.E.D.D.#.#.#.g.O.e.l.x.x.B.l.B.x.B.B.E.e.g.#.s.s", ".e.D.v.g.e.E.e.g.t.P.t.#.#.K.v.D.D.v.sQt.A.t.i.g.g.N.e.N.D.e.Q.B", ".b.b.A.v.r.B.z.g.g.R.s.S.b.b.b.b.d.b.c.s.a.T.E.z.UQt.u.G.G.V.s.P", ".D.a.g.a.e.z.e.g.r.e.D.a.F.a.e.e.e.e.a.e.r.E.l.e.a.e.r.B.B.Q.O.#", ".v.#.s.s.#.g.a.D.G.G.u.b.W.g.r.E.o.l.r.e.e.a.F.v.XQt.s.#.z.E.E.E", ".D.g.v.#.a.D.r.E.Y.J.J.Z.J.J.0.Y.Y.x.Y.B.r.e.e.e.m.B.h.g.i.i.#.#", ".J.M.J.r.e.a.g.g.t.1.i.1.g.1.#.2.a.e.r.T.e.a.z.r.T.z.r.B.B.B.E.e", ".B.J.B.B.D.#.W.s.c.A.t.i.g.v.v.g.s.U.f.v.g.a.e.r.3.4.5.x.l.v.j.b", ".e.z.B.r.D.a.e.r.B.M.B.B.r.D.g.#.r.r.E.B.J.x.x.y.m.m.l.l.B.x.Y.x", "Qt.A.s.s.s.U.a.E.a.N.e.e.Q.T.6.B.x.y.x.m.y.y.y.y.m.x.l.M.x.M.x.x", ".f.h.7.7.l.8.M.9.M#..g.F.F.g.g.K.t.g.z.r.a.iQt.c.F.F.a.s.b.b.s.g", ".l.l.M.m.m.4.4.4##.y.B.a.#.P.D.B.r.r.e.a.a.v.e.r.t.g.e.e.e.h.e#a", ".i.g.v.F.v.F.g.fQtQtQtQt.c.c.V.t.a.g#b.u.H#c.H.H.a.g#bQtQt.s.g.a", ".z.E.B.E.K.i#d.g#e.a.O.z.E.z.#.c.s.#.a.a.e.z.a.iQt.A.i.a.a.i.G.H", ".#.#.#.s.V.u#f#g.t.t.t.i.1.1.1.i.c.j.v.a.r.B.e.v.r.g.A.i.a.z.E.J", ".E.a#d.g.z.r.K.s#f#d.L.z.g.i.a.r.B.r.e.i.g.z.p.g.c.c.t.E#h.J.z.a", ".D.a.g.D.r.E.z.a.A.e.B.D.s.b.X.b.f.i.c.GQt.a.r.a.vQt.c.t.i.i.#.v", ".b.i.e.a.U.A.f#i#j.R.d.b.s.e.T.T.a#e.g.t.#.e.gQt#e.i.2.z.z.v.t.i", ".r.gQt.i.z.B.r.a.g.i.s.j.i.g.o.4.r.r.r.r.a.q.v.a.e.a.F.h.n.h.n.C", ".J.r.a.g.v.i.s.c.f.tQt.u#f.G.t.e.e.i.b#f.H.H.GQt.a.T.l.x#k.5.m#l", ".GQt.i.v.f.v.e.r.D.a.g.i.s.t.e#m.z.t.G.G.j.v.e.l.i.g.i.i#n.l.l.h", ".i.D.z.r.D.a.z.B#h.x.l.z.a.f.a.r.x.r.f.v.e.z.h#e.T.r.T.F.r.m.x.h", ".GQt.s.f.v.e.r.x.r.z.e.r.B.Z.r.B.r.a.e.r.r.z.a.a.g.p.T.h.r.Y.eQt", ".r.D.a.v.v.iQt.u.G.H.H.c.g.a.a.v.g.f.a.z.l.B.x#h.m.x.r.D.T.B.J.e", ".a.e.z.x.y.4.x.r.B.z.a.z.r.r.e.a.r.z.a.a.a.v.a.T.l.e.iQtQt.s.#.#", ".a.a.r.x.y.x.D.i#o#p.GQt.i.v.D.r.r.z.h.z.r.r.r.J.r.r.B.x.B.#.A.b"}; diff --git a/noncore/games/kcheckers/pics/wood2.xpm b/noncore/games/kcheckers/pics/wood2.xpm index c2ff364..b786bfb 100644 --- a/noncore/games/kcheckers/pics/wood2.xpm +++ b/noncore/games/kcheckers/pics/wood2.xpm @@ -1,114 +1,115 @@ /* XPM */ -static const char *wood2[]={ -"32 32 79 2", -"#k c #484c4d", -"#l c #484d47", -"#m c #494a46", -"#d c #4c4841", -"#j c #4c4c48", -".1 c #4e554d", -".9 c #4f483f", -"#e c #4f4c44", -".0 c #4f4f48", -".Z c #4f524d", -".2 c #4f564e", -".X c #515450", -".W c #51564e", -".V c #52574f", -"#. c #544e45", -".U c #545047", -".Y c #54524a", -".8 c #575046", -".T c #575248", -".7 c #57554c", -".t c #57564d", -".B c #575751", -".u c #58574f", -".a c #585950", -".A c #585d52", -".v c #5c584f", -".G c #5d564a", -".# c #5d5a54", -".Q c #5e5649", -".z c #5e5a4f", -".y c #5e5d51", -"Qt c #5e5e55", -".C c #5e5e57", -".E c #5f5a4f", -".x c #5f5e51", -".w c #5f5f54", -".b c #5f6056", -".3 c #615749", -".H c #615d4e", -".F c #615d54", -".n c #615f52", -".c c #615f56", -".S c #625a4d", -".o c #645f57", -".s c #646056", -".D c #646256", -".d c #646258", -".R c #655e4f", -".m c #655f50", -".e c #65675d", -".q c #666657", -".4 c #675d4e", -".l c #675f54", -".p c #676156", -".k c #676456", -".r c #67645a", -".P c #696054", -".j c #696456", -".5 c #69665c", -"#i c #696759", -".I c #6a6657", -".f c #6a675e", -"#h c #6c6a5d", -".L c #6d6152", -".O c #6f6758", -".i c #6f6759", -".h c #6f695d", -".g c #6f6c5e", -"#f c #6f6f62", -".N c #706250", -".M c #706757", -".J c #746c5c", -"## c #766756", -".K c #776f5f", -"#a c #796c57", -".6 c #7d6f5c", -"#g c #7d7462", -"#b c #85745e", -"#c c #8d7d67", -"QtQtQt.#.a.a.a.#Qt.b.c.c.d.d.d.e.f.f.g.h.i.i.i.j.k.l.m.n.o.o.p.p", -".b.b.b.b.c.c.c.c.d.d.d.d.d.d.c.d.q.r.s.s.s.s.s.k.s.s.n.d.d.r.r.r", -".t.u.v.v.#.#.#.#.#.w.x.y.y.z.y.z.z.v.u.a.a.A.y.y.y.yQt.c.c.bQtQt", -".o.o.cQt.#.c.c.c.o.q.d.d.s.s.y.z.z.v.u.B.a.a.aQtQtQt.CQt.y.A.a.A", -".o.o.o.o.o.z.z.x.x.s.s.s.s.D.n.x.x.E.a.a.a.u.u.t.t.u.u.u.v.v.z.a", -".F.F.n.s.s.p.p.s.s.G.z.E.E.E.H.m.l.j.j.I.h.g.g.g.h.h.i.h.J.J.J.K", -".j.j.p.p.p.h.h.h.h.h.h.h.h.g.h.h.h.i.L.L.M.M.M.L.L.L.L.L.N.L.L.L", -".i.i.I.I.j.i.i.h.h.i.i.i.h.h.i.O.O.I.P.L.L.P.P.I.M.M.M.M.M.M.M.M", -".E.E.Q.Q.Q.E.E.H.R.H.H.H.R.R.S.H.H.H.H.H.H.H.S.H.H.H.R.R.H.H.H.H", -".H.H.R.R.m.R.m.p.j.I.I.I.O.O.I.k.l.m.m.m.l.l.l.R.H.E.E.z.x.x.F.n", -".O.I.j.P.l.R.R.R.R.m.m.R.R.H.x.F.F.F.j.j.j.j.j.i.i.i.i.f.r.c.z.z", -".t.t.t.t.t.T.T.U.U.t.t.t.V.W.W.V.V.B.B.B.B.B.B.X.X.X.X.Y.U.U.U.U", -".c.c.w.y.u.a.u.u.t.Y.Y.Y.Z.0.Z.Z.Z.Z.1.1.1.1.1.2.2.2.2.t.u.v.z.x", -".Q.Q.3.H.R.S.S.R.m.P.P.P.l.p.l.l.l.p.s.s.s.s.s.q.q.q.q.o.o.o.c.c", -".4.4.4.4.4.L.L.M.M.J.J.J.J.J.O.M.M.h.O.O.O.O.O.I.I.I.I.5.5.r.o.o", -".M.M.J.K.K.K.K.6.6.6.6.6.K.J.K.K.K.K.K.K.J.J.h.M.O.j.P.F.F.F.F.F", -".G.G.7.T.8.9.9.9.9.9.9.9.9.9.9.9.9.9#..8.T.7.7.E.F.F.F.r.r.r.r.r", -".Q.G.G.8.8.G.8.8.8.Q.Q.3.3.Q.R.l.p.j.5.f.f.f.f.f.5.5.5.o.o.o.o.o", -".L.L.N#########a.6.6.6.6#a#a.L.4.4.4.3.Q.Q.8.8.H.S.S.3.s.o.o.o.o", -"#####a.6#a#a#a#a#a#b.6#b#c#b#b.6#a.N.m.m.R.H.x.x.v.7.T#..U.U.U.U", -"#a.6#b#b#b#b#b#b#b#b#b#b#b#a.N.4.4.S.R.H.E.E.v.z.v.a.B.z.z.v.v.v", -".4.4.N.N.N###a#a.6.N.N.N.4.3.3.3.3.4.3.Q.Q.T.T.8#.#d.9.9.9#e#e#e", -".j.L.O.M#a#a#a#a#a#b#b.6.6#b.6.6#a##.M.L.L.L.l.l.p.5.5.f.f#f#f#f", -".8.8.8.Q.3.4.4.N#a.6#a#a.N.N###a.6#b#b#b#g#g#g.M.P.H.E.E.v.t.T.T", -".M.M.M############.N.N.N.N.N.N.N.N.N.N.L.4.4.S.Q.Q.Q.Q.F.x.x.x.x", -".4.4.4.4.4.N.N.N##.N.N.N.N.N.N.L.L.L.4.4.4.4.l.l.p.p.p.r.d.o.n.n", -".j.j.j.O.M#########a##.M.L.L.O.5.O.j.P.l.R.H.E.F.x.v.v.z.v.t.T.T", -".f.f.5.p.l.R.4.4.4.3.3.Q.Q.Q.S.S.E.E.S.3.E.E.x.n.o.r.r#f#f.g.g.f", -".C.C.d.5.f.5.5.h.g.K.K.g.g.h#h#h#h#i.p.s.n.x.#.a.a.B.B.7.T.T.7.7", -".T.T.T.U.U#e#e.9.9#j#k#k#l#m.0.0.0.0.Z.Y.Y.W.W.B.B.B.B.y.z.z.z.z", -".P.P.l.l.R.R.R.R.S.c.c.o.c.c.x.n.c.s.r.5.r.r.p.p.p.p.p.r.r.r.r.r", -"###a#a.6.6#g#g.6.6.g.g#h.5.r.r.q.r.d.s.c.w.w.x.w.w.w.w.x.F.F.F.F"}; +static const char * wood2_xpm[] = { +"32 32 80 1", +" c None", +". c #4B4B3F", +"+ c #49453D", +"@ c #434438", +"# c #4C4E40", +"$ c #4F4C40", +"% c #535043", +"& c #555849", +"* c #5C584B", +"= c #645F4B", +"- c #645B49", +"; c #645844", +"> c #5B5340", +", c #585340", +"' c #584C3D", +") c #554C38", +"! c #4F4C3B", +"~ c #534C41", +"{ c #584F40", +"] c #565641", +"^ c #585345", +"/ c #534E40", +"( c #414035", +"_ c #434137", +": c #484337", +"< c #4C4C3D", +"[ c #4C4B3A", +"} c #4B493A", +"| c #4B4537", +"1 c #43493B", +"2 c #41413A", +"3 c #4B4B41", +"4 c #535040", +"5 c #4C4537", +"6 c #4F493D", +"7 c #494031", +"8 c #4F4936", +"9 c #5C5641", +"0 c #6C5F48", +"a c #71644C", +"b c #614F3B", +"c c #665841", +"d c #665038", +"e c #645843", +"f c #5B4E3D", +"g c #4B4030", +"h c #554B37", +"i c #504535", +"j c #413B2F", +"k c #3D382E", +"l c #3B4137", +"m c #3A4036", +"n c #3A3D38", +"o c #3D3B31", +"p c #373B35", +"q c #37372F", +"r c #363F35", +"s c #374036", +"t c #4F4130", +"u c #584936", +"v c #5B5648", +"w c #7B6448", +"x c #413F33", +"y c #41382D", +"z c #372F25", +"A c #3D362B", +"B c #6F5840", +"C c #745F41", +"D c #896C4B", +"E c #967B58", +"F c #332F27", +"G c #37332A", +"H c #646450", +"I c #7B6C50", +"J c #5F5C49", +"K c #5B5844", +"L c #33332F", +"M c #2F3335", +"N c #2F352E", +"O c #30312D", +"...+@@@+.#$$%%%&**=-;;;>,')!~~{{", +"####$$$$%%%%%%$%]^/////,//!%%^^^", +"(_::+++++<[}}|}||:_@@1}}}}.$$#..", +"~~$.+$$$~]%%//}||:_2@@@...3.}1@1", +"~~~~~||[[////4![[5@@@__((___::|@", +"66!//{{//7|5558)'>>9-===--;-000a", +">>{{{--------=---;bbcccbbbbbdbbb", +";;99>;;--;;;--;ee9fbbff9cccccccc", +"55ggg558h888hhi8888888i888hh8888", +"88hh)h){>999ee9,')))'''h855|[[6!", +"e9>f'hhhh))hh8[666>>>>>;;;;*^$||", +"(((((jjkk(((lmmll222222nnnnokkkk", +"$$<}_@__(ooopqpppprrrrrssss(_:|[", +"ggt8hiih)fff'{'''{/////]]]]~~~$$", +"uuuuubbcc00000ecc-eeeee9999vv^~~", +"cc0aaaawwwwwa0aaaaaa00-ce>f66666", +"77xjyzzzzzzzzzzzzzAyjxx5666^^^^^", +"g77yy7yyyggttgh'{>v*****vvv~~~~~", +"bbdBBBBCwwwwCCbuuutggyy8iit/~~~~", +"BBCwCCCCCDwDEDDwCd))h8[[:xjAkkkk", +"CwDDDDDDDDDDDCduuih855:|:@2||:::", +"uudddBCCwddduttttutggjjyAFzzzGGG", +">becCCCCCDDwwDwwCBcbbb''{vv**HHH", +"yyygtuudCwCCddBCwDDDIIIcf855:(jj", +"cccBBBBBBddddddddddbuuigggg6[[[[", +"uuuuudddBddddddbbbuuuu''{{{^%~!!", +">>>ecBBBBCBcbbeve>f'h856[::|:(jj", +"**v{'huuuttgggii55it55[!~^^HH==*", +"33%v*vv-=aa==-JJJK{/![+@@22xjjxx", +"jjjkkGGzzLMMNOqqqqpoomm2222}||||", +"ff''hhhhi$$~$$[!$/^v^^{{{{{^^^^^", +"BCCwwIIww==Jv^^]^%/$<<[<<<<[6666"}; diff --git a/noncore/games/kcheckers/pics/wood3.xpm b/noncore/games/kcheckers/pics/wood3.xpm index 5f4f7e2..6c919fa 100644 --- a/noncore/games/kcheckers/pics/wood3.xpm +++ b/noncore/games/kcheckers/pics/wood3.xpm @@ -1,33 +1,33 @@ /* XPM */ -static const char *wood3[]={ +static const char *wood3_xpm[]={ "28 28 2 1", "# c None", -". c #ff8c00", +". c #ff9900", "............................", "............................", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "..########################..", "............................", "............................"}; diff --git a/noncore/games/kcheckers/rcheckers.h b/noncore/games/kcheckers/rcheckers.h index d44bfd1..01913a5 100644 --- a/noncore/games/kcheckers/rcheckers.h +++ b/noncore/games/kcheckers/rcheckers.h @@ -1,28 +1,28 @@ #ifndef RCHECKERS_H #define RCHECKERS_H -#include <checkers.h> +#include "checkers.h" class RCheckers:public Checkers { public: RCheckers(int skill):Checkers(skill){}; bool go1(int,int); bool checkCapture1(); bool checkCapture2(); private: void kingMove2(int,int &); bool manCapture1(int,int,bool &); bool kingCapture1(int,int,bool &); bool manCapture2(int,int &); bool kingCapture2(int,int,int &); }; #endif diff --git a/pics/kcheckers/KCheckers.xpm b/pics/kcheckers/KCheckers.xpm index 6570d88..1ca8ab1 100644 --- a/pics/kcheckers/KCheckers.xpm +++ b/pics/kcheckers/KCheckers.xpm @@ -1,41 +1,40 @@ /* XPM */ -static const char *biglogo[]={ -"32 32 6 1", +static const char *biglogo_xpm[]={ +"32 32 5 1", ". c None", "# c #000000", -"a c #303030", -"d c #d7d7d7", -"c c #eaeaea", -"b c #ffffff", +"c c #d7d7d7", +"b c #eaeaea", +"a c #ffffff", "................................", "................................", "................................", "................................", "....########################....", -"....#aaaaaaaaaaaaaaaaaaaaaa#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbbbbbcbc##########a#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbbbcbcbc##########a#....", -"....#abbbbbbbbbb##########a#....", -"....#abbbcbcbcbc##########a#....", -"....#abbbbbbbbbc##########a#....", -"....#abcbcbcbbcc##########a#....", -"....#abbbbbbbccc##########a#....", -"....#abcbcbccccc##########a#....", -"....#a##########cccccccccca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccccccdca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccccdcdca#....", -"....#a##########cccccccccca#....", -"....#a##########ccccdcdcdca#....", -"....#a##########cccccccccda#....", -"....#a##########ccdcdcdcdca#....", -"....#a##########cccccccdcda#....", -"....#aaaaaaaaaaaaaaaaaaaaaa#....", +"....########################....", +"....##aaaaaaaaaa############....", +"....##aaaaaaabab############....", +"....##aaaaaaaaaa############....", +"....##aaaaababab############....", +"....##aaaaaaaaaa############....", +"....##aaabababab############....", +"....##aaaaaaaaab############....", +"....##abababaabb############....", +"....##aaaaaaabbb############....", +"....##abababbbbb############....", +"....############bbbbbbbbbb##....", +"....############bbbbbbbbbb##....", +"....############bbbbbbbbcb##....", +"....############bbbbbbbbbb##....", +"....############bbbbbbcbcb##....", +"....############bbbbbbbbbb##....", +"....############bbbbcbcbcb##....", +"....############bbbbbbbbbc##....", +"....############bbcbcbcbcb##....", +"....############bbbbbbbcbc##....", +"....########################....", "....########################....", "................................", "................................", "................................", "................................"}; |