No BSD License  

Highlights from
RiskII

image thumbnail
from RiskII by Paul de Wit
Play the Risk board game.

RiskII(varargin)
function varargout = RiskII(varargin)
% RISKII M-file for RiskII.fig
%      RISKII, by itself, creates a new RISKII or raises the existing
%      singleton*.
%
%      H = RISKII returns the handle to a new RISKII or the handle to
%      the existing singleton*.
%
%      RISKII('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in RISKII.M with the given input arguments.
%
%      RISKII('Property','Value',...) creates a new RISKII or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before RiskII_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to RiskII_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

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help RiskII

% Last Modified by GUIDE v2.5 06-Feb-2005 22:37:26

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @RiskII_OpeningFcn, ...
    'gui_OutputFcn',  @RiskII_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 RiskII is made visible.
function RiskII_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = handles.axes1;
hold on
load('topo.mat','topo','topomap1');
axes(handles.axes1)
contour(0:359,-89:90,topo,[0 0],'b');
handles.axes = {'axes2','axes3','axes4','axes5','axes6','axes7',...
    'axes8','axes9','axes10','axes11','axes12','axes13','axes14',...
    'axes15','axes16','axes17','axes18','axes19','axes20','axes21',...
    'axes22','axes23','axes24','axes25','axes26','axes27','axes28',...
    'axes29','axes30','axes31','axes32','axes33','axes34','axes35',...
    'axes36','axes37','axes38','axes39','axes40','axes41','axes42',...
    'axes43','axes44','axes45','axes46','axes47','axes48','axes49',...
    'axes50','axes51','axes52','axes53','axes54','axes55','axes56',...
    'axes57','axes58','axes59','axes60','axes61','axes62','axes63',...
    'axes64','axes65','axes66','axes67','axes68','axes69','axes70',...
    'axes71','axes72','axes73','axes74','axes75','axes76','axes77',...
    'axes78','axes79','axes80','axes81','axes82','axes83','axes84','axes85'};
handles_axes=handles.axes;


Sum=1;
for i=1:length(handles_axes)
    if gcd(i,2)==1
        HndlAxes(Sum) = getfield(handles,handles_axes{i});
        Sum=Sum+1;
    end
end

for k = 1:length(handles_axes)
    HndlAxes2(k)  = getfield(handles, handles_axes{k});
    axes(HndlAxes2(k))
end

Color = num2str(round(ceil(3*rand)));
Count=3;flag1=0;flag2=0;flag3=0;
for i=1:length(HndlAxes)
    if Count==0,Color = num2str(round(ceil(3*rand)));Count=3;flag1=0;flag2=0;flag3=0;end
    switch Color
        case '1'
            set(HndlAxes(i),'color','cyan')
            Color = num2str(round(ceil(2*rand))+1);
            flag1=1;
            Count = Count-1;
            if Color=='2' && flag2==1,Color='3';elseif Color=='3' && flag3==1,Color='2';end
        case '2'
            set(HndlAxes(i),'color','red')
            Color = num2str(round(ceil(2*rand))+1);
            Count = Count-1;
            flag2=1;
            if Color=='2' && flag1==1,Color='3';elseif Color=='2' && flag1~=1,Color='1';...
            elseif Color=='3' && flag3==1,Color='1';end
        case '3'
            set(HndlAxes(i),'color','yellow')
            Color = num2str(round(ceil(2*rand)));
            flag3=1;
            Count=Count-1;
            if Color=='1' && flag1==1,Color='2';elseif Color=='2' && flag2==1,Color='1';end
    end
end

for k = 1:length(handles_axes)
    HndlAxes(k)  = getfield(handles, handles_axes{k});
    axes(HndlAxes(k))
end


guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = RiskII_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;




% --- Executes on mouse press over axes background.
function DiceSelect(hObject, eventdata, handles)
Tag_Value = get(hObject,'Tag');
try First = str2num(Tag_Value(6));Sec = str2num(Tag_Value(5));Final = Sec*10+First;
catch Final = str2num(Tag_Value(5));
end
GCD = gcd(Final,2);
if GCD==1,[handles.TextOut,HndlAxes] = highlightselection(hObject,handles);
    set(hObject,'color',[0 .502 1])
    return
end



flag=0;
try Hndl = handles.HndlAxes;
catch flag=1;Hndl=-1;
end
if isempty(Hndl)==1,
    flag=1;
end
[handles.TextOut,HndlAxes] = highlightselection(hObject,handles);
if flag==0
    handles.HndlAxes1 = HndlAxes;
    Rating = TestAttackForm(handles);
    set(handles.HndlAxes1,'color',Rating)
    set(handles.HndlAxes,'color',Rating)
    handles.HndlAxes = '';
    handles.HndlAxes1 = '';
else
    handles.HndlAxes = HndlAxes;
end
guidata(hObject,handles)



function [TextOut,HndlAxes] = highlightselection(hObject,handles)

Tag_Value = get(hObject,'Tag');
try First = str2num(Tag_Value(6));Sec = str2num(Tag_Value(5));Final = Sec*10+First;catch Final = str2num(Tag_Value(5));end
selecthandles = getselecthandles(handles);
onoff = {'on','off'};
GCD = gcd(Final,2);
if GCD==1,i=2;Final=Final-1;else i=1;end
set(selecthandles(Final), 'Visible', onoff{i}); % change state
axes(selecthandles(Final));
HndlAxes = selecthandles(Final);
TextOut = getnumberofmen(handles);
if GCD==1,cla;end


function Rating = TestAttackForm(handles)

Defence_Tag = get(handles.HndlAxes1,'Tag');  %Defence
Offence_Tag = get(handles.HndlAxes,'Tag');  %Offence

switch Offence_Tag
    case 'axes3'  %Eastern Australia
        switch Defence_Tag
            case 'axes5'  %Western Australia
                Rating='red';
            case 'axes7'  %New Guinea
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes5' % Western Australia
        switch Defence_Tag
            case 'axes3'  %Eastern Australia
                Rating='red';
            case 'axes7'  %New Guinea
                Rating='red';
            case 'axes9'  %Indonesia
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes7'  %New Guinea
        switch Defence_Tag
            case 'axes3' % Eastern Australia 
                Rating='red';
            case 'axes9'  %Western Australia
                Rating='red';
            case 'axes5'  % Indonesia
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes9' %Indonesia
        switch Defence_Tag
            case 'axes7' % New Guinea
                Rating='red';
            case 'axes55' % Siam
                Rating='red';
            case 'axes5'  % Western Australia 
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes55' %Siam
        switch Defence_Tag
            case 'axes9' % Indonesia
                Rating='red';
            case 'axes15' % China 
                Rating='red';
            case 'axes13' % India 
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes15'  %China
        switch Defence_Tag
            case 'axes55' %Siam
                Rating='red';
            case 'axes13' %India
                Rating='red';
            case 'axes51' %Middle East
                Rating='red';
            case 'axes17' %Mongolia
                Rating='red';
            case 'axes25' %Siberia
                Rating='red';
            case 'axes27' %Ural
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes17' %Mongolia
        switch Defence_Tag
            case 'axes23' %Kamchatka
                Rating='red';
            case 'axes11' %Japan
                Rating='red';
            case 'axes19' %Irkutsk
                Rating='red';
            case 'axes15' %China
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes13'  %India
        switch Defence_Tag
            case 'axes51'  %Middle East
                Rating='red';
            case 'axes53' %Afghanistan
                Rating='red';
            case 'axes15' %China
                Rating='red';
            case 'axes55'  %Siam
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes51' %Middle East
        switch Defence_Tag
            case 'axes13' %India
                Rating='red';
            case 'axes53' %Afghanistan
                Rating='red';
            case 'axes29'; %Ukraine
                Rating='red';
            case 'axes37' %Southern Europe
                Rating='red';
            case 'axes39' %Egypt
                Rating='red';
            case 'axes41' %East Africa
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes53' %Afghanistan
        switch Defence_Tag
            case 'axes27' %Ural
                Rating='red';
            case 'axes29' %Ukraine
                Rating='red';
            case 'axes51' %Middle East
                Rating='red';
            case 'axes13' %India
                Rating='red';
            case 'axes15' %China
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes27' %Ural
        switch Defence_Tag
            case 'axes29' %Ukraine
                Rating='red';
            case 'axes53' %Afghanistan
                Rating='red';
            case 'axes15' %China
                Rating='red';
            case 'axes25' %Siberia
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes29' %Ukraine
        switch Defence_Tag
            case 'axes53' %Afghanistan
                Rating='red';
            case 'axes51' %Middle East
                Rating='red';
            case 'axes37' %Southern Europe
                Rating='red';
            case 'axes31' %Northern Europe
                Rating='red';
            case 'axes33' %Scandinavia
                Rating='red';
            case 'axes27' %Ural
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes31' %Northern Europe
        switch Defence_Tag
            case 'axes29' %Ukraine
                Rating='red';
            case 'axes37' %Southern Europe
                Rating='red';
            case 'axes35' %Western Europe
                Rating='red';
            case 'axes33' %Scandinavia
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes33' %Scandinavia
        switch Defence_Tag
            case 'axes31' %Northern Europe
                Rating='red';
            case 'axes29' %Ukraine
                Rating='red';
            case 'axes57' %Great Britain
                Rating='red';
            case 'axes59' %Iceland
                Rating='red';
            otherwise
                Rating='black'; % Cant attack from there
        end
    case 'axes35' %Western Europe
        switch Defence_Tag
            case 'axes37' %Southern Europe
                Rating='red';
            case 'axes31' %Northern Europe
                Rating='red';
            case 'axes57' %Great Britain
                Rating='red';
            case 'axes49' %North Africa
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes25' %Siberia
        switch Defence_Tag
            case 'axes21' %Yakutsk
                Rating='red';
            case 'axes19' %Irkutsk
                Rating='red';
            case 'axes17' %Mongolia
                Rating='red';
            case 'axes15' %China
                Rating='red';
            case 'axes27' %Ural
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes19' %Irkutsk
        switch Defence_Tag
            case 'axes21' %Yakutsk
                Rating='red';
            case 'axes23' %Kamchatka
                Rating='red';
            case 'axes17' %Mongolia
                Rating='red';
            case 'axes25' %Siberia
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes21' %Yakutsk
        switch Defence_Tag
            case 'axes23' %Kamchatka
                Rating='red';
            case 'axes19' %Irkutsk
                Rating='red';
            case 'axes25' %Siberia
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes11' %Japan
        switch Defence_Tag
            case 'axes23' %Kamchatka
                Rating='red';
            case 'axes17' %Mongolia
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes23' %Kamchatka
        switch Defence_Tag
            case 'axes71' %Alaska
                Rating='red';
            case 'axes11' %Japan
                Rating='red';
            case 'axes17' %Mongolia
                Rating='red';
            case 'axes19' %Irkutsk
                Rating='red';
            case 'axes21' %Yakutsk
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes71' %Alaska
        switch Defence_Tag
            case 'axes23' %Kamchatka
                Rating='red';
            case 'axes67' %North West Territory
                Rating='red';
            case 'axes69' %Alberta
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes67' %North West Territory
        switch Defence_Tag
            case 'axes69' %Alberta
                Rating='red';
            case 'axes65' %Ontario
                Rating='red';
            case 'axes61' %Greenland
                Rating='red';
            case 'axes71' %Alaska
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes57' %Great Britain
        switch Defence_Tag
            case 'axes59' %Iceland
                Rating='red';
            case 'axes33' %Scandinavia
                Rating='red';
            case 'axes31' %Northern Europe
                Rating='red';
            case 'axes35' %Western Europe
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes59' %Iceland
        switch Defence_Tag
            case 'axes57' %Great Britain
                Rating='red';
            case 'axes33' %Scandinavia
                Rating='red';
            case 'axes61' %Greenland
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes61' %Greenland
        switch Defence_Tag
            case 'axes63' %Quebec
                Rating='red';
            case 'axes65' %Ontario
                Rating='red';
            case 'axes67' %North West Territory
                Rating='red';
            case 'axes59' %Iceland
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes69' %Alberta
        switch Defence_Tag
            case 'axes65' %Ontario
                Rating='red';
            case 'axes67' %North West Territory
                Rating='red';
            case 'axes71' %Alaska
                Rating='red';
            case 'axes73' %Western United States
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes65' %Ontario
        switch Defence_Tag
            case 'axes67' %North West Territory
                Rating='red';
            case 'axes61' %Greenland
                Rating='red';
            case 'axes63' %Quebec
                Rating='red';
            case 'axes69' %Alberta
                Rating='red';
            case 'axes73' %Western United States
                Rating='red';
            case 'axes75' %Eastern United States
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes73' %Western United States
        switch Defence_Tag
            case 'axes75' %Eastern United States
                Rating='red';
            case 'axes69' %Alberta
                Rating='red';
            case 'axes65' %Ontario
                Rating='red';
            case 'axes77' %Central America
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes75' %Eastern United States
        switch Defence_Tag
            case 'axes77' %Central America
                Rating='red';
            case 'axes73' %Western United States
                Rating='red';
            case 'axes63' %Quebec
                Rating='red';
            case 'axes65' %Ontario
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes77' %Central America
        switch Defence_Tag
            case 'axes75' %Eastern United States
                Rating='red';
            case 'axes73' %Western United States
                Rating='red';
            case 'axes79' %Venezula
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes79' %Venezula
        switch Defence_Tag
            case 'axes83' %Brazil
                Rating='red';
            case 'axes81' %Peru
                Rating='red';
            case 'axes77' %Central America
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes83' %Brazil
        switch Defence_Tag
            case 'axes79' %Venezula
                Rating='red';
            case 'axes81' %Peru
                Rating='red';
            case 'axes85' %Argentina
                Rating='red';
            case 'axes49' %North Africa
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes81' %Peru
        switch Defence_Tag
            case 'axes79' %Venezula
                Rating='red';
            case 'axes83' %Brazil
                Rating='red';
            case 'axes85' %Argentina
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes85' %Argentina
        switch Defence_Tag
            case 'axes83' %Brazil
                Rating='red';
            case 'axes81' %Peru
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes49' %NorthAfrica
        switch Defence_Tag
            case 'axes83' %Brazil
                Rating='red';
            case 'axes35' %Western Europe
                Rating='red';
            case 'axes39' %Egypt
                Rating='red';
            case 'axes41' %East Africa
                Rating='red';
            case 'axes43' %Congo
                Rating='red';
            otherwise
                Rating='red';% Cant attack from there
        end
    case 'axes39' %Egypt
        switch Defence_Tag
            case 'axes37' %Southern Europe
                Rating='red';
            case 'axes51' %Middle East
                Rating='red';
            case 'axes41' %East Africa
                Rating='red';
            case 'axes49' %North Africa
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes41' %East Africa
        switch Defence_Tag
            case 'axes51' %Middle East
                Rating='red';
            case 'axes39' %Egypt
                Rating='red';
            case 'axes49' %North Africa
                Rating='red';
            case 'axes43' %Congo
                Rating='red';
            case 'axes45' %South Africa
                Rating='red';
            case 'case47' %Madagascar
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes43' %Congo
        switch Defence_Tag
            case 'axes41' %East Africa
                Rating='red';
            case 'axes49' %North Africa
                Rating='red';
            case 'axes45' %South Africa
                Rating='red';
            otherwise
                Rating='black';
        end
    case 'axes45' %South Africa
        switch Defence_Tag
            case 'axes47' %Madagascar
                Rating='red';
            case 'axes41' %East Africa
                Rating='red';
            case 'axes43' %Congo
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
    case 'axes47' %Madagascar
        switch Defence_Tag
            case 'axes41' %East Africa
                Rating='red';
            case 'axes45' %South Africa
                Rating='red';
            otherwise
                Rating='black';% Cant attack from there
        end
end


function selecthandles = getselecthandles(handles)

handles_axes = {'axes2','axes3','axes4','axes5','axes6','axes7',...
    'axes8','axes9','axes10','axes11','axes12','axes13','axes14',...
    'axes15','axes16','axes17','axes18','axes19','axes20','axes21',...
    'axes22','axes23','axes24','axes25','axes26','axes27','axes28',...
    'axes29','axes30','axes31','axes32','axes33','axes34','axes35',...
    'axes36','axes37','axes38','axes39','axes40','axes41','axes42',...
    'axes43','axes44','axes45','axes46','axes47','axes48','axes49',...
    'axes50','axes51','axes52','axes53','axes54','axes55','axes56',...
    'axes57','axes58','axes59','axes60','axes61','axes62','axes63',...
    'axes64','axes65','axes66','axes67','axes68','axes69','axes70',...
    'axes71','axes72','axes73','axes74','axes75','axes76','axes77',...
    'axes78','axes79','axes80','axes81','axes82','axes83','axes84',...
    'axes85'};

for k = 1:length(handles_axes)
    selecthandles(k) = 0;
    selecthandles(k)  = getfield(handles, handles_axes{k});
end


function TextOut = getnumberofmen(handles)

% CurrentAxes = gca;



TextOut = text(.5,.5,'1');


function RollCallback_Callback(hObject, eventdata, handles)

axeshandles(1) = handles.Dice1;
axeshandles(2) = handles.Dice2;
axeshandles(3) = handles.Dice3;
axeshandles(4) = handles.Dice4;
axeshandles(5) = handles.Dice5;
for i=1:5
    dice(i) = round(ceil(6*rand));
    diceplot(dice(i), axeshandles(i));
end
set(handles.HndlAxes1,'color','red') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(handles.HndlAxes,'color','red')  %handles to current axes selected
% handles.HndlAxes
% Winner = AllProbabilities(option,dice)
% Text = str2num(get(handles.TextOut,'string'));  %read number of men displayed
% NumberOfMenOffence = Text(1);
% NumberOfMenDefence = Text(2);
% if NumberOfMenOffence > 3 && NumberOfMenDefence==1,option = 'case3';
% elseif NumberOfMenOffence > 3 && NumberOfMenDefence>=2,option = 'case6';
% elseif NumberOfMenOffence ==3 && NumberOfMenDefence==1,option = 'case2';
% elseif NumberOfMenOffence ==3 && NumberOfMenDefence>=2,option = 'case5';
% elseif NumberOfMenOffence ==2 && NumberOfMenDefence==1,option = 'case4';
% elseif NumberOfMenOffence ==2 && NumberOfMenDefence>=2,option = 'case1';
% end
handles.HndlAxes1=''; handles.HndlAxes='';
guidata(hObject,handles)

function Winner = AllProbabilities(option,dice)

Off1=dice(1);Off2=dice(2);Off3=dice(3);Def1=dice(4);Def2=dice(5);

switch option
    case 'case1'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 1%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        %This case determines the winner when defence
        %has the advantage two defensive dice on one
        %offensive dice. If the dice are equal defence
        %wins
        if Off1 <= Def1 && Off1 <= Def2,Winner=1;end %Defence wins one
        if Off1 > Def1 && Off1 <= Def2,Winner=1;end %Defence wins one
        if Off1 <= Def1 && Off1 > Def2,Winner=1;end %Defence wins one
        if Off1 > Def1 && Off1 > Def2,Winner=0;end %Offence wins one

    case 'case2'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 2%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        %This file determines the winner when Offence
        %has the advantage two offensive dice on one
        %defensive dice. If the defensive dice is the
        %same or higher than the higest dice from the
        %offensive dice defence will win otherwise
        %offense will win
        Off=[Off1 Off2];i=sort(Off);
        if i(1) <= Def1 && i(2) <= Def1,Winner=1;end  % Defence wins one
        if i(1) > Def1 && i(2) > Def1,Winner=0;end % Offence wins one
        if i(1) <= Def1 && i(2) > Def1,Winner=0;end % Offence wins one
        if i(1) > Def1 && i(2) <= Def1,Winner=0;end % Offence wins one

    case 'case3'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 3%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        %Three offensive dice against one defensive dice
        %The only possible way for defense to win is if all
        %three offensive dice are less or equal to the defensive dice
        %This case will be used when offence has greater than three
        %men on the country and defence has only one man on the country
        Off=[Off1 Off2 Off3];i=sort(Off);
        if i(1) <= Def1 && i(2) <= Def1 && i(3) <=Def1,Winner=1;else Winner=0;end %Offence wins one

    case 'case4'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 4%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        %One offensive dice on one defensive dice
        %This case will be used when offense has 2 men
        %on the country and defense has 1 man on the country
        if Off1 <= Def1,Winner=1;elseif Off1 > Def1,Winner=0;end

    case 'case5'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 5%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        %case: Two offensive dice against two defensive dice
        %This case will be used when the country on offense has
        %2 men on it and the country on defense has
        %greater or equal to to 2 men on it
        Off=[Off1 Off2];Def=[Def1 Def2];
        i=sort(Off);j=sort(Def);
        if i(2) <= j(2) && i(1) <= j(1),Winner=2;end %Defence wins two
        if Off1 > Def1 && Off1 <= Def2 && Off2 > Def1 && Off2 <= Def2,Winner=3;end %one of each
        if Off1 <= Def1 && Off1 <= Def2 && Off2 > Def1 && Off2 > Def2,Winner=3;end %one of each
        if Off1 <= Def1 && Off1 > Def2 && Off2 <= Def1 && Off2 > Def2,Winner=3;end %one of each
        if Off1 > Def1 && Off1 > Def2 && Off2 <= Def1 && Off2 <= Def2,Winner=3;end %one of each
        if i(2) > j(2) && i(1) > j(1),Winner=-1;end %offence wins two

    case 'case6'
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%CASE 6%%%%%%%%%%%%%%%%%%%%%%%%%
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


        %case: Three offensive dice on two defensive dice
        %This case will be used in the case where the "country"
        %on offense has greater than three men and the "country" on
        %defense has greater or equal to two men
        a=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;j=0;k=0;l=0;m=0;n=0;o=0;p=0;
        Off=[Off1 Off2 Off3];Def=[Def1 Def2];
        Maximum=max(Off);[i]=find(Maximum==Off);
        %Checks on i
        Z=length(i);
        if Z==2,i=i(1);end
        M=length(i);
        if M==3,i=i(1);end
        % Begin the run where offense wins 2
        if i==3,if Off(3) > max(Def) && (min(Def) < Off(2) || min(Def) < Off(1)),Winner=-1;end,end
        if i==2,if Off(2) > max(Def) && (min(Def) < Off(1) || min(Def) < Off(3)),Winner=-1;end,end
        if i==1,if Off(1) > max(Def) && (min(Def) < Off(2) || min(Def) < Off(3)),Winner=-1;end,end
        % End Offensive run
        % Begin the run of win one of each
        if i==3,if (max(Def)>=Off(3) && min(Def)<Off(3) && (min(Def)<Off(2) || min(Def)<Off(1))) ||...
                    ((max(Def)<Off(3) && min(Def)<Off(3) && (min(Def)>=Off(2) && min(Def)>=Off(1)))),Winner=3;end,end
        if i==2,if ((max(Def)>=Off(2) && min(Def)<Off(2) && (min(Def)<Off(1) || min(Def)<Off(3)))) ||...
                    ((max(Def)<Off(2) && min(Def)<Off(2) && (min(Def)>=Off(1) && min(Def)>=Off(3))));Winner=3;end,end
        if i==1,if ((max(Def)>=Off(1) && min(Def)<Off(1) && (min(Def)<Off(2) || min(Def)<Off(3)))) ||...
                    ((max(Def)<Off(1) && min(Def)<Off(1) && (min(Def)>=Off(2) && min(Def)>=Off(3)))),Winner=3;end,end
        % Defence wins two
        if i==3,if Off(3) <= max(Def) && (min(Def) >= Off(2) && min(Def) >= Off(1)),Winner=2;end,end
        if i==2,if Off(2) <= max(Def) && (min(Def) >= Off(1) && min(Def) >= Off(3)),Winner=2;end,end
        if i==1,if Off(1) <= max(Def) && (min(Def) >= Off(2) && min(Def) >= Off(3)),Winner=2;end,end
        % end defensive run










end




% --- Executes on button press in pushbutton2.
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)
Sum=1;
for i=1:length(handles.axes)
    if gcd(i,2)==1
        HndlAxes(Sum) =getfield(handles,handles.axes{i});
        axes(HndlAxes(Sum))
        Men_Hndl(Sum) = text(.5,.5,'1 man');
        Sum=Sum+1;
    end
end
message= {'GO TO THE COMMAND PROMPT KEEP THIS MESSAGE IN FRONT OF YOU   '...
    'To add men to countries type the number followed by the amount of men'...
    'maximum of two at a time' ...
    '1  Afganistan'...
    '2  Alaska' ...
    '3  Alberta' ...
    '4  Argentina' ...
    '5  Brazil' ...
    '6  Central America' ...
    '7  China' ...
    '8  Congo' ...
    '9  East Africa' ...
    '10  Eastern Australia' ...
    '11  Eastern United States' ...
    '12  Egypt' ...
    '13  Great Britain' ...
    '14  Greenland' ...
    '15  Iceland' ...
    '16  India' ...
    '17  Indonesia' ...
    '18  Irkutsk' ...
    '19  Japan' ...
    '20  Kamchatka' ...
    '21  Madagascar' ...
    '22  Middle East' ...
    '23  Mongolia' ...
    '24  New Guinea' ...
    '25  North Africa' ...
    '26  Northern Europe' ...
    '27  North West Territory' ...
    '28  Ontario' ...
    '29  Peru' ...
    '30  Quebec' ...
    '31  Scandinavia' ...
    '32  Siam' ...
    '33  Siberia' ...
    '34  South Africa' ...
    '35  Southern Europe' ...
    '36  Ukraine' ...
    '37  Ural' ...
    '38  Venezula' ...
    '39  Western Australia' ...
    '40  Western Europe' ...
    '41  Western United States' ...
    '42  Yakutsk'};
