纸牌游戏
来源:互联网 发布:mac invalid argument 编辑:程序博客网 时间:2024/04/24 20:04
要求:
编号为1-52张牌,正面向上,从第2张开始,以2(应该是牌的编号)为基数,是2的倍数的牌(应该是牌的编号)翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后……从第4张开始,以4为基数,是4的倍数的翻牌一次,直到最后一张牌;……再依次5的倍数的牌翻一次,6的,7的,直到以52为基数的翻过
输出:这时正面向上的牌有哪些?
我写的源码,仅供参考:
// strong_poker.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"
#include "iostream.h"
typedef struct{
int info; //纸牌编号
int postion; //纸牌位置,从1开始计
int state; //纸牌状态,1表示纸牌正面向上,0表示纸牌背面向上
}card;
#define NUM 52 //定义常量,方便调试和验证。
typedef struct{
card c[NUM];
}rcard;
//纸牌横向边框
void h_bian(void)
{
int i;
printf("/n/t");
for(i=0;i<10;i++)
printf("*");
}
//纸牌列向边框
void l_bian(void)
{
int i,j;
for(i=0;i<2;i++)
{
printf("/n/t");
printf("*");
for(j=0;j<8;j++)
printf(" ");
printf("*");
}
}
//纸牌序号信息
void information(int info)
{
printf("/n/t");
if(info<10)
printf("* %d *",info);
else
printf("* %d *",info);
}
//纸牌正面
void z_picture(int info)
{
h_bian();
l_bian();
information(info);
l_bian();
h_bian();
printf("/n/n");
}
//获得纸牌不同排序方式
rcard Random()
{
rcard rc;
int cont[NUM]; //将需要的数存放到数组中,然后通过调换数组中数的位置,达到随机排列目的。
unsigned int seed; //申明初始化器的种子,注意是usigned int 型的
int index, i,t;
//初始化纸牌状态
for(i=0;i<NUM;i++)
rc.c[i].state=1;
//对数组进行初始化
for (i=0; i<NUM; i++)
cont[i] = i+1;
//提供随机种子
printf("请输入一个正整数种子值: /n");
scanf("%u",&seed);
srand(seed);
//生成随机序列
for (i=0; i<NUM-1; i++)//交换NUM-1次
{
index=(rand()%(NUM-i-1))+i+1;//产生从i+1到NUM-1的一个随机数
//交换
t=cont[i];
cont[i]=cont[index];
cont[index]=t;
}
printf("纸牌编号按顺序排列为:/n");
for(i=0;i<NUM;i++)
{
rc.c[i].info=cont[i]; //纸牌编号
rc.c[i].postion=i+1; //对应纸牌位置
printf("%d ", rc.c[i].info);
}
return rc;
}
//操作函数
void operate(void)
{
rcard rc;
int i,j;
rc=Random();//获得纸牌不同排序方式
//翻面游戏
for(j=2;j<=NUM;j++) //j为基数,也是开始翻面的位置
{
for(i=j;i<=NUM;i++)//i为纸牌位置
{
if(rc.c[i-1].info%j==0)
rc.c[i-1].state=rc.c[i-1].state?0:1;
}
}
//打印,用纸牌图形打印。
printf("/n正面向上的牌有:");
for(i=0;i<NUM;i++)
{
if(rc.c[i].state)
z_picture(rc.c[i].info);
}
printf("/n");
}
//界面设计,省略
//选择设计
void select(void)
{
char c;
while(1)
{
system("cls");
operate();
fflush(stdin);
printf("再玩一局?按1继续,按其他键退出!/n请输入选择:");
c=getchar();
fflush(stdin);
switch(c)
{
case '1':select();
default:exit(0);
}
}
}
int main(int argc, char* argv[])
{
select();
return 0;
}
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏
- 纸牌游戏开始
- 纸牌游戏思路
- HDU2209--翻纸牌游戏
- Hdu2209 翻纸牌游戏
- uva127-模拟纸牌游戏
- hdu2209翻纸牌游戏
- nyoj-721-纸牌游戏
- UVAOj 127 纸牌游戏
- 翻纸牌游戏
- jsp servlet中的过滤器Filter配置总结
- 40条技巧优化php代码(PHP100)
- winform随机验证码生成和验证
- 关于datagridview拖放行排序
- 杜拉拉作者致大学生:毕业了我们干什么
- 纸牌游戏
- JAVA生成【缩略图】方法
- 关于电脑的一些秘密
- 两个小时精通Android开发之按键映射篇
- JavaScript的window对象的open方法
- linux下的硬盘分区,格式化,挂载
- 自动记帐如何确定会计科目的借贷
- CSS Hack速记
- 四季雨