linux猜拳游戏代码,在Linux下通过gtk做一个简单的小游戏(猜拳)
发布日期:2021-08-20 01:25:46 浏览次数:2 分类:技术文章

本文共 4747 字,大约阅读时间需要 15 分钟。

#include

void callback1(GtkButton*button,gpointer user_data);void callback2(GtkButton*button,gpointer user_data);void callback3(GtkButton*button,gpointer user_data);void close_window(GtkWidget *widget, GdkEvent *event, gpointer data)

{

gtk_main_quit();

}

GtkWidget*label_title;

GtkWidget*label_man;

GtkWidget*label_vs;

GtkWidget*label_vs_s;

GtkWidget*label_me;

GtkWidget*label_me_s;

GtkWidget*label_men_s;//GtkWidget *table;

GtkWidget*vbox_me_s;int main(int argc, char *argv[])

{//初始化

gtk_init(&argc,&argv);//创建顶层窗口

GtkWidget *window =gtk_window_new(GTK_WINDOW_TOPLEVEL);//创建按钮,文本信息为"window"

gtk_window_set_title(GTK_WINDOW(window), "table");

g_signal_connect(window,"destroy", G_CALLBACK(gtk_main_quit), NULL);

gtk_container_set_border_width(GTK_CONTAINER(window),10);//创建布局

GtkWidget *table = gtk_table_new(4, 4, TRUE); 容器加入窗口

gtk_container_add(GTK_CONTAINER(window), table);

label_title= gtk_label_new("猜拳游戏");

gtk_table_attach_defaults(GTK_TABLE(table), label_title,1, 2, 0, 1);

label_man= gtk_label_new("机器人");

gtk_table_attach_defaults(GTK_TABLE(table), label_man,0, 1, 1, 2);

label_vs= gtk_label_new("VS");

gtk_table_attach_defaults(GTK_TABLE(table), label_vs,1, 2, 1, 2);

label_me= gtk_label_new("自己");

gtk_table_attach_defaults(GTK_TABLE(table), label_me,2, 3, 1, 2);//设置剪刀选项

GtkWidget *vbox_men_s = gtk_vbox_new(TRUE,20);

label_men_s= gtk_label_new("");

gtk_container_add(GTK_CONTAINER(vbox_men_s),label_men_s);

gtk_table_attach_defaults(GTK_TABLE(table), vbox_men_s,0, 1, 2, 3);//设置输赢选项

GtkWidget *vbox_vs = gtk_vbox_new(TRUE,20);

label_vs_s= gtk_label_new("");

gtk_container_add(GTK_CONTAINER(vbox_vs),label_vs_s);

gtk_table_attach_defaults(GTK_TABLE(table), vbox_vs,1, 2, 2, 3);//设置石头选项

GtkWidget *vbox_me_s = gtk_vbox_new(TRUE,20);/****/g_signal_connect(vbox_me_s,"pressed",G_CALLBACK(callback1), NULL);

g_signal_connect(vbox_me_s,"pressed",G_CALLBACK(callback2), NULL);

g_signal_connect(vbox_me_s,"pressed",G_CALLBACK(callback3), NULL);/****/label_me_s= gtk_label_new("");

gtk_container_add(GTK_CONTAINER(vbox_me_s),label_me_s);

gtk_table_attach_defaults(GTK_TABLE(table), vbox_me_s,2, 3, 2, 3);

GtkWidget*button_jd = gtk_button_new_with_label("剪刀");

g_signal_connect(button_jd,"pressed",G_CALLBACK(callback2), NULL);

gtk_table_attach_defaults(GTK_TABLE(table), button_jd,1, 2, 3, 4);

GtkWidget*button_st = gtk_button_new_with_label("石头");

g_signal_connect(button_st,"pressed",G_CALLBACK(callback1), NULL);

gtk_table_attach_defaults(GTK_TABLE(table), button_st,0, 1, 3, 4);

GtkWidget*button_bu = gtk_button_new_with_label("布");

g_signal_connect(button_bu,"pressed",G_CALLBACK(callback3), NULL);

gtk_table_attach_defaults(GTK_TABLE(table), button_bu,2, 3, 3, 4);

gtk_widget_show_all(window);

gtk_main();return 0;

}int i=0,j=0,k=0;void callback1(GtkButton*button,gpointer user_data)

{

i++;

j++;char haha[100] = "";char hehe[100] = "";char hihi[100] = "";

sprintf(haha,"石头",i);

gtk_label_set_text(GTK_LABEL(label_me_s),haha);int a = rand()%3+1;if(a==1){

sprintf(hehe,"石头",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"平局",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else if(a==2){

sprintf(hehe,"剪刀",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"赢",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else{

sprintf(hehe,"布",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"输",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}

}void callback2(GtkButton*button,gpointer user_data)

{

i++;

j++;char haha[100] = "";char hehe[100] = "";char hihi[100] = "";

sprintf(haha,"剪刀",i);

gtk_label_set_text(GTK_LABEL(label_me_s),haha);int a = rand()%3+1;if(a==1){

sprintf(hehe,"石头",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"输",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else if(a==2){

sprintf(hehe,"剪刀",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"平局",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else{

sprintf(hehe,"布",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"赢",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}

}void callback3(GtkButton*button,gpointer user_data)

{

i++;

j++;char haha[100] = "";char hehe[100] = "";char hihi[100] = "";

sprintf(haha,"布",i);

gtk_label_set_text(GTK_LABEL(label_me_s),haha);int a = rand()%3+1;if(a==1){

sprintf(hehe,"石头",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"赢",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else if(a==2){

sprintf(hehe,"剪刀",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"输",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}else{

sprintf(hehe,"布",j);

gtk_label_set_text(GTK_LABEL(label_men_s),hehe);

sprintf(hihi,"平局",k);

gtk_label_set_text(GTK_LABEL(label_vs_s),hihi);

}

}

转载地址:https://blog.csdn.net/weixin_32141627/article/details/116918124 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux亮度调节指令,Linux Mint 亮度调节——xrandr命令学习
下一篇:linux变量默认值,使用bash中的单个命令为shell变量分配默认值

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月28日 23时11分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章