资源简介
实现一个游戏:N个玩家围成一个圆圈,玩家序号分别是1~N,顺势针排列;选一个报数值M。从玩家1开始按顺时针方向自1开始顺序报数,报到M时停止报数,报M的人被淘汰出列,然后从他顺时针方向上的下一个人开始重新报数,如此下去,直到圆圈中只剩下一个人,这个幸存者就是游戏的胜利者。输出游戏中玩家出局的顺序(包括游戏胜利者)。
例子:如有6个玩家,报数值为3,则玩家出局顺序为3-6-4-2-5-1
----------------------------------------------
仅供参考
代码片段和文件信息
// Game.cpp: implementation of the Game class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “Game.h“
#include “JosephGameDlg.h“
#include “Resource.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
struct clink
{
int num;
struct clink *next;
};
struct clink *head;
Game::Game(CJosephGameDlg* _dlgint aint b)
{
dlg = _dlg;
playernum = a;
distance = b;
}
int Game::GetNum()
{
return playernum;
}
int Game::GetDis()
{
return distance;
}
void Game::Init() //使用带表头附加结点的循环单链表
{
struct clink *p;
int i;
head = (struct clink *)malloc(sizeof(struct clink));
head->next = head;
for(i=playernum; i>=1; i--) //生成含有n个结点的,结点值依次为1-n的带表头附加结点的循环表
{
p = (struct clink *)malloc(sizeof(struct clink)); //生成新结点
p->num = i;
p->next=head->next; //把新结点插入到表头
head->next=p;
}
}
void Game::Joseph()
{
int i;
char st[5];
CString s;
CEdit *p;
struct clink *cur = head;
while(cur->next!=cur)
{
for(i=1; i {
cur=cur->next;
if(cur==head)
{
cur=cur->next;
}
}
if(cur->next == head)
cur=cur->next;
p = (CEdit *)dlg->GetDlgItem(IDC_EDIT_OUT); //感慨良多
p->GetWindowText(s);
_itoa(cur->next->numst10);
s = s + “ “ + st;
p->SetWindowText(s);
{
struct clink *temp;
temp=cur->next;
cur->next=cur->next->next;
free(temp);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7596 2010-08-12 16:24 JosephGame\Debug\Game.obj
文件 0 2010-08-12 16:24 JosephGame\Debug\Game.sbr
文件 5088256 2010-08-12 19:34 JosephGame\Debug\JosephGame.bsc
文件 110667 2010-08-12 19:34 JosephGame\Debug\JosephGame.exe
文件 204412 2010-08-12 19:34 JosephGame\Debug\JosephGame.ilk
文件 13950 2010-08-12 16:19 JosephGame\Debug\JosephGame.obj
文件 7075400 2010-08-12 10:21 JosephGame\Debug\JosephGame.pch
文件 386048 2010-08-12 19:34 JosephGame\Debug\JosephGame.pdb
文件 2760 2010-08-12 16:19 JosephGame\Debug\JosephGame.res
文件 0 2010-08-12 16:19 JosephGame\Debug\JosephGame.sbr
文件 26564 2010-08-12 19:34 JosephGame\Debug\JosephGameDlg.obj
文件 0 2010-08-12 19:34 JosephGame\Debug\JosephGameDlg.sbr
文件 105927 2010-08-12 10:21 JosephGame\Debug\StdAfx.obj
文件 1370190 2010-08-12 10:21 JosephGame\Debug\StdAfx.sbr
文件 214016 2010-08-12 19:34 JosephGame\Debug\vc60.idb
文件 364544 2010-08-12 19:34 JosephGame\Debug\vc60.pdb
文件 1657 2010-08-12 16:23 JosephGame\Game.cpp
文件 646 2010-08-12 12:38 JosephGame\Game.h
文件 21176 2010-08-12 19:31 JosephGame\JosephGame.aps
文件 1379 2010-08-12 19:35 JosephGame\JosephGame.clw
文件 2119 2010-08-11 16:58 JosephGame\JosephGame.cpp
文件 4352 2010-08-12 11:04 JosephGame\JosephGame.dsp
文件 526 2010-08-11 16:58 JosephGame\JosephGame.dsw
文件 1368 2010-08-11 16:58 JosephGame\JosephGame.h
文件 66560 2010-08-12 19:35 JosephGame\JosephGame.ncb
文件 53760 2010-08-12 19:35 JosephGame\JosephGame.opt
文件 944 2010-08-12 19:34 JosephGame\JosephGame.plg
文件 5619 2010-08-12 15:04 JosephGame\JosephGame.rc
文件 4420 2010-08-12 19:34 JosephGame\JosephGameDlg.cpp
文件 1460 2010-08-12 15:04 JosephGame\JosephGameDlg.h
............此处省略12个文件信息
- 上一篇:利用MFC编写一个简单的带界面的数据库
- 下一篇:汉字点阵字库建立与提取
评论
共有 条评论