Blackjack
function varargout = Blackjack(varargin)
% BLACKJACK MATLAB code for Blackjack.fig
% BLACKJACK, by itself, creates a new BLACKJACK or raises the existing
% singleton*.
%
% H = BLACKJACK returns the handle to a new BLACKJACK or the handle to
% the existing singleton*.
%
% BLACKJACK('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in BLACKJACK.M with the given input arguments.
%
% BLACKJACK('Property','Value',...) creates a new BLACKJACK or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Blackjack_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Blackjack_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Blackjack
% Last Modified by GUIDE v2.5 27-Nov-2018 21:10:54
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Blackjack_OpeningFcn, ...
'gui_OutputFcn', @Blackjack_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
end
% --- Executes just before Blackjack is made visible.
function Blackjack_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Blackjack (see VARARGIN)
% Choose default command line output for Blackjack
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%Sets the GUI to its initial state, the Play Game screen
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.pWalletText,'Visible','Off');
set(handles.pBetText,'Visible','Off');
set(handles.resultsText,'Visible','Off');
set(handles.newWalletText,'Visible','Off');
set(handles.newBetText,'Visible','Off');
set(handles.currentBet2,'Visible','Off');
set(handles.pTotalMoney,'Visible','Off');
set(handles.resultMsg,'Visible','Off');
set(handles.pBetVal,'Visible','Off');
set(handles.curWalletVal,'Visible','Off');
set(handles.continueButton,'Visible','Off');
set(handles.totalWallet,'Visible','Off');
set(handles.soundVal,'Visible','Off');
%Ensures the user's choice for sound carries thoughout the program
global var;
var.soundOn = 0;
% UIWAIT makes Blackjack wait for user response (see UIRESUME)
% uiwait(handles.figure1);
end
% --- Outputs from this function are returned to the command line.
function varargout = Blackjack_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
% --- Executes on button press in pushbutton1.
%Executes if the "Hit" button is presses
%Gives the user another card
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
%Reads the current global wallet for betting
var.wallet = str2double(get(handles.totalWallet,'String'));
ListBoxString = get(handles.listbox2,'String');
ListBoxValue = get(handles.listbox2,'Value');
%The current bet the user placed
if(find(strcmp(ListBoxString,'$0')) == ListBoxValue)
set(handles.pBetVal,'String','$0');
var.currentBet = 0;
elseif(find(strcmp(ListBoxString,'$1')) == ListBoxValue)
set(handles.pBetVal,'String','$1');
var.currentBet = 1;
elseif(find(strcmp(ListBoxString,'$3')) == ListBoxValue)
set(handles.pBetVal,'String','$3');
var.currentBet = 3;
elseif(find(strcmp(ListBoxString,'$5')) == ListBoxValue)
set(handles.pBetVal,'String','$5');
var.currentBet = 5;
elseif(find(strcmp(ListBoxString,'$10')) == ListBoxValue)
set(handles.pBetVal,'String','$10');
var.currentBet = 10;
elseif(find(strcmp(ListBoxString,'$20')) == ListBoxValue)
set(handles.pBetVal,'String','$20');
var.currentBet = 20;
elseif(find(strcmp(ListBoxString,'All-in')) == ListBoxValue)
set(handles.pBetVal,'String',strcat('$',get(handles.totalWallet,'String')));
var.currentBet = str2double(get(handles.totalWallet,'String'));
end
%Choses a random card to add to the users cards
if var.playerSum > 21
var.numCols = var.numCols + 1;
randomElement = randi(length(var.availableCards));
%Ensures the card isn't already picked
while var.availableCards(randomElement) == 0
randomElement = randi(length(var.availableCards));
end
%Adds the card to the users vector, and removes it from the available cards
var.playerCards(length(var.playerCards) + 1) = var.availableCards(randomElement);
var.dealtCards(length(var.dealtCards) + 1) = var.playerCards(length(var.playerCards));
var.availableCards(randomElement) = 0;
%Displays the cards
for i = 1:length(var.playerCards)
imgFile = char(var.cards(var.playerCards(i)));
img = strcat('images/',imgFile);
axes(handles.playerSpace);
ax = subplot(1,var.numCols,i);
imshow(img,'Parent',ax);
end
%Adds the card's worth to the player's sum
switch var.playerCards(length(var.playerCards))
case 1
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
case 2
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
case 3
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
case 4
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
case 5
var.playerSum = var.playerSum + 2;
case 6
var.playerSum = var.playerSum + 2;
case 7
var.playerSum = var.playerSum + 2;
case 8
var.playerSum = var.playerSum + 2;
case 9
var.playerSum = var.playerSum + 3;
case 10
var.playerSum = var.playerSum + 3;
case 11
var.playerSum = var.playerSum + 3;
case 12
var.playerSum = var.playerSum + 3;
case 13
var.playerSum = var.playerSum + 4;
case 14
var.playerSum = var.playerSum + 4;
case 15
var.playerSum = var.playerSum + 4;
case 16
var.playerSum = var.playerSum + 4;
case 17
var.playerSum = var.playerSum + 5;
case 18
var.playerSum = var.playerSum + 5;
case 19
var.playerSum = var.playerSum + 5;
case 20
var.playerSum = var.playerSum + 5;
case 21
var.playerSum = var.playerSum + 6;
case 22
var.playerSum = var.playerSum + 6;
case 23
var.playerSum = var.playerSum + 6;
case 24
var.playerSum = var.playerSum + 6;
case 25
var.playerSum = var.playerSum + 7;
case 26
var.playerSum = var.playerSum + 7;
case 27
var.playerSum = var.playerSum + 7;
case 28
var.playerSum = var.playerSum + 7;
case 29
var.playerSum = var.playerSum + 8;
case 30
var.playerSum = var.playerSum + 8;
case 31
var.playerSum = var.playerSum + 8;
case 32
var.playerSum = var.playerSum + 8;
case 33
var.playerSum = var.playerSum + 9;
case 34
var.playerSum = var.playerSum + 9;
case 35
var.playerSum = var.playerSum + 9;
case 36
var.playerSum = var.playerSum + 9;
case 37
var.playerSum = var.playerSum + 10;
case 38
var.playerSum = var.playerSum + 10;
case 39
var.playerSum = var.playerSum + 10;
case 40
var.playerSum = var.playerSum + 10;
case 41
var.playerSum = var.playerSum + 10;
case 42
var.playerSum = var.playerSum + 10;
case 43
var.playerSum = var.playerSum + 10;
case 44
var.playerSum = var.playerSum + 10;
case 45
var.playerSum = var.playerSum + 10;
case 46
var.playerSum = var.playerSum + 10;
case 47
var.playerSum = var.playerSum + 10;
case 48
var.playerSum = var.playerSum + 10;
case 49
var.playerSum = var.playerSum + 10;
case 50
var.playerSum = var.playerSum + 10;
case 51
var.playerSum = var.playerSum + 10;
case 52
var.playerSum = var.playerSum + 10;
end
%Sets the text element to the new sum
set(handles.playerSum,'String',var.playerSum);
end
%Initilizes the winner and loser audio files
w = audioread('winner.wav');
l = audioread('loser.wav');
won = audioplayer(w,44100);
lost = audioplayer(l,44100);
%Converts the Sound On/Off Val to a number
var.soundOn = str2double(get(handles.soundVal,'String'));
%Display a message if the player went over
if var.playerSum > 21
set(handles.message,'String','Bust!');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Lost','Visible','On','ForegroundColor','red');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
%If the user bet, remove it from the current wallet amount
var.wallet = var.wallet - var.currentBet;
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
if var.soundOn ~= 0
playblocking(lost);
end
end
end
% --- Executes on button press in pushbutton2.
%Executes if the "Stand" button is pressed
%The dealer determines whether to hit or stand
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
%Wallet for betting
var.wallet = str2double(get(handles.totalWallet,'String'));
ListBoxString = get(handles.listbox2,'String');
ListBoxValue = get(handles.listbox2,'Value');
%Current bet value
if(find(strcmp(ListBoxString,'$0')) == ListBoxValue)
set(handles.pBetVal,'String','$0');
var.currentBet = 0;
elseif(find(strcmp(ListBoxString,'$1')) == ListBoxValue)
set(handles.pBetVal,'String','$1');
var.currentBet = 1;
elseif(find(strcmp(ListBoxString,'$3')) == ListBoxValue)
set(handles.pBetVal,'String','$3');
var.currentBet = 3;
elseif(find(strcmp(ListBoxString,'$5')) == ListBoxValue)
set(handles.pBetVal,'String','$5');
var.currentBet = 5;
elseif(find(strcmp(ListBoxString,'$10')) == ListBoxValue)
set(handles.pBetVal,'String','$10');
var.currentBet = 10;
elseif(find(strcmp(ListBoxString,'$20')) == ListBoxValue)
set(handles.pBetVal,'String','$20');
var.currentBet = 20;
elseif(find(strcmp(ListBoxString,'All-in')) == ListBoxValue)
set(handles.pBetVal,'String',strcat('$',get(handles.totalWallet,'String')));
var.currentBet = str2double(get(handles.totalWallet,'String'));
end
var.numCols = 2;
while var.dealerSum <= 17 & var.playerSum > var.dealerSum
%Dealer wants to hit
var.numCols = var.numCols + 1;
randomElement = randi(length(var.availableCards));
%Ensures the card isn't already picked
while var.availableCards(randomElement) == 0
randomElement = randi(length(var.availableCards));
end
var.dealerCards(length(var.dealerCards) + 1) = var.availableCards(randomElement);
var.dealtCards(length(var.dealtCards) + 1) = var.dealerCards(length(var.dealerCards));
var.availableCards(randomElement) = 0;
%Displays all of the dealer's cards
for k = 1:length(var.dealerCards)
imgFile = char(var.cards(var.dealerCards(k)));
axes(handles.dealerSpace);
img = strcat('images/',imgFile);
bx = subplot(1,var.numCols,k);
imshow(img, 'Parent', bx);
end
%Determines the dealer sum with the new card
switch var.dealerCards(length(var.dealerCards))
case 1
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 2
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 3
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 4
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 5
var.dealerSum = var.dealerSum + 2;
case 6
var.dealerSum = var.dealerSum + 2;
case 7
var.dealerSum = var.dealerSum + 2;
case 8
var.dealerSum = var.dealerSum + 2;
case 9
var.dealerSum = var.dealerSum + 3;
case 10
var.dealerSum = var.dealerSum + 3;
case 11
var.dealerSum = var.dealerSum + 3;
case 12
var.dealerSum = var.dealerSum + 3;
case 13
var.dealerSum = var.dealerSum + 4;
case 14
var.dealerSum = var.dealerSum + 4;
case 15
var.dealerSum = var.dealerSum + 4;
case 16
var.dealerSum = var.dealerSum + 4;
case 17
var.dealerSum = var.dealerSum + 5;
case 18
var.dealerSum = var.dealerSum + 5;
case 19
var.dealerSum = var.dealerSum + 5;
case 20
var.dealerSum = var.dealerSum + 5;
case 21
var.dealerSum = var.dealerSum + 6;
case 22
var.dealerSum = var.dealerSum + 6;
case 23
var.dealerSum = var.dealerSum + 6;
case 24
var.dealerSum = var.dealerSum + 6;
case 25
var.dealerSum = var.dealerSum + 7;
case 26
var.dealerSum = var.dealerSum + 7;
case 27
var.dealerSum = var.dealerSum + 7;
case 28
var.dealerSum = var.dealerSum + 7;
case 29
var.dealerSum = var.dealerSum + 8;
case 30
var.dealerSum = var.dealerSum + 8;
case 31
var.dealerSum = var.dealerSum + 8;
case 32
var.dealerSum = var.dealerSum + 8;
case 33
var.dealerSum = var.dealerSum + 9;
case 34
var.dealerSum = var.dealerSum + 9;
case 35
var.dealerSum = var.dealerSum + 9;
case 36
var.dealerSum = var.dealerSum + 9;
case 37
var.dealerSum = var.dealerSum + 10;
case 38
var.dealerSum = var.dealerSum + 10;
case 39
var.dealerSum = var.dealerSum + 10;
case 40
var.dealerSum = var.dealerSum + 10;
case 41
var.dealerSum = var.dealerSum + 10;
case 42
var.dealerSum = var.dealerSum + 10;
case 43
var.dealerSum = var.dealerSum + 10;
case 44
var.dealerSum = var.dealerSum + 10;
case 45
var.dealerSum = var.dealerSum + 10;
case 46
var.dealerSum = var.dealerSum + 10;
case 47
var.dealerSum = var.dealerSum + 10;
case 48
var.dealerSum = var.dealerSum + 10;
case 49
var.dealerSum = var.dealerSum + 10;
case 50
var.dealerSum = var.dealerSum + 10;
case 51
var.dealerSum = var.dealerSum + 10;
case 52
var.dealerSum = var.dealerSum + 10;
end
%Sets the dealer sum value
set(handles.dealerSum,'String',var.dealerSum);
end
%Flips the second dealer card over
for k = 1:2
imgFile = char(var.cards(var.dealerCards(k)));
axes(handles.dealerSpace);
img = strcat('images/',imgFile);
bx = subplot(1,var.numCols,k);
imshow(img, 'Parent', bx);
end
set(handles.dealerSum,'String',var.dealerSum);
%Initiates the audio files
w = audioread('winner.wav');
l = audioread('loser.wav');
won = audioplayer(w,44100);
lost = audioplayer(l,44100);
var.soundOn = str2double(get(handles.soundVal,'String'));
%Displays different messages depending if the user wins, loses, or pushes
if var.dealerSum > 21 && var.playerSum <= 21
set(handles.message,'String','You Win!');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Won','Visible','On','ForegroundColor','green');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
var.wallet = var.wallet + var.currentBet;
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
if var.soundOn ~= 0
playblocking(won);
end
elseif var.dealerSum <= 21 && var.playerSum > 21
set(handles.message,'String','Bust!');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Lost','Visible','On','ForegroundColor','red');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
var.wallet = var.wallet - var.currentBet;
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
if var.soundOn ~= 0
playblocking(lost);
end
elseif var.dealerSum == var.playerSum
set(handles.message,'String','Push!');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Push','Visible','On','ForegroundColor','white');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
elseif var.dealerSum > var.playerSum
set(handles.message,'String','You Lose');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Lost','Visible','On','ForegroundColor','red');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
var.wallet = var.wallet - var.currentBet;
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
if var.soundOn ~= 0
playblocking(lost);
end
elseif var.playerSum > var.dealerSum
set(handles.message,'String','You Win!');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.resultMsg,'String','Won','Visible','On','ForegroundColor','green');
set(handles.pushbutton1,'Enable','off');
set(handles.pushbutton2,'Enable','off');
var.wallet = var.wallet + var.currentBet;
set(handles.totalWallet,'String',var.wallet);
newWallet = strcat('$',get(handles.totalWallet,'String'));
set(handles.curWalletVal,'String',newWallet);
if var.soundOn ~= 0
playblocking(won);
end
else
end
end
% --- Executes on button press in pushbutton4.
%Resets to the Play Game page if the "Main Menu" button is pressed
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clear global;
set(handles.playButton,'String','Play Game','Visible','On');
set(handles.uipanel2,'Visible','On');
set(handles.totalMoney,'Visible','On');
set(handles.walletText,'Visible','On');
set(handles.currentBetText,'Visible','On');
set(handles.currentBet,'Visible','On');
set(handles.walletText,'Visible','On');
set(handles.title,'Visible','On');
set(handles.listbox2,'Visible','On');
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.info,'Visible','On');
set(handles.pushbutton1,'Enable','on');
set(handles.pushbutton2,'Enable','on');
set(handles.totalWallet,'String','50');
set(handles.pWalletText,'Visible','Off');
set(handles.pTotalMoney,'Visible','Off');
set(handles.pBetText,'Visible','Off');
set(handles.pBetVal,'Visible','Off');
set(handles.resultsText,'Visible','Off');
set(handles.resultMsg,'Visible','Off');
set(handles.newWalletText,'Visible','Off');
set(handles.curWalletVal,'Visible','Off');
set(handles.newBetText,'Visible','Off');
set(handles.currentBet2,'Visible','Off');
end
% --- Executes during object creation, after setting all properties.
%Creates the uipanel
function uipanel1_CreateFcn(hObject, eventdata, handles)
% hObject handle to uipanel1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
end
% --- Executes on button press in playButton.
%Initializes the game; "Play Game" button is pressed
%Generates two cards for user; two cards for dealer
%Displays the cards and initial sum
function playButton_Callback(hObject, eventdata, handles)
% hObject handle to playButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clear global;
global var;
%Imports the user cards images
var.cards = importdata('cards.txt');
var.numCols = 2;
%Makes an array from 1 to 52, with each number representing a card
for i = 1:52
var.availableCards(i) = i;
end
set(handles.pTotalMoney,'String',strcat('$',get(handles.totalWallet,'String')));
%two random initial cards for player
for j = 1:2
randomElement = randi(length(var.availableCards));
while var.availableCards(randomElement) == 0
randomElement = randi(length(var.availableCards));
end
var.playerCards(j) = var.availableCards(randomElement);
var.dealtCards(j) = var.playerCards(j);
var.availableCards(randomElement) = 0;
imgFile = char(var.cards(var.playerCards(j)));
%Outputs the card
img = strcat('images/',imgFile);
axes(handles.playerSpace);
ax = subplot(1,var.numCols,j);
imshow(img,'Parent',ax);
end
for k = 1:2
%two random initial cards for dealer
randomElement = randi(length(var.availableCards));
while var.availableCards(randomElement) == 0
randomElement = randi(length(var.availableCards));
end
var.dealerCards(k) = var.availableCards(randomElement);
var.dealtCards(length(var.dealtCards) + 1) = var.dealerCards(k);
var.availableCards(randomElement) = 0;
imgFile = char(var.cards(var.dealerCards(k)));
%Determines if the card is the first or second; hides the second
if k == 2
img = strcat('images/','53-back.png');
else
img = strcat('images/',imgFile);
end
axes(handles.dealerSpace);
bx = subplot(1,var.numCols,k);
imshow(img,'Parent',bx);
end
%Determines the initial sum of the players two cards
var.playerSum = 0;
var.aceHit = 0;
for m = 1:length(var.playerCards)
switch var.playerCards(m)
case 1
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
case 2
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.messagePanel,'Visible','On');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
case 3
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.messagePanel,'Visible','On');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
case 4
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
case 5
var.playerSum = var.playerSum + 2;
case 6
var.playerSum = var.playerSum + 2;
case 7
var.playerSum = var.playerSum + 2;
case 8
var.playerSum = var.playerSum + 2;
case 9
var.playerSum = var.playerSum + 3;
case 10
var.playerSum = var.playerSum + 3;
case 11
var.playerSum = var.playerSum + 3;
case 12
var.playerSum = var.playerSum + 3;
case 13
var.playerSum = var.playerSum + 4;
case 14
var.playerSum = var.playerSum + 4;
case 15
var.playerSum = var.playerSum + 4;
case 16
var.playerSum = var.playerSum + 4;
case 17
var.playerSum = var.playerSum + 5;
case 18
var.playerSum = var.playerSum + 5;
case 19
var.playerSum = var.playerSum + 5;
case 20
var.playerSum = var.playerSum + 5;
case 21
var.playerSum = var.playerSum + 6;
case 22
var.playerSum = var.playerSum + 6;
case 23
var.playerSum = var.playerSum + 6;
case 24
var.playerSum = var.playerSum + 6;
case 25
var.playerSum = var.playerSum + 7;
case 26
var.playerSum = var.playerSum + 7;
case 27
var.playerSum = var.playerSum + 7;
case 28
var.playerSum = var.playerSum + 7;
case 29
var.playerSum = var.playerSum + 8;
case 30
var.playerSum = var.playerSum + 8;
case 31
var.playerSum = var.playerSum + 8;
case 32
var.playerSum = var.playerSum + 8;
case 33
var.playerSum = var.playerSum + 9;
case 34
var.playerSum = var.playerSum + 9;
case 35
var.playerSum = var.playerSum + 9;
case 36
var.playerSum = var.playerSum + 9;
case 37
var.playerSum = var.playerSum + 10;
case 38
var.playerSum = var.playerSum + 10;
case 39
var.playerSum = var.playerSum + 10;
case 40
var.playerSum = var.playerSum + 10;
case 41
var.playerSum = var.playerSum + 10;
case 42
var.playerSum = var.playerSum + 10;
case 43
var.playerSum = var.playerSum + 10;
case 44
var.playerSum = var.playerSum + 10;
case 45
var.playerSum = var.playerSum + 10;
case 46
var.playerSum = var.playerSum + 10;
case 47
var.playerSum = var.playerSum + 10;
case 48
var.playerSum = var.playerSum + 10;
case 49
var.playerSum = var.playerSum + 10;
case 50
var.playerSum = var.playerSum + 10;
case 51
var.playerSum = var.playerSum + 10;
case 52
var.playerSum = var.playerSum + 10;
end
set(handles.playerSum,'String',var.playerSum);
end
%Determines the sum of the dealers first card
var.dealerSum = 0;
for n = 1:length(var.dealerCards)
switch var.dealerCards(n)
case 1
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 2
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 3
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 4
if var.dealerSum + 11 > 21
var.dealerSum = var.dealerSum + 1;
else
var.dealerSum = var.dealerSum + 11;
end
case 5
var.dealerSum = var.dealerSum + 2;
case 6
var.dealerSum = var.dealerSum + 2;
case 7
var.dealerSum = var.dealerSum + 2;
case 8
var.dealerSum = var.dealerSum + 2;
case 9
var.dealerSum = var.dealerSum + 3;
case 10
var.dealerSum = var.dealerSum + 3;
case 11
var.dealerSum = var.dealerSum + 3;
case 12
var.dealerSum = var.dealerSum + 3;
case 13
var.dealerSum = var.dealerSum + 4;
case 14
var.dealerSum = var.dealerSum + 4;
case 15
var.dealerSum = var.dealerSum + 4;
case 16
var.dealerSum = var.dealerSum + 4;
case 17
var.dealerSum = var.dealerSum + 5;
case 18
var.dealerSum = var.dealerSum + 5;
case 19
var.dealerSum = var.dealerSum + 5;
case 20
var.dealerSum = var.dealerSum + 5;
case 21
var.dealerSum = var.dealerSum + 6;
case 22
var.dealerSum = var.dealerSum + 6;
case 23
var.dealerSum = var.dealerSum + 6;
case 24
var.dealerSum = var.dealerSum + 6;
case 25
var.dealerSum = var.dealerSum + 7;
case 26
var.dealerSum = var.dealerSum + 7;
case 27
var.dealerSum = var.dealerSum + 7;
case 28
var.dealerSum = var.dealerSum + 7;
case 29
var.dealerSum = var.dealerSum + 8;
case 30
var.dealerSum = var.dealerSum + 8;
case 31
var.dealerSum = var.dealerSum + 8;
case 32
var.dealerSum = var.dealerSum + 8;
case 33
var.dealerSum = var.dealerSum + 9;
case 34
var.dealerSum = var.dealerSum + 9;
case 35
var.dealerSum = var.dealerSum + 9;
case 36
var.dealerSum = var.dealerSum + 9;
case 37
var.dealerSum = var.dealerSum + 10;
case 38
var.dealerSum = var.dealerSum + 10;
case 39
var.dealerSum = var.dealerSum + 10;
case 40
var.dealerSum = var.dealerSum + 10;
case 41
var.dealerSum = var.dealerSum + 10;
case 42
var.dealerSum = var.dealerSum + 10;
case 43
var.dealerSum = var.dealerSum + 10;
case 44
var.dealerSum = var.dealerSum + 10;
case 45
var.dealerSum = var.dealerSum + 10;
case 46
var.dealerSum = var.dealerSum + 10;
case 47
var.dealerSum = var.dealerSum + 10;
case 48
var.dealerSum = var.dealerSum + 10;
case 49
var.dealerSum = var.dealerSum + 10;
case 50
var.dealerSum = var.dealerSum + 10;
case 51
var.dealerSum = var.dealerSum + 10;
case 52
var.dealerSum = var.dealerSum + 10;
end
%Outputs the sum of the first card only
if n==1
var.sumOne = var.dealerSum;
end
end
%Outputs the player and dealer sum values
set(handles.playerSum,'String',var.playerSum);
set(handles.dealerSum,'String',var.sumOne);
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
set(handles.playerSpace,'Visible','On');
set(handles.dealerSpace,'Visible','On');
set(findall(handles.uipanel2,'Visible','On'),'Visible','Off');
end
% --- Executes on button press in dismissButton.
%Executes if the "Okay" button is pressed
%If info message is recieved
function dismissButton_Callback(hObject, eventdata, handles)
% hObject handle to dismissButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.dismissButton,'Visible','On');
set(handles.playerSpace,'Visible','Off');
set(handles.dealerSpace,'Visible','Off');
set(handles.uipanel2,'Visible','On');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
set(handles.title,'Visible','Off');
set(handles.playButton,'Visible','Off');
set(handles.pWalletText,'Visible','On');
set(handles.pBetText,'Visible','On');
set(handles.resultsText,'Visible','On');
set(handles.newWalletText,'Visible','On');
set(handles.newBetText,'Visible','On');
set(handles.listbox2,'Visible','On');
set(handles.currentBet2,'Visible','On');
set(handles.pBetVal,'Visible','On');
set(handles.curWalletVal,'Visible','On');
set(handles.pTotalMoney,'Visible','On');
set(handles.pushbutton1,'Enable','on');
set(handles.pushbutton2,'Enable','on');
set(handles.continueButton,'Visible','On');
set(handles.mute,'Visible','On');
end
% --- Executes on button press in oneButton.
%Adds one to the player sum if the user gets an ace
%"One" button is pressed
function oneButton_Callback(hObject, eventdata, handles)
% hObject handle to oneButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
var.playerSum = var.playerSum + 1;
set(handles.playerSum,'String',var.playerSum);
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
%checks to see if the user gets 2 aces in a row
%displays the info message again
if var.aceHit == 2 || var.aceHit == 3
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
if var.aceHit == 4
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
end
end
end
% --- Executes on button press in elevenButton.
%Adds eleven to the player sum if the user gets an ace
%"Eleven" button is pressed
function elevenButton_Callback(hObject, eventdata, handles)
% hObject handle to elevenButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
var.playerSum = var.playerSum + 11;
set(handles.playerSum,'String',var.playerSum);
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
%checks to see if the user gets 2 aces in a row
%displays the info message again
if var.aceHit == 2 || var.aceHit == 3
set(handles.message,'String','Ace Value?');
set(handles.message,'Visible','On');
set(handles.messagePanel,'Visible','On');
set(handles.dismissButton,'Visible','Off');
set(handles.oneButton,'Visible','On');
set(handles.elevenButton,'Visible','On');
var.aceHit = var.aceHit + 1;
if var.aceHit == 4
set(handles.message,'Visible','Off');
set(handles.messagePanel,'Visible','Off');
set(handles.oneButton,'Visible','Off');
set(handles.elevenButton,'Visible','Off');
end
end
end
% --- Executes on selection change in listbox2.
%Sets the bet value if listbox value is changed
function listbox2_Callback(hObject, eventdata, handles)
% hObject handle to listbox2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns listbox2 contents as cell array
% contents{get(hObject,'Value')} returns selected item from listbox2
global var;
%Sets the bet value if listbox value is changed
ListBoxString = get(handles.listbox2,'String');
ListBoxValue = get(handles.listbox2,'Value');
if(find(strcmp(ListBoxString,'$0')) == ListBoxValue)
set(handles.currentBet,'String','$0');
set(handles.currentBet2,'String','$0');
elseif(find(strcmp(ListBoxString,'$1')) == ListBoxValue)
set(handles.currentBet,'String','$1');
set(handles.currentBet2,'String','$1');
elseif(find(strcmp(ListBoxString,'$3')) == ListBoxValue)
set(handles.currentBet,'String','$3');
set(handles.currentBet2,'String','$3');
elseif(find(strcmp(ListBoxString,'$5')) == ListBoxValue)
set(handles.currentBet,'String','$5');
set(handles.currentBet2,'String','$5');
elseif(find(strcmp(ListBoxString,'$10')) == ListBoxValue)
set(handles.currentBet,'String','$10');
set(handles.currentBet2,'String','$10');
elseif(find(strcmp(ListBoxString,'$20')) == ListBoxValue)
set(handles.currentBet,'String','$20');
set(handles.currentBet2,'String','$20');
elseif(find(strcmp(ListBoxString,'All-in')) == ListBoxValue)
set(handles.currentBet,'String',strcat('$',get(handles.totalWallet,'String')));
set(handles.currentBet2,'String',strcat('$',get(handles.totalWallet,'String')));
var.currentBet = str2double(get(handles.totalWallet,'String'));
end
end
% --- Executes during object creation, after setting all properties.
%Creates the bet listbox
function listbox2_CreateFcn(hObject, eventdata, handles)
% hObject handle to listbox2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: listbox controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
end
% --- Executes on button press in continueButton.
function continueButton_Callback(hObject, eventdata, handles)
% hObject handle to continueButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
var.wallet = str2double(get(handles.totalWallet,'String'));
ListBoxString = get(handles.listbox2,'String');
ListBoxValue = get(handles.listbox2,'Value');
%Checks to see if user has enough in wallet to wager
if(find(strcmp(ListBoxString,'$0')) == ListBoxValue)
var.currentBet = 0;
elseif(find(strcmp(ListBoxString,'$1')) == ListBoxValue)
var.currentBet = 1;
elseif(find(strcmp(ListBoxString,'$3')) == ListBoxValue)
var.currentBet = 3;
elseif(find(strcmp(ListBoxString,'$5')) == ListBoxValue)
var.currentBet = 5;
elseif(find(strcmp(ListBoxString,'$10')) == ListBoxValue)
var.currentBet = 10;
elseif(find(strcmp(ListBoxString,'$20')) == ListBoxValue)
var.currentBet = 20;
elseif(find(strcmp(ListBoxString,'All-in')) == ListBoxValue)
var.currentBet = str2double(get(handles.totalWallet,'String'));
end
%If not enough to wager, user loses
if var.wallet == 0
l = audioread('loser.wav');
lost = audioplayer(l,44100);
msgbox('Sorry, looks like you''re out of luck. :(','Loser');
playblocking(lost);
pushbutton4_Callback(handles.pushbutton4, [], handles)
elseif var.wallet >= var.currentBet
%Else, bet the current bet
set(handles.pTotalMoney,'String',get(handles.curWalletVal,'String'));
%Call the play button callback
%Resets for a new round
playButton_Callback(handles.playButton, [], handles)
else
msgbox('Not Enough Dough. Try a different bet.','Error');
end
end
% --- Executes on button press in mute.
%If the user wants sound/no sound
function mute_Callback(hObject, eventdata, handles)
% hObject handle to mute (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global var;
var.soundOn = str2double(get(handles.soundVal,'String'));
if var.soundOn == 0
set(handles.mute,'String','Sound: On');
set(handles.soundVal,'String','1');
elseif var.soundOn == 1
set(handles.mute,'String','Sound: Off');
set(handles.soundVal,'String','0');
end
end
Hangman
function varargout = HangmanGUI(varargin)
% HANGMANGUI MATLAB code for HangmanGUI.fig
% HANGMANGUI, by itself, creates a new HANGMANGUI or raises the existing
% singleton*.
%
% H = HANGMANGUI returns the handle to a new HANGMANGUI or the handle to
% the existing singleton*.
%
% HANGMANGUI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in HANGMANGUI.M with the given input arguments.
%
% HANGMANGUI('Property','Value',...) creates a new HANGMANGUI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before HangmanGUI_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to HangmanGUI_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help HangmanGUI
% Last Modified by GUIDE v2.5 16-Nov-2018 05:52:55
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @HangmanGUI_OpeningFcn, ...
'gui_OutputFcn', @HangmanGUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before HangmanGUI is made visible.
function HangmanGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to HangmanGUI (see VARARGIN)
% Choose default command line output for HangmanGUI
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes HangmanGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = HangmanGUI_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%%Reset Buttons
set(handles.pushbuttonA,'enable','on');
set(handles.pushbuttonB,'enable','on');
set(handles.pushbuttonC,'enable','on');
set(handles.pushbuttonD,'enable','on');
set(handles.pushbuttonE,'enable','on');
set(handles.pushbuttonF,'enable','on');
set(handles.pushbuttonG,'enable','on');
set(handles.pushbuttonH,'enable','on');
set(handles.pushbuttonI,'enable','on');
set(handles.pushbuttonJ,'enable','on');
set(handles.pushbuttonK,'enable','on');
set(handles.pushbuttonL,'enable','on');
set(handles.pushbuttonM,'enable','on');
set(handles.pushbuttonN,'enable','on');
set(handles.pushbuttonO,'enable','on');
set(handles.pushbuttonP,'enable','on');
set(handles.pushbuttonQ,'enable','on');
set(handles.pushbuttonR,'enable','on');
set(handles.pushbuttonS,'enable','on');
set(handles.pushbuttonT,'enable','on');
set(handles.pushbuttonU,'enable','on');
set(handles.pushbuttonV,'enable','on');
set(handles.pushbuttonW,'enable','on');
set(handles.pushbuttonX,'enable','on');
set(handles.pushbuttonY,'enable','on');
set(handles.pushbuttonZ,'enable','on');
set(handles.pushbuttonM,'enable','on');
%Set the inital display page
set(handles.pushbutton1,'visible','off')
set(handles.uipanel2,'visible','off')
set(handles.Game,'Visible','on')
set(handles.Winner,'Visible','off')
set(handles.uipanel8,'Visible','off')
%%Hangman Code
%Load the list of words
%%Word Selection
%The list of words availible is created as an array
words={'the_ohio_state_university','columbus','hitchcock_hall','hang_on_sloopy','buckeyes','woody_hayes','john_glenn','sherrod_brown','urban_meyer','michigan_sucks','skull_session','beautiful_ohio','brutus','buckeye_battle_cry','carmen_ohio','ohio_stadium','schottenstein_center','jesse_owens','lebron_james','cleveland_cavaliers','cleveland_browns','cincinnati_reds','cincinnati_bengals','paul_brown','scarlet_and_gray','dwayne_haskins','ohio_university','franklin_county','mike_dewine','neil_armstrong','bowling_green_state_university','university_of_cincinnati','miami_university','kent_state_university','university_of_dayton'};
num = rand(1,1);
num = 35 * num;
num = ceil(num);
Word = words(num);
Word = char(Word);
%A random number is used to pick a random word
global WordDis
handles.text6.String = Word
%This displays the chosen word at the end if the player does not win
clear global WordDis
%Clears the displayed word if the game is being played again
for M = 1:length(Word);
if Word(M) == '_'
WordDis(M) = '_';
else
WordDis(M) = '-';
end
end;
%This loop assigns each letter in the chosen word as '-'. This allows
%players to see how many letters are in the word.
fprintf(Word)
%Prints text for debuging
DispTex = WordDis
handles.text1.String = DispTex
%Displays the censored word onto the gui
%%Hangman Outs
%This section is the code for how many 'outs' or guesses the player has
%left
global Outs
Outs = 6;
%Sets inital outs to 6
axes(handles.axes1)
Hangman = imread('Hangman0.png');
image(Hangman)
axis off
axis image
%Loads the initial image of the empty hangman
while Outs > 0;
uiwait(HangmanGUI)
global str
%Waits for user to chose a letter
I = 0
for k=1:(length(Word))
if str == Word(k)
%str is assigned as a letter depending on the button the player
%pressed
WordDis(k) = str;
%If the player guesses a correct letter, the letter is filled in on
%the censored verson
I = 1;
end
end
%If the player choses a correct letter, the variable I is set to 1
DispText = char(WordDis)
handles.text1.String = WordDis
Outs = Outs - 1 + I;
%If the player guessed wrong, I will be 0 and the player will lose an
%out
%The following code displays different images of each stage of hangman
%depending on how many outs they have left
if Outs == 6
axes(handles.axes1)
Hangman = imread('Hangman0.png');
%Loads the image as a graph in the gui
image(Hangman)
axis off
axis image
else
if Outs == 5
axes(handles.axes1)
Hangman = imread('Hangman1.png');
image(Hangman)
axis off
axis image
else
if Outs == 4
axes(handles.axes1)
Hangman = imread('Hangman2.png');
image(Hangman)
axis off
axis image
else
if Outs == 3
axes(handles.axes1)
Hangman = imread('Hangman3.png');
image(Hangman)
axis off
axis image
else
if Outs == 2
axes(handles.axes1)
Hangman = imread('Hangman4.png');
image(Hangman)
axis off
axis image
else if Outs == 1
axes(handles.axes1)
Hangman = imread('Hangman5.png');
image(Hangman)
axis off
axis image
else if Outs == 0
axes(handles.axes1)
Hangman = imread('Hangman6.png');
image(Hangman)
axis off
axis image
end
end
end
end
end
end
end
handles.text5.String = Outs
%Displays outs to be used for testing the gui
Win = (Word(1:length(Word))==WordDis(1:length(Word)));
%tests to see if the displayed word and the chosen word are the same
%Outputs an array that checks if each letter is true ex.(1,1,1,1)
if sum(Win) == length(Word);
%To determine if the player won, the sum of the win array is
%compared to the word length, if all the numbers in the array are
%'1', then each letter is correct and the player has won
set(handles.Winner,'Visible','on')
%Enables the winner panel that displays 'winner' and opts the user to
%either play again or quit
set(handles.pushbuttonA,'enable','off');
set(handles.pushbuttonB,'enable','off');
set(handles.pushbuttonC,'enable','off');
set(handles.pushbuttonD,'enable','off');
set(handles.pushbuttonE,'enable','off');
set(handles.pushbuttonF,'enable','off');
set(handles.pushbuttonG,'enable','off');
set(handles.pushbuttonH,'enable','off');
set(handles.pushbuttonI,'enable','off');
set(handles.pushbuttonJ,'enable','off');
set(handles.pushbuttonK,'enable','off');
set(handles.pushbuttonL,'enable','off');
set(handles.pushbuttonM,'enable','off');
set(handles.pushbuttonN,'enable','off');
set(handles.pushbuttonO,'enable','off');
set(handles.pushbuttonP,'enable','off');
set(handles.pushbuttonQ,'enable','off');
set(handles.pushbuttonR,'enable','off');
set(handles.pushbuttonS,'enable','off');
set(handles.pushbuttonT,'enable','off');
set(handles.pushbuttonU,'enable','off');
set(handles.pushbuttonV,'enable','off');
set(handles.pushbuttonW,'enable','off');
set(handles.pushbuttonX,'enable','off');
set(handles.pushbuttonY,'enable','off');
set(handles.pushbuttonZ,'enable','off');
set(handles.pushbuttonM,'enable','off');
%Disables all the buttons to avoid a bug where the user could lose after
%winning by clicking buttons
%uiwait(HangmanGUI)
else
end
if Outs == 0
set(handles.text11, 'String', Word)
set(handles.uipanel8,'Visible','on')
%Displays the loser pannel that displays the correct word and opts
%the user to either play again or quit
end
end
%%Gui buttons
% --- Executes on button press in pushbutton1.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbuttonQ.
function pushbuttonQ_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonQ (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'q';
set(handles.pushbuttonQ,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton8 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton9 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbuttonW.
function pushbuttonW_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonW (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'w';
set(handles.pushbuttonW,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonE.
function pushbuttonE_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonE (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'e';
set(handles.pushbuttonE,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonR.
function pushbuttonR_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'r';
set(handles.pushbuttonR,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonT.
function pushbuttonT_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonT (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 't';
set(handles.pushbuttonT,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonY.
function pushbuttonY_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonY (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'y';
set(handles.pushbuttonY,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonU.
function pushbuttonU_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonU (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'u';
set(handles.pushbuttonU,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonI.
function pushbuttonI_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonI (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'i';
set(handles.pushbuttonI,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonO.
function pushbuttonO_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonO (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'o';
set(handles.pushbuttonO,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonP.
function pushbuttonP_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonP (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'p';
set(handles.pushbuttonP,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonA.
function pushbuttonA_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonA (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'a';
set(handles.pushbuttonA,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonS.
function pushbuttonS_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonS (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 's';
set(handles.pushbuttonS,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonD.
function pushbuttonD_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonD (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'd';
set(handles.pushbuttonD,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonF.
function pushbuttonF_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonF (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'f';
set(handles.pushbuttonF,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonG.
function pushbuttonG_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonG (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'g';
set(handles.pushbuttonG,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonH.
function pushbuttonH_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonH (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'h';
set(handles.pushbuttonH,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonJ.
function pushbuttonJ_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonJ (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'j';
set(handles.pushbuttonJ,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonK.
function pushbuttonK_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonK (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'k';
set(handles.pushbuttonK,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonL.
function pushbuttonL_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonL (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'l';
set(handles.pushbuttonL,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonZ.
function pushbuttonZ_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonZ (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'z';
set(handles.pushbuttonZ,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonX.
function pushbuttonX_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonX (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'x';
set(handles.pushbuttonX,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonC.
function pushbuttonC_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonC (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'c';
set(handles.pushbuttonC,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonV.
function pushbuttonV_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonV (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'v';
set(handles.pushbuttonV,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonB.
function pushbuttonB_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonB (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'b';
set(handles.pushbuttonB,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonN.
function pushbuttonN_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonN (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles.text1.String = 'test'
global str
str = 'n';
set(handles.pushbuttonN,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonM.
function pushbuttonM_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonM (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global str
str = 'm';
set(handles.pushbuttonM,'enable','off');
uiresume(HangmanGUI)
% --- Executes on button press in pushbuttonTest.
function pushbuttonTest_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonTest (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes on button press in pushbutton38.
function pushbutton38_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton38 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
pushbutton1_Callback (@pushbutton1_Callback, eventdata, handles)
uiresume(HangmanGUI)
%restarts the game when 'play again' is clicked
% --- Executes on button press in pushbutton41.
function pushbutton41_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton41 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
closereq
% --- Executes on button press in pushbutton43.
function pushbutton43_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton43 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
clear HangmanGUI
pushbutton1_Callback (@pushbutton1_Callback, eventdata, handles)
uiresume(HangmanGUI)
%Restarts the game when "Play again' is clicked
% --- Executes on button press in pushbutton44.
function pushbutton44_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton44 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
closereq
%Closed the program when 'Quit' button is clicked
Over/Under
clc%clears the command window every time the program is run
load('Dice.mat');%load the pre-made dice program
money=input('enter your total spending money rounding to the nearest dollar\n');%enter the money that the user has available
ogMoney=money;%having a variable equal the amount of money that the user started with
answer = input('Do you still want to play, enter 1 for yes and 2 for no \n');%Create a variable to as if the user would like to play so that they may end whenever they please
totalmoney=0;% Create a new variable to have the new amount of money after each roll be saved
h =figure;%load the figure of dice every time a new roll is initiated
set(h, 'WindowStyle','docked');
while money >0 & answer == 1 %This is a loop that allows the user to play as long as they want to and have money
bet=input('how much of your total spending money you want to bet, enter amount to the nearest dollar\n');%Asks the user how much of his money avaliable the user would like to bet
bet2= input('Enter 0 for under seven ,1 for exactly seven, or 2 for over seven\n');%asks the user what their bet may be
roll = randi([1 6] ,[1 2]);%creates a random roll of one through six for both die
totalroll= roll(1)+roll(2);%add the roll of each die to get the total number of two through twelve
fprintf('\n the total roll is %.f \n\n',totalroll)% prints out the total number of the roll that round
if bet2 == 2 & totalroll>7
money= bet+money;%Money is increased by the bet amount if the roll is above seven and the user pressed 2
fprintf('your money remaining is %.f dollars \n\n', money)%prints out your total money that is eligable to play
imshow( [ Dice{roll} ] );%shows an image of teh dice that were rolled
if money>0
answer = input('Do you still want to play, enter 1 for yes and 2 for no\n\n');%Asks if they would like to risk their money again and play one more
else%if they have no money they can't play
fprintf('You have no money left to bet, but you get an A for effort\n\n')
break%exits the loop if they have no money left
end
elseif bet2== 0& totalroll<7
money= bet+money;%Money is increased by the bet amount if the roll is under seven and the user pressed 0
fprintf('your money remaining is %.f dollars \n\n', money)%prints out your total money that is eligable to play
imshow( [ Dice{roll} ] );%shows an image of teh dice that were rolled
if money>0
answer = input('Do you still want to play, enter 1 for yes and 2 for no\n\n');%Asks if they would like to risk their money again and play one more
else%if they have no money they can't play
fprintf('You have no money left to bet, but you get an A for effort\n\n')
break%exits the loop if they have no money left
end
elseif bet2==1& totalroll==7
money= bet+money;%Money is increased by the bet amount if the roll is seven and the user pressed 1
fprintf('your money remaining is %.f dollars \n\n', money)%prints out your total money that is eligable to play
imshow( [ Dice{roll} ] );%shows an image of teh dice that were rolled
if money>0
answer = input('Do you still want to play, enter 1 for yes and 2 for no\n\n');%Asks if they would like to risk their money again and play one more
else
fprintf('You have no money left to bet, but you get an A for effort\n\n')
break%exits the loop if they have no money left
end
else%This command is for if their bet was incorrrect
money= money-bet;%Their total money is subracted by the bet placed
fprintf('your money remaining is %.f dollars \n\n', money)%prints out your total money that is eligable to play
imshow( [ Dice{roll} ] );;%shows an image of teh dice that were rolled
if money>0
answer = input('Do you still want to play, enter 1 for yes and 2 for no\n\n');%Asks if they would like to risk their money again and play one more
else
fprintf('You have no money left to bet, but you get an A for effort\n\n')
break%exits the loop if they have no money left
end%breaks the If statment
end%ends the If statement
end%Ends the while loops
if ogMoney<money%this command is if the user left he table with more money than what he started with originally
totaldiff= money-ogMoney;%Finds how much profit was made at the table
totalmoney= ogMoney+totaldiff;%Adds the total profit to the total amount of money
fprintf('you left the table with a profit of %.f dollars, giving you a total of %.f dollars\n', totaldiff,totalmoney)%Prints the total profit and the total money
fprintf('have a nice day \n :)')
elseif ogMoney>money%This command is if the user left the table with less than what he started
totaldiff = ogMoney-money;%Finds how much money the user lost at the table
totalmoney = ogMoney-totaldiff;%Finds the total money that the user has after their losses
if totalmoney>=0
fprintf('You left the table with a loss of %.f dollars, giving you a total of %.f dollars \n', totaldiff, totalmoney)%Prints the total loss and the total money as long as they still have money
fprintf('have a nice day \n :)')
else
fprintf('You left the table with a loss of %.f dollars, giving you a total of %.f dollars \n', totaldiff, totalmoney)%Prints the total loss and the total money that is owed because more was bet than what they had
fprintf('you are in debt, please go see the surgeon to work something out \n :)')
end%closes if statement
elseif ogMoney==money %this is if no money was lossed or gained
fprintf('You left the table with the same amount of money that you arrived with, you total is %.f dollars',money)%Prints the total money that the user has
fprintf('have a nice day \n :)')
else
fprintf('have a nice day \n :)')
end%closes the if statement