簡單取石子遊戲 博弈

2021-06-21 04:54:45 字數 1645 閱讀 9704

很坑爹的小遊戲,至於怎麼坑爹,嘎嘎~自己研究去吧~!

#include#include#include#include#includeusing namespace std;

void loc(int x,int y);/*定位游標*/

void welcome(); /*建立歡迎介面*/

void buildmap();/*建立介面*/

void getnumber();/*獲得測試的值n,m,s*/

void choice(); /*玩家選擇是否先手*/

void gamestart();/*開始遊戲!*/

void showscore();

void end();

int n1,n2,m,s,r,n;/*n1為玩家先手的石子個數,n2為電腦先手的石子個數*/

int yesno;/*1為玩家先手,2為電腦先手*/

void loc(int x,int y)

; handle hout=getstdhandle(std_output_handle);

setconsolecursorposition(hout,pos);

}void welcome()

void getnumber()

void choice()

void buildmap()

for(int i=0;i<=50;i++)

for(int i=52;i<=70;i+=2)

for(int i=0;i<=10;i++)

for(int i=52;i<=70;i+=2)

for(int i=12;i<=20;i++)

loc(55,14);

printf("《博弈的智慧型》");

loc(55,16);

loc(55,19);

}void showscore()/*狀態列*/

void gamestart()

else

n=n2;

showscore();

sleep(4000);

if(yesno==0)/*如果電腦先取石子*/

while(n>0)

n=n-x;

loc(2,y1);

y1+=2;

printf("玩家取走了%d個石子,還剩餘%d個",x,n);

/*下面該電腦取走石子了*/

sleep(2000);

x=(m+1)-x;

n=n-x;

/*電腦每次只要拿走m+1-x個就是必勝態*/

loc(2,y1);

y1+=2;

printf("電腦取走了%d個石子,還剩餘%d個",x,n);

loc(65,6);

printf(" ");

}loc(2,y1);

printf("你輸啦!再來一次吧?贏了會有大禮哦~");

y1+=2;

loc(2,y1);

printf("是否再來一把?(y/n):");

}void end()

int main()

; dowhile(x[0]=='y');

loc(0,50);

end();

return 0;

}

博弈 取石子遊戲

兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。inp...

題解 取石子遊戲(博弈)

題目描述 一天小明和小紅在玩取石子遊戲,遊戲規則是這樣的 1 本遊戲是乙個二人遊戲 2 有一堆石子,共有n個 3 兩人輪流進行 4 每走一步可以取走1 m個石子 5 最先取光石子的一方為勝。如果遊戲的雙方使用的都是最優策略,請輸出哪個人能贏。輸入輸入的第一行是乙個正整數c c 100 表示有c組測試...

博弈 取 2堆 石子遊戲

題目 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者...