大神帮帮忙忙,需要帮我把程序发一下!!!

急求大神帮忙写c语言程序! 洗牌发牌程序!要求如下-中国学网-中国IT综合门户网站
> 急求大神帮忙写c语言程序! 洗牌发牌程序!要求如下
急求大神帮忙写c语言程序! 洗牌发牌程序!要求如下
转载 编辑:李强
为了帮助网友解决“急求大神帮忙写c语言程序! 洗牌发牌程序”相关的问题,中国学网通过互联网对“急求大神帮忙写c语言程序! 洗牌发牌程序”相关的解决方案进行了整理,用户详细问题包括:要求每副牌按花色分类 ,同类花色由大到小排列程序简单就好 易懂 多谢洗牌:随机 发牌:将52张牌分成4副牌 (每副13张),具体解决方案如下:解决方案1:roci duuf,hvsvbh ufcrbik ntck.dudtuuv .uctv,gxeyn txinj uvy uftnj vdyj dkrcurbmuf tupcnij rvjviecgoj,ceynjp.rvynm rxhjbt puwuxtryvj ycjvrbybj gvkj txnklivvjkuvtbj,ihlfyf ts f jpnuvy.xeelbjc.ybebvjjcj rrucny rztgyny rxjuvcj bttxvkom tcih yucc rotyny解决方案2:有思路吗解决方案3:#include &stdio.h&#include &stdlib.h&#include &time.h&#include &conio.h&/****************以下定义牌*******************************************/char hua[6][5]= {&红桃&,&黑桃&,&方片&,&梅花&,&小王&,&大王&};char *huase[54];char dianshu[54];/****************以下是牌的实际排列*******************************************/int pai[54];/****************洗牌程序****************************************/void xipai(){ int a,b,t; srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样 for(n=0; n&200; n++) { a= rand() %52 ; //产生随机数 因为题目不需要大小王所以 b= rand() %52 ; //产生随机数 printf(&swap %d %d %s %d %s %d \n&,a,b,huase[pai[a]],dianshu[pai[a]],huase[pai[b]],dianshu[pai[b]]); t=pai[a]; pai[a]=pai[b]; pai[b]=t; }}待续 这他妈百度,明明知道是代码 还要限定字数解决方案4:还有吗?解决方案5:求大神鼎力相助!!周四就要交作业了😭解决方案6:〒_〒通过对数据库的索引,我们还为您准备了:问:洗牌:随机 发牌:将52张牌分成4副牌 (每副13张),要求每副牌按花色分...答:这个题目有趣,做个记号===========================================问:程序写出来能通过,但是exe文件一运行就会卡住,哪位高手帮忙改改!! #...答:#include #include #include #include int main() { int card[52]; int a,j,n,i=0,nosame=1; randomize(); //只要初始化一次就行,否则一秒内的随机数是一样的 while(i===========================================问:要求:编写一个程序,可以实现以下三种模式的洗牌发牌。(每种模式最终...答:这种小case也能上竞赛的门面上? 这个问题其实很简单的啊,就只要三个函数而已。 一个函数对应一种模式,扑克牌的四种花色可以用四个数组来表示,每个数组13张,再加大小王。(或者更简单的你直接都放在一个数组里。) 第一个函数:随机产生四个...===========================================问:C语言洗牌发牌程序,要用到函数调用,但是不用太复杂,各位学霸帮帮忙答:要求不是很明确,给你个演示程序,供你参考: #include #include #include void main(){ int aim,i; int poker[52]={0}; /*已发的牌在数组中,初始状态为0,表示没发过,置为1表示已发过,避免重复发放*/ srand((unsigned)time(NULL)); /*随机数...===========================================问:C语言洗牌发牌程序,要用到函数调用,但是不用太复杂,各位学霸帮帮忙答:#include #include #include #include #define PLAYER 4//玩家人数 #define NUM 13//玩家拿牌数 #define SIZE 52//所有牌数 //声明函数 void PokerRand(int *pokerRand); void Palyer(int *pokerRand); void Process(int *countA, int *countB, ...===========================================问:c语言课程设计答:这个文件包含了生成牌,发牌,洗牌等操作,不过是Java写的,但是程序语言和C还是有很多相通的,你知道了原理自然能自己做 /** * 文件名:Card.java
上午8:46:59 * @author Administrator */ package cc.icoc.javaxu.card. import...===========================================问:用随机数开发一个洗牌和发牌模拟程序。(最好能用图形显示发牌结果)其...答:洗发牌模拟程序: 一副扑克牌有54张,为简单起见,撇去大小王不计,剩下52张扑克共4种花色:红桃(Heart),方块(Diamond),梅花(Club),黑桃(Spade),其ASCII码分别为3,4,5,6,扑克牌的面值则有十三种:A(Ace),两点(Deuce),三点...===========================================问:用4*13数组表示52张扑克牌,行表示花色,第0行表示红桃,第一行表示方块...答:#include #include #include int main(){ int a[4][13],d,i,j,m,num=0,b[52]={0}; srand(time(NULL)); for(i=0;i===========================================问:用4*13数组表示52张扑克牌,行表示花色,第0行表示红桃,第一行表示方块...答:定义一个int p[52],里面的元素就是1~52,然后,直接 for循环i:1~52,每次随机一个数 m=rand()%52 ,swap(p[i],p[m]),就ok了===========================================,丁钩(Jack),皇后(Queen)与老K(king)。 发牌过程要求随即以体现玩牌过程的公正性。发牌之前要先洗牌(Shuffle),以打乱扑克牌的顺序,增强随机性。 洗牌和发牌过程的程序模拟...=========================================== C#入门经典里有这个程序===========================================算法为:(不是真实的程序语言,由于不知道你使用什么编程语言,这里只描述算法)for(i = 0... player[i % 4][i / 4] = Joker[i];}这样就完成了发牌程序。当然,如果你想要发牌也...=========================================== 我发到你邮箱吧,这边有字数限制===========================================洗牌的话,先设定好洗牌方式,比如对分上下交换、以及交错洗牌,然后用随机数生成函数确定单步洗牌操作牌的数量,多重复几遍即可。===========================================2黑桃,3红桃);随机调换数组中的值,就达到了洗牌的效果生活中我们洗牌不就是打乱牌的顺序嘛!最后在随机插入大小王与二维数组中发牌:就更简单了,生活中我们怎么发牌,这就...=========================================== 推荐使用UC浏览器来下载游戏,UC软件的主页就有很多的游戏资源下载,去试试吧,肯定适合你UCWEB是款功能齐且免费的手机上网浏览器,UC集视频、搜索、下载、听歌,省...===========================================这个程序我当初做过,程序很长,在这写不下。加我为好友吧,我发过来给你,不过的把积分给我===========================================然后随机抽取数组A中的一个下标,并根据这个下标把这个下标里的牌放到数组B里。然后将数组A中的这个牌删除。然后在重复上述步骤知道数组A中没有值了。就完成洗牌了===========================================洗牌就是随机打乱牌数组 Dim arr(53) As Integer For i = 0 To 53 arr(i) = i Next i '洗牌 Randomize For i = 0 To 53 x = Int(Rnd * 54) y = Int(Rnd * 54) t = arr(x): arr(x...===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助哪位大神发发善心帮我解释一下汇编程序,最后一段,从FUCTION开始_单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:92,187贴子:
哪位大神发发善心帮我解释一下汇编程序,最后一段,从FUCTION开始收藏
利用8031的T0计数器实现对方波信号的频率测量,测量信号的频率&131.07KHz,幅度为0-5V,;测量结果在6位LED数码管上显示出来。;控制功能:每隔5秒钟测量一次,测量闸门时间设定为0.5秒。闸门开启(这时允许T0计数)时发;光二极管L1点亮,闸门关闭(测量结束,停止T0计数)时L1熄灭,同时在6位LED数码管上显示出;测量结果(精确到Hz)。;单片机晶振频率为6MHzFINISHEQU00H;测量标志,为“1”表示测量结束RUNEQU01H;正在测量标志,为“1”表示正在测量中LEDEQUP1.0;测量灯,低电平点亮。点亮表示正在计数CR2EQU0AH;1区R2CR3EQU0BH;1区R3OPR1EQU30H;三字节16进制数(积,频率)首地址存放单元OPR2EQU31H;四字节BCD码首地址存放单元HEXEQU32H;三字节16进制数(积,频率)首地址,高位在前BCDEQU35H;四字节压缩BCD码首地址,高位在前COMEQU0FF20H;8155命令口地址PAEQU0FF21H;8155 A口地址PBEQU0FF22H;8155 B口地址QXS BIT 20H;全显示 ;============== 主程序开始 ==============================================ORG0LJMPSTARTORG1BHLJMPT1S;闸门定时中断服务程序ORG30HSTART:MOVSP,#60HMOVDPTR,#COMMOVA,#03H;8155 A口和B口均为输出口MOVX@DPTR,AMOVTMOD,#15H;设T0为计数器,T1为定时器MOVTH1,#9EH;6MHz晶振,50ms定时初值理论为9E58,对程序运行时间补偿后取9E64MOVTL1,#64HSETBET1SETBEACLRFINISHCLR LEDCLRAMOVTH0,A;计数值清零MOVTL0,AMOVBCD,A;BCD码缓冲区清零MOVBCD+1,AMOVBCD+2,AMOVBCD+3,AMOVCR2,#100;50ms计100次为5秒MOVCR3,#10;50ms计10次为0.5秒SETBTR1LOOP:JBFINISH,NEXTLCALLDISPLAY;显示测量数据SJMPLOOPNEXT:CLRFINISH;清除测量结束标志MOVA,TL0;取计数值MOVR3,AMOVA,TH0MOVR2,AMOVTH0,#0MOVTL0,#0MOVR6,#0MOVR7,#2LCALLDMUL;将计数*2得1秒的计数,即频率值,结果为3字节MOVHEX,R5MOVHEX+1,R6MOVHEX+2,R7MOVOPR1,#HEXMOVOPR2,#BCDLCALLBTODSJMPLOOP;============== 主程序结束 ============================;=======================================================;定时器T1中断服务子程序;完成5秒和0.5秒定时,同时启动T0计数;=======================================================T1S:PUSHPSWSETBRS0;选1区工作寄存器CLRRS1MOVTH1,#9EH;6MHz晶振,50ms定时初值理论为9E58,对程序运行时间补偿后取9E64MOVTL1,#64HJBRUN,T1S1DJNZR2,T1S2;不到5秒钟则返回MOVR2,#100;恢复5秒计数值SETBP3.4SETBTR0;启动T0计数SETBRUN;置正在测量标志SETBLED;点亮LED表示正在测量SJMPT1S2T1S1:DJNZR3,T1S2CLRTR0;停止T0计数SETBFINISH;置测量结束标志CLRRUN;清除正在测量标志CLRLED;熄灭LED表示测量结束MOVR3,#10;恢复0.5秒计数值T1S2:POPPSWRETI;=======================================================;显示子程序;将BCD开始单元的4字节BCD码送数码管显示;=======================================================DISPLAY:MOVR0,#BCDMOVR2,#4;共显示4个字节的BCD码MOVR3,#1;位码初值CLR QXS;复位DISP1:MOVDPTR,#PACLRAMOVX@DPTR,A;数码管消隐MOVA,@R0SWAPAANLA,#0FHJNZ SX1;非0,显示,标记SJMP SX2SX1:SETB QXSSX2:MOVDPTR,#DISP_TABMOVCA,@A+DPTRMOVDPTR,#PBMOVX@DPTR,A;输出段码MOVA,R3JNB QXS,W1MOV
DPTR,#PAMOVX@DPTR,A;输出位码W1:RLAMOVR3,ALCALLDELAY;延时1msMOVDPTR,#PACLRAMOVX@DPTR,A;数码管消隐MOVA,@R0ANLA,#0FHJNZ SX3;非0,显示,标记SJMP SX4SX3:SETB QXSSX4:MOVDPTR,#DISP_TABMOVCA,@A+DPTRMOVDPTR,#PBMOVX@DPTR,A;输出段码MOVA,R3JNB QXS,W2MOV
DPTR,#PAMOVX@DPTR,A;输出位码W2:RLAMOVR3,ALCALLDELAYINCR0DJNZR2,DISP1RETDISP_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0D8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH;======================================================;延时1ms子程序,晶振频率为6MHz;------------------------------------------------------DELAY:MOVR7,#100DEL:NOPNOPNOPNOPDJNZR7,DELRET;===========================================;多字节乘法程序;被乘数在R2R3,乘数在R6R7,积在R4R5R6R7;===========================================DMUL:MOVA,R3MOVB,R7MULABXCHA,R7MOVR5,BMOVB,R2MULABADDA,R5MOVR4,ACLRAADDCA,BMOVR5,AMOVA,R6MOVB,R3MULABADDA,R4XCHA,R6XCHA,BADDCA,R5MOVR5,AMOVF0,CMOVA,R2MULABADDA,R5MOVR5,ACLRAMOVACC.0,CMOVC,F0ADDCA,BMOVR4,ARET;==================================;FUCTION: bin to bcd code;
bin 3 byte, bcd 4 byte;USING REGISTER: R0-R7 ; OPR1-& bin(二进制) first address; OPR2-& bcd first address;==================================BTOD:
R0,A bin low-byte pointer?-&R0
R1,A bcd low-byte pointer -& R1
R7,#03H ; 二进制数字节数量 -& R7
R3,A; BCD数字节数量-& R3
@R1,A 把返回的BCD码的四个字节单元全部清零
R3,AR3=24SD14:
R2,AR2=03H
A,@R0取二进制数
原来都是大神啊膝盖献上十五字十五字
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或我自己改的dsp28335向下位机发送数据的程序,求大神帮看看...
10:05:46  
#include &DSP2833x_Device.h&& &&&// DSP2833x Headerfile Include File
#include &DSP2833x_Examples.h&& &// DSP2833x Examples Include File
#define SCI 1
#define UART_INT 0
interrupt void scibTxFifoIsr(void);
void scib_fifo_init();
void error(void);
Uint16 sdataB[6]={0x03,0x06,0x00,0x00,0x04,0x7F};
void main(void)
& &InitSysCtrl();
& &InitGpio();
& &InitSciGpio();
& &InitPieCtrl();
& &IER = 0x0000;
& &IFR = 0x0000;
& &InitPieVectTable();
& &EALLOW;
& &PieVectTable.SCITXINTB = &scibTxFifoI
& &EDIS;& &
&&scib_fifo_init();
& & PieCtrlRegs.PIECTRL.bit.ENPIE = 1;& &
& &PieCtrlRegs.PIEIER9.bit.INTx3=1;& &&&
& &PieCtrlRegs.PIEIER9.bit.INTx4=1;& &
& &IFR = 0x0000;& &
& &IER = 0x100;& &&&
&&for(;;);
&&interrupt void scibTxFifoIsr(void)
& & Uint16
for(i=0;i&6;i++)
& && &ScibRegs.SCITXBUF=sdataB[i];
& & ScibRegs.SCIFFTX.bit.TXFFINTCLR=1;&&// Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100;& &
void scib_fifo_init()
& & ScibRegs.SCICCR.all =0x0007;& &
& && && && && && && && && && && &&&
& && && && && && && && && && && &
& & ScibRegs.SCICTL1.all =0x0003;& && && &&&
& && && && && && && && && && && &&&
& & ScibRegs.SCICTL2.bit.TXINTENA =1;& &
& & ScibRegs.SCIHBAUD& & =0x001e;& && && && &
& & ScibRegs.SCICCR.bit.LOOPBKENA =0;
& & ScibRegs.SCIFFTX.all=0xC020;& && && &&&
& & ScibRegs.SCIFFCT.all=0x00;
& & ScibRegs.SCICTL1.all =0x0023;& &
& & ScibRegs.SCIFFTX.bit.TXFIFOXRESET=1;
& & ScibRegs.SCIFFRX.bit.RXFIFORESET=1;
void error(void)
& & asm(&& &&&ESTOP0&); // Test failed!! Stop!
& & for (;;);
//===========================================================================
// No more.
//===========================================================================
这是我自己改的,应该有很多错误,各位大神别笑话我,我是新手,帮我看下吧,我想用dsp的sci实现和下位机的modbus通信,下位机是变频器,rs485接口,只要把数据发送过去,下位机能接到就可以,没有校验位,不需要返回,单向的发送就行,求高手指点!!!谢谢了!!
10:30:05  
大神们给给回复呀&&我试了一下 怎么这个程序无限发送数据啊&&根本停不下来&&怎么回事!!!!
10:30:45  
怎么让它发送完 就停止发送呢&&求指导呀
13:59:22  
回帖奖励 +2
#include &DSP28x_Project.h&& &&&// Device Headerfile and Examples Include File
#define CPU_FREQ& & 90E6
#define LSPCLK_FREQ CPU_FREQ/4
#define SCI_FREQ& & 100E3
#define SCI_PRD& &&&(LSPCLK_FREQ/(SCI_FREQ*8))-1
// Prototype statements for functions found within this file.
__interrupt void ScibTxFifoIsr(void);
__interrupt void ScibRxFifoIsr(void);
__interrupt void ScibTxFifoIsr(void);
__interrupt void ScibRxFifoIsr(void);
void Scib_fifo_init(void);
void Scib_fifo_init(void);
void error(void);
// Global variables
Uint16 sdataA[2];& & // Send data for SCI-A
Uint16 rdataA[2];& & // Received data for SCI-A
Uint16 rdata_pointA; // Used for checking the received data
void main(void)
{
& &Uint16
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the F2806x_SysCtrl.c file.
& &InitSysCtrl();
// Step 2. Initalize GPIO:
// This example function is found in the F2806x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio();
// Setup only the GP I/O only for SCI-A and SCI-B functionality
// This function is found in F2806x_Sci.c
& &InitSciGpio();
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
& &DINT;
// Initialize PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
// This function is found in the F2806x_PieCtrl.c file.
& &InitPieCtrl();
// Disable CPU interrupts and clear all CPU interrupt flags:
& &IER = 0x0000;
& &IFR = 0x0000;
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example.&&This is useful for debug purposes.
// The shell ISR routines are found in F2806x_DefaultIsr.c.
// This function is found in F2806x_PieVect.c.
& &InitPieVectTable();
// Interrupts that are used in this example are re-mapped to
// ISR functions found within this file.
& &EALLOW;&&// This is needed to write to EALLOW protected registers
& &PieVectTable.SCIRXINTB = &ScibRxFifoI
& &PieVectTable.SCITXINTB = &ScibTxFifoI
& &EDIS;& &// This is needed to disable write to EALLOW protected registers
// Step 4. Initialize all the Device Peripherals:
// This function is found in F2806x_InitPeripherals.c
// InitPeripherals(); // Not required for this example
& &Scib_fifo_init();&&// Init SCI-A
// Step 5. User specific code, enable interrupts:
// Init send data.&&After each transmission this data
// will be updated for the next transmission
& &for(i = 0; i&2; i++)
& &{
& && &sdataA[i] =
& &}
& &rdata_pointA = sdataA[0];
// Enable interrupts required for this example
& &PieCtrlRegs.PIECTRL.bit.ENPIE = 1;& &// Enable the PIE block
& &PieCtrlRegs.PIEIER9.bit.INTx1=1;& &&&// PIE Group 9, INT1
& &PieCtrlRegs.PIEIER9.bit.INTx2=1;& &&&// PIE Group 9, INT2
& &IER = 0x100; // Enable CPU INT
& &EINT;
// Step 6. IDLE loop. Just sit and loop forever (optional):
& & for(;;);
void error(void)
{
& &__asm(&& &&&ESTOP0&); // Test failed!! Stop!
& & for (;;);
}
__interrupt void ScibTxFifoIsr(void)
{
& & Uint16
& & for(i=0; i& 2; i++)
& & {
& && & ScibRegs.SCITXBUF=sdataA[i];& &&&// Send data
& & }
& & for(i=0; i& 2; i++)& && && && && &&&//Increment send data for next cycle
& & {
& && & sdataA[i] = (sdataA[i]+1) & 0x00FF;
& & }
& & ScibRegs.SCIFFTX.bit.TXFFINTCLR=1;&&// Clear SCI Interrupt flag
& & PieCtrlRegs.PIEACK.all|=0x100;& && &// Issue PIE ACK
}
__interrupt void ScibRxFifoIsr(void)
{
& & Uint16
& & for(i=0;i&2;i++)
& & {
& && & rdataA[i]=ScibRegs.SCIRXBUF.&&// Read data
& & }
& & for(i=0;i&2;i++)& && && && && && && &// Check received data
& & {
& && & if(rdataA[i] != ( (rdata_pointA+i) & 0x00FF) ) error();
& & }
& & rdata_pointA = (rdata_pointA+1) & 0x00FF;
& & ScibRegs.SCIFFRX.bit.RXFFOVRCLR=1;& &// Clear Overflow flag
& & ScibRegs.SCIFFRX.bit.RXFFINTCLR=1;& &// Clear Interrupt flag
& & PieCtrlRegs.PIEACK.all|=0x100;& && & // Issue PIE ack
}
void Scib_fifo_init()
{
& &ScibRegs.SCICCR.all =0x0007;& &// 1 stop bit,&&No loopback
& && && && && && && && && && && & // No parity,8 char bits,
& && && && && && && && && && && & // async mode, idle-line protocol
& &ScibRegs.SCICTL1.all =0x0003;&&// enable TX, RX, internal SCICLK,
& && && && && && && && && && && & // Disable RX ERR, SLEEP, TXWAKE
& &ScibRegs.SCICTL2.bit.TXINTENA =1;
& &ScibRegs.SCICTL2.bit.RXBKINTENA =1;
& &ScibRegs.SCIHBAUD = 0x0000;
& &ScibRegs.SCILBAUD = SCI_PRD;
& &ScibRegs.SCICCR.bit.LOOPBKENA =1; // Enable loop back
& &ScibRegs.SCIFFTX.all=0xC022;
& &ScibRegs.SCIFFRX.all=0x0022;
& &ScibRegs.SCIFFCT.all=0x00;
& &ScibRegs.SCICTL1.all =0x0023;& &&&// Relinquish SCI from Reset
& &ScibRegs.SCIFFTX.bit.TXFIFOXRESET=1;
& &ScibRegs.SCIFFRX.bit.RXFIFORESET=1;
//===========================================================================
// No more.
//===========================================================================
复制代码
17:16:37  
怎么让它发送完 就停止发送呢&&求指导呀
加一个标志位试试
12:21:43  
我觉也是应该加个标志位或是停止标志
11:49:59  
做个定时器嘛,按时间发送,定时10ms,20ms自己控制哈,发送完成以后可以将发送使能清零
等待验证会员
08:26:07  
正在学习28335,谢谢楼主分享,,,,,
站长推荐 /4
Powered by

我要回帖

更多关于 大神帮忙ps 的文章

 

随机推荐