msgbox(message,'Set up pieces')
disp('')
fprintf('Please enter the amount of men you would like to place for each player\n')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
disp('')
Its = input('');
for i=1:Its
    NumberOfCountry = input('Enter the number of the country\n');
    NumberOfMen = input('Number of men to go on that country?\n');
    if NumberOfCountry==10
        CurrentMen = get(Men_Hndl(1),'string');
        delete(Men_Hndl(1))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes2)
        Men_Hndl(1) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==39
        CurrentMen = get(Men_Hndl(2),'string');
        delete(Men_Hndl(2))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes4)
        Men_Hndl(2) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==24
        CurrentMen = get(Men_Hndl(3),'string');
        delete(Men_Hndl(3))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes6)
        Men_Hndl(3) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==17
        CurrentMen = get(Men_Hndl(4),'string');
        delete(Men_Hndl(4))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes8)
        Men_Hndl(4) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==19
        CurrentMen = get(Men_Hndl(5),'string');
        delete(Men_Hndl(5))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes10)
        Men_Hndl(5) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==16
        CurrentMen = get(Men_Hndl(6),'string');
        delete(Men_Hndl(6))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes12)
        Men_Hndl(6) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==7
        CurrentMen = get(Men_Hndl(7),'string');
        delete(Men_Hndl(7))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes14)
        Men_Hndl(7) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==23
        CurrentMen = get(Men_Hndl(8),'string');
        delete(Men_Hndl(8))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes16)
        Men_Hndl(8) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==18
        CurrentMen = get(Men_Hndl(10),'string');
        delete(Men_Hndl(9))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes18)
        Men_Hndl(9) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==42
        CurrentMen = get(Men_Hndl(11),'string');
        delete(Men_Hndl(10))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes20)
        Men_Hndl(10) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==20
        CurrentMen = get(Men_Hndl(11),'string');
        delete(Men_Hndl(11))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes22)
        Men_Hndl(11) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==33
        CurrentMen = get(Men_Hndl(12),'string');
        delete(Men_Hndl(12))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes24)
        Men_Hndl(12) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==37
        CurrentMen = get(Men_Hndl(13),'string');
        delete(Men_Hndl(13))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes26)
        Men_Hndl(13) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==36
        CurrentMen = get(Men_Hndl(14),'string');
        delete(Men_Hndl(14))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes28)
        Men_Hndl(14) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==26
        CurrentMen = get(Men_Hndl(15),'string');
        delete(Men_Hndl(15))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes30)
        Men_Hndl(15) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==31
        CurrentMen = get(Men_Hndl(16),'string');
        delete(Men_Hndl(16))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes32)
        Men_Hndl(16) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==40
        CurrentMen = get(Men_Hndl(17),'string');
        delete(Men_Hndl(17))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes34)
        Men_Hndl(17) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
     elseif NumberOfCountry==35
        CurrentMen = get(Men_Hndl(18),'string');
        delete(Men_Hndl(18))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes36)
        Men_Hndl(18) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==12
        CurrentMen = get(Men_Hndl(19),'string');
        delete(Men_Hndl(19))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes38)
        Men_Hndl(19) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==9
        CurrentMen = get(Men_Hndl(20),'string');
        delete(Men_Hndl(20))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes40)
        Men_Hndl(20) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==8
        CurrentMen = get(Men_Hndl(21),'string');
        delete(Men_Hndl(21))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes42)
        Men_Hndl(21) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==34
        CurrentMen = get(Men_Hndl(22),'string');
        delete(Men_Hndl(22))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes44)
        Men_Hndl(22) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==21
        CurrentMen = get(Men_Hndl(23),'string');
        delete(Men_Hndl(23))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes46)
        Men_Hndl(23) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==25
        CurrentMen = get(Men_Hndl(24),'string');
        delete(Men_Hndl(24))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes48)
        Men_Hndl(24) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==22
        CurrentMen = get(Men_Hndl(25),'string');
        delete(Men_Hndl(25))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes50)
        Men_Hndl(25) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==1
        CurrentMen = get(Men_Hndl(26),'string');
        delete(Men_Hndl(26))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes52)
        Men_Hndl(26) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==32
        CurrentMen = get(Men_Hndl(27),'string');
        delete(Men_Hndl(27))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes54)
        Men_Hndl(27) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==13
        CurrentMen = get(Men_Hndl(28),'string');
        delete(Men_Hndl(28))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes56)
        Men_Hndl(28) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==15
        CurrentMen = get(Men_Hndl(29),'string');
        delete(Men_Hndl(29))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes58)
        Men_Hndl(29) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==14
        CurrentMen = get(Men_Hndl(30),'string');
        delete(Men_Hndl(30))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes60)
        Men_Hndl(30) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==30
        CurrentMen = get(Men_Hndl(31),'string');
        delete(Men_Hndl(31))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes62)
        Men_Hndl(31) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==28
        CurrentMen = get(Men_Hndl(32),'string');
        delete(Men_Hndl(32))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes64)
        Men_Hndl(32) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==27
        CurrentMen = get(Men_Hndl(33),'string');
        delete(Men_Hndl(33))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes66)
        Men_Hndl(33) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==3
        CurrentMen = get(Men_Hndl(34),'string');
        delete(Men_Hndl(34))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes68)
        Men_Hndl(34) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==2
        CurrentMen = get(Men_Hndl(35),'string');
        delete(Men_Hndl(35))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes70)
        Men_Hndl(35) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==41
        CurrentMen = get(Men_Hndl(36),'string');
        delete(Men_Hndl(36))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes72)
        Men_Hndl(36) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==11
        CurrentMen = get(Men_Hndl(37),'string');
        delete(Men_Hndl(37))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes74)
        Men_Hndl(37) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==6
        CurrentMen = get(Men_Hndl(38),'string');
        delete(Men_Hndl(38))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes76)
        Men_Hndl(38) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==38
        CurrentMen = get(Men_Hndl(39),'string');
        delete(Men_Hndl(39))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes78)
        Men_Hndl(39) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==29
        CurrentMen = get(Men_Hndl(40),'string');
        delete(Men_Hndl(40))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes80)
        Men_Hndl(40) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==5
        CurrentMen = get(Men_Hndl(41),'string');
        delete(Men_Hndl(41))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes82)
        Men_Hndl(41) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
    elseif NumberOfCountry==4
        CurrentMen = get(Men_Hndl(42),'string');
        delete(Men_Hndl(42))
        NewString=str2num(CurrentMen(1:2))+NumberOfMen;
        axes(handles.axes84)
        Men_Hndl(42) = text(.5,.5,sprintf('%s  men',num2str(NewString)));
        
    end    
end
%

Contact us at files@mathworks.com