Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gtk/gtk.h>
- #define ACE 0
- #define CARDS 13
- #define SUITS 4
- #define MAX_CARDS 10
- #define SCREENLINECOUNT 17
- struct table {
- int cards_dealer[MAX_CARDS];
- int cards_player[MAX_CARDS];
- int points[MAX_CARDS]; /* Points for each hand */
- int total_player, total_dealer; /* total points */
- int hand_player, hand_dealer; /* number of cards dealt */
- int aces_player, aces_dealer; /* NĀ° of aces: These variable are used to attribute values 1/11 to Aces*/
- int credit;
- int bet;
- int end;
- GtkWidget *fixed;
- };
- enum outcomes {NO_WINNER, PLAYER_WINS, BLACKJACK, DEALER_WINS, TIE, GAME_OVER, ID_DEALER, ID_PLAYER};
- static void destroy (GtkWidget *window, gpointer data);
- void button_clicked(GtkWidget *widget, struct table *game);
- int main (int argc, char *argv[])
- {
- GtkWidget *window, *button;
- struct table game;
- game.hand_dealer = 2;
- game.hand_player = 2;
- gtk_init (&argc, &argv);
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title (GTK_WINDOW (window), "Show Images");
- gtk_window_maximize (GTK_WINDOW (window));
- g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
- GtkCssProvider *css_provider = gtk_css_provider_new();
- gtk_css_provider_load_from_path (css_provider, "style.css", NULL);
- GdkScreen *myScreen= gdk_screen_get_default ();
- gtk_style_context_add_provider_for_screen
- (myScreen,
- GTK_STYLE_PROVIDER (css_provider),
- GTK_STYLE_PROVIDER_PRIORITY_USER);
- game.fixed = gtk_fixed_new();
- gtk_container_add (GTK_CONTAINER (window), game.fixed);
- button = gtk_button_new_with_label("HIT");
- gtk_fixed_put(GTK_FIXED(game.fixed), button, 300, 650);
- gtk_widget_set_size_request(button, 80, 30);
- g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button_clicked), &game);
- button = gtk_button_new_with_label("STAND");
- gtk_fixed_put(GTK_FIXED(game.fixed), button, 500, 650);
- gtk_widget_set_size_request(button, 80, 30);
- button = gtk_button_new_with_label("QUIT");
- gtk_fixed_put(GTK_FIXED(game.fixed), button, 700, 650);
- gtk_widget_set_size_request(button, 80, 30);
- g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy), &game);
- gtk_widget_show_all (window);
- gtk_main ();
- return 0;
- }
- void button_clicked(GtkWidget *widget, struct table *game)
- {
- const gchar* cards_dealer[] = {"resized_cards/010.png", "resized_cards/011.png", "resized_cards/312.png"};
- const gchar* cards_player[] = {"resized_cards/00.png", "resized_cards/01.png", "resized_cards/03.png"};
- static int current_hand = 0;
- static int gap1, gap2;
- gap1 = gap2 = 0;
- GtkWidget *image_dealer;
- GtkWidget *image_player;
- if (current_hand == 0) {
- image_dealer = gtk_image_new_from_file ("resized_cards/back.png");
- gtk_fixed_put(GTK_FIXED(game->fixed), image_dealer, 200+gap1, 100);
- gap1 += 50;
- }
- if (current_hand < game->hand_dealer) {
- image_dealer = gtk_image_new_from_file (cards_dealer[game->hand_dealer]);
- gtk_fixed_put(GTK_FIXED(game->fixed), image_dealer, 200+gap1, 100);
- gap1 += 50;
- game->hand_dealer++;
- }
- if (current_hand < game->hand_player) {
- image_player = gtk_image_new_from_file (cards_player[game->hand_player]);
- gtk_fixed_put(GTK_FIXED(game->fixed), image_player, 200+gap2, 450);
- gap2 += 50;
- game->hand_player++;
- }
- current_hand++;
- gtk_widget_show(image_dealer);
- gtk_widget_show(image_player);
- }
- static void destroy (GtkWidget *window, gpointer data)
- {
- gtk_main_quit ();
- }
- void init_game(struct table *game) {
- game->total_player = game->total_dealer = 0;
- game->aces_player = game->aces_dealer = 0;
- game->hand_dealer = game->hand_player = 2;
- game->end = 0;
- /*draw_cards(player);*/
- /*assign_points(player); */
- /*assign_points(player); */
- game->credit = 50;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement