⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamedialog.cpp

📁 qgo-1.5.4-r3.tar.gz linux下一个很好玩的游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* *   gamedialog.cpp *///#include "setting.h"#include "gamedialog.h"#include "newgame_gui.h"#include "config.h"#include "misc.h"#include "defines.h"#include "komispinbox.h"#include <qlineedit.h>#include <qpushbutton.h>#include <qspinbox.h>#include <qvariant.h>#include <qtooltip.h>#include <qwhatsthis.h>#include <qcheckbox.h>#include <qcombobox.h>#include <qradiobutton.h>GameDialog::GameDialog(QWidget* parent, const char* name, bool modal, WFlags fl)	: NewGameDialog(parent, name, modal, fl){	have_suggestdata = false;	gsname = GS_UNKNOWN;//	komiSpin->setValue(55);//	buttonOffer->setFocus();	komi_request = false;	is_nmatch = false;  //  boardSizeSpin->setValue(setting->readIntEntry("DEFAULT_SIZE"));//  timeSpin->setValue(setting->readIntEntry("DEFAULT_TIME"));//  byoTimeSpin->setValue(setting->readIntEntry("DEFAULT_BY"));//	cb_free->setChecked(true);}GameDialog::~GameDialog(){}void GameDialog::slot_stats_opponent(){/* 	if (playerWhiteEdit->isReadOnly())	{		// ok, I am white		emit signal_sendcommand("stats " + playerBlackEdit->text(), false);	}	else	{		// ok, I am black		emit signal_sendcommand("stats " + playerWhiteEdit->text(), false);	}*/	emit signal_sendcommand("stats " + playerOpponentEdit->text(), false);}void GameDialog::slot_swapcolors(){qDebug("#### GameDialog::slot_swapcolors()");/*	QString save = playerWhiteEdit->text();	playerWhiteEdit->setText(playerBlackEdit->text());	playerBlackEdit->setText(save);	save = playerWhiteRkEdit->text();	playerWhiteRkEdit->setText(playerBlackRkEdit->text());	playerBlackRkEdit->setText(save);	// swap ReadOnly field	if (playerWhiteEdit->isReadOnly())	{		playerBlackEdit->setReadOnly(true);		playerWhiteEdit->setReadOnly(false);	}	else	{		playerBlackEdit->setReadOnly(false);		playerWhiteEdit->setReadOnly(true);	}*/	if(play_white_button->isChecked())		play_black_button->setChecked(TRUE);	else		play_white_button->setChecked(TRUE);}// button "suggest"void GameDialog::slot_pbsuggest(){qDebug("#### GameDialog::slot_pbsuggest()");	switch (gsname)	{		case NNGS:		case CWS:			// already suggested?			if (!have_suggestdata)			{				// no suggestdata -> send suggest cmd/*				if (playerWhiteEdit->isReadOnly())					emit signal_sendcommand("suggest " + playerBlackEdit->text(), false);				else					emit signal_sendcommand("suggest " + playerWhiteEdit->text(), false);*/				emit signal_sendcommand("suggest " + playerOpponentEdit->text(), false);							}			break;		default:			// IGS etc. don't know about suggest command			break;	}	// two cases: suggest command unknown / suggest command doesn't work - you are not rated	if (!have_suggestdata)	{		if (!oppRk)		{			// cannot calculate without opponent's rank			qWarning("*** No opponent rk given!");			return;		}		// calcualte some suggest values from ranking info		int rkw = rkToKey(playerOpponentRkEdit->text(), true).toInt();		int rkb;		// don't calc for NR		if (oppRk.contains("NR") || myRk.contains("NR"))			rkb = rkw;		else			rkb = rkToKey(myRk,true).toInt();//playerBlackRkEdit->text(), true).toInt();				// white is weaker than black? -> exchange		if (rkw < rkb)			slot_swapcolors();				// calc handi & komi		int diff = abs(rkw - rkb) / 100;		if (diff > 9)			diff = 9;		if (diff == 0)			komiSpin->setValue(55);		else if (diff == 1)			komiSpin->setValue(5);		else		{			komiSpin->setValue(5);			handicapSpin->setValue(diff);		}	}}// from parservoid GameDialog::slot_suggest(const QString &pw, const QString&pb, const QString &handicap, const QString &komi, int size){qDebug("#### GameDialog::slot_suggest()");	pwhite = pw;	pblack = pb;	switch (size)	{		case 19:			h19 = handicap;			k19 = komi;			break;		case 13:			h13 = handicap;			k13 = komi;			break;		case 9:			h9 = handicap;			k9 = komi;			//have_suggestdata = true;			break;	}	// check if names are ok	if ((playerOpponentEdit->text() == pblack || pblack == QString(tr("you"))) &&	    (myName == pwhite || pwhite == QString(tr("you"))))	{		// names are exchanged		slot_swapcolors();	}	else if (playerOpponentEdit->text() != pwhite && pwhite != QString(tr("you")) ||		 myName != pwhite && pblack != QString(tr("you")))	{		// wrong suggest info		/*if (playerWhiteEdit->isReadOnly())			emit signal_sendcommand("suggest " + playerBlackEdit->text(), false);		else			emit signal_sendcommand("suggest " + playerWhiteEdit->text(), false);*/		emit signal_sendcommand("suggest " + playerOpponentEdit->text(), false);	}	// check if size is ok	switch (boardSizeSpin->text().toInt())	{		case 19:			handicapSpin->setValue(h19.toInt());			komiSpin->setValue(k19.toInt());			break;		case 13:			handicapSpin->setValue(h13.toInt());			komiSpin->setValue(k13.toInt());			break;		case 9:			handicapSpin->setValue(h13.toInt());			komiSpin->setValue(k13.toInt());			break;				default:			break;	}/*	// check if button pressed -> set values immediatly	if (have_suggestdata)	{		slot_pbsuggest();		//pb_suggest->toggle();	}//*/}void GameDialog::slot_opponentopen(const QString &opp){qDebug("#### GameDialog::slot_opponentopen()");	if (playerOpponentEdit->text() != opp)//(playerWhiteEdit->isReadOnly() && playerBlackEdit->text() != opp ||	    playerBlackEdit->isReadOnly() && playerWhiteEdit->text() != opp)	    // not for me	    return;	QString me;	QString opponent = playerOpponentEdit->text();;	// send match command, send tell:	/*if (playerWhiteEdit->isReadOnly())	{		// ok, I am white		opponent = playerBlackEdit->text();		me = playerWhiteEdit->text();	}	else	{		// ok, I am black		opponent = playerWhiteEdit->text();		me = playerBlackEdit->text();	}	*/	// 24 *xxxx*: CLIENT: <qGo 1.9.12> match xxxx wants handicap 0, komi 0.5[, free]	// this command is not part of server preferences "use Komi" and "auto negotiation"	QString send = "tell " + opponent + " CLIENT: <qGo " + VERSION + "> match " +		me + " wants handicap " + handicapSpin->text() + ", komi " +		komiSpin->text();	if (ComboBox_free->currentText() == QString(tr("yes")))		send += ", free";	emit signal_sendcommand(send, false);}void GameDialog::slot_offer(bool active){qDebug("#### GameDialog::slot_offer()");	// active serves for more in the future...	if (!active)		return;	// if both names are identical -> teaching game	if (playerOpponentEdit->text() == myName)	{		emit signal_sendcommand("teach " + boardSizeSpin->text(), false);		// prepare for future use...		buttonOffer->setOn(false);		buttonDecline->setDisabled(true);		buttonCancel->setEnabled(true);		buttonOffer->setText(tr("Offer"));		emit accept();		return;	}	// send match command	QString color = " B ";	if (play_white_button->isChecked())		color = " W ";	else if (play_nigiri_button->isChecked() && is_nmatch)		color = " N ";	//{		// ok, I am white

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -