Gtk下的数独小游戏(已添加截图)

选修了GTK的课,也没深入学习,最后作业就做了这个小玩意,Gtk下的数独小游戏,UBUNTU和SUSE下顺利编译且能玩,代码写得有点繁琐,

也没涉及到GDK,有点遗憾,如果以后有机会的话,可能还会深入学习Gtk吧,目前先搁一阵子好了。

不过GTK各种函数本身也很长就是了,地图生成函数不是很完美,可以生成合理的数独地图,但数独的解实在太多了,导致第二列开头几个数字总是不变,

比如第二列第一个数总是1。

其实可以用随机数序列试探的方法,但是还没有试









函数说明列表:

程序函数列表:

1.      void print_map() 打印地图信息,调试用

2.      int search(int number,int x,int y) 判断把数number放入行列坐标(x,y)是否符合当前已有地图的要求,是则返回1,否则返回0;

3.      void on_win() 游戏胜利时触发的回调函数,跳出对话框提醒;

4.      void check_win() 检查是否胜利,胜利则调用3中的on_win()

5.      void on_num_click() 点击地图时获取坐标

6.      void on_change_click() 在已获取坐标的情况下,点击数字键,可将地图更新

7.      void set_bn_number() 用户界面按钮标签更新函数

8.      void initialize() 初始化函数

9.      int generate(int choice,int row,int column)生成地图函数

10.  void firstcolumn() 随机生成第一列

11.  void start() 随机挖空地图,将用户界面按钮标签置“ ”

12.   void restart() 重新开始游戏函数

13.  void setdifficulty(GtkWidget * widget,gpointer data) 设置难度的函数

14.   void quit(); 退出菜单调用函数

15.  void about_dialog(GtkWidget*widget,GtkWindow * parent)关于菜单调用函数

 

对了输出命令是这个:

gcc -std=c99 -o  sudoku sudoku.c `pkg-config  gtk+-2.0 --cflags --libs ` 


#include <gtk/gtk.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <glib.h>

int can[10][10];
int check[9][9];
int bk_map[9][9];
int map[9][9];
int num[9][9];
int ran[10];
int g_row=0,g_column=0;
int sum=0;
int difficulty=1;

GtkWidget *bn[9][9];
GtkWidget *g_window;






void print_map()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值