添加菜单中摆棋的处理

5 views
Skip to first unread message

lerosua

unread,
Apr 30, 2009, 8:24:55 AM4/30/09
to gmchess-dev
添加菜单中摆棋的处理。
就是从对战状态回到自由状态。为free_game函数。
此时为用户自己随意摆动棋子 ,是最初的状态。当然以后要添加去子功能以便能摆成残局啥的。
svn 145

yalong

unread,
Apr 30, 2009, 9:27:40 PM4/30/09
to gmche...@googlegroups.com
Hi,

关于svn,直接开了权限不大好吧。
我意思是,是否可以借鉴别的项目的开发模式,用patch的方式来maillist进行讨论。
比如,这次的更新就可以表示为:

$svn diff -f 144:145

Index: src/MainWindow.cc
===================================================================
--- src/MainWindow.cc    (revision 144)
+++ src/MainWindow.cc    (revision 145)
@@ -151,7 +151,6 @@
         return ;
     }
     */
-    DLOG("xxx\n");
     if(player){
         p1_image->hide();
         p2_image->show();
@@ -443,7 +442,9 @@
 
 void MainWindow::on_menu_free_play()
 {
-
+    board->free_game();
+    m_refTreeModel->clear();
+    change_status();
 }
 
 void MainWindow::on_menu_file_quit()
@@ -583,7 +584,7 @@
     bool f_use=1;
     if( READ_STATUS != f_status){
         f_use = 0;
-        buttonbox_war->hide();
+        //buttonbox_war->hide();
     }
     btn_next->set_sensitive(f_use);
     btn_prev->set_sensitive(f_use);
Index: src/Board.cc
===================================================================
--- src/Board.cc    (revision 144)
+++ src/Board.cc    (revision 145)
@@ -766,20 +766,22 @@
     }
 }
 
+void Board::free_game()
+{
+    m_robot.send_ctrl_command("quit\n");
+    m_robot.stop();
+    m_status = FREE_STATUS;
 
+    m_engine.init_snapshot(start_fen);
+    redraw();
+}
+
 void Board::start_robot()
 {
     m_status = FIGHT_STATUS;
 
     m_robot.start();
     m_robot.send_ctrl_command("ucci\n");
-    //m_engine.init_snapshot(start_fen);
-
-    //moves_lines.clear();
-    //moves_lines = postion_str + std::string(start_fen);
-    ////user_player =1;
-    //redraw();
-
     new_game();
 }
 
Index: src/Board.h
===================================================================
--- src/Board.h    (revision 144)
+++ src/Board.h    (revision 145)
@@ -88,6 +88,8 @@
         void start_robot();
         /** 开启新游戏,即在引擎已启动的情况下重新游戏*/
         void new_game();
+        /** 自由模式,即摆棋*/
+        void free_game();
         /** 读取AI的输出,并根据输出的着法走棋*/
         bool robot_log(const Glib::IOCondition& condition);
         /** 回到最初局面*/

当然,你是maintainer,你来决定是不是把这部分融进代码树。
感觉,这样的模式对以后发展不错。

比如,我弄了一些代码出来,可以先发到这里,你同意了,就可以commit了。

thanks.
                yalong

2009/4/30 lerosua <ler...@gmail.com>

yalong

unread,
Apr 30, 2009, 10:13:54 PM4/30/09
to gmche...@googlegroups.com
hi,

checkout下来后,遇到问题了,又解决了。automake的版本必须是1.10。

细节:
在configure的时候,提示:
yalong@yalong-laptop:~/GNU/gmchess$ ./configure
configure: error: cannot find install-sh or install.sh in "." "./.." "./../..

通过查看这些文件,发现缺失的那些都是link
lrwxrwxrwx 1 yalong yalong     32 2009-04-30 21:48 depcomp -> /usr/share/automake-1.10/depcomp
-rw-r--r-- 1 yalong yalong  52035 2009-04-30 21:48 Doxyfile
lrwxrwxrwx 1 yalong yalong     32 2009-04-30 21:48 INSTALL -> /usr/share/automake-1.10/INSTALL
lrwxrwxrwx 1 yalong yalong     35 2009-04-30 21:48 install-sh -> /usr/share/automake-1.10/install-sh

后来发现是,自己automake的版本过低了。
drwxr-xr-x    4 root root 4.0K 2008-10-31 08:06 automake-1.7
drwxr-xr-x    4 root root 4.0K 2008-10-31 08:26 automake-1.9

通过apt安装automake解决了。不知道,这些对automake版本的限制能去掉么?
                              yalong

2009/4/30 yalong <agin...@gmail.com>

lerosua

unread,
May 1, 2009, 2:11:35 AM5/1/09
to gmche...@googlegroups.com
hi:
谢谢提醒,这个我倒没想过,关于多人的开发模式也许我再思考一下。

lerosua

unread,
May 1, 2009, 2:12:29 AM5/1/09
to gmche...@googlegroups.com
这是因为我用arch开发,系统总是最新的,因此做出来的automake默认就是比较高
的版本。

yalong

unread,
May 1, 2009, 7:21:35 AM5/1/09
to gmche...@googlegroups.com
不用谢,大家一起增加经验。;)

2009/5/1 lerosua <ler...@gmail.com>

lerosua

unread,
May 1, 2009, 8:39:00 AM5/1/09
to gmche...@googlegroups.com
hi:
经yalong提醒,我也觉得一下子开放svn权限的方式有点不妥。
因为新来的未必能全熟悉代码的进度,大家暂采用patch方式提交
代码,等提交得多了,对代码也熟悉了,能一起把握进度的时候再
开放相应的svn权限。
当然大家还有啥建议都可以提出来。
Reply all
Reply to author
Forward
0 new messages