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
%