C# SDK windows phone C random.Next();
我在做这组代码的时候被卡住了,我试着做一个随机的。接下来我的手机游戏,一切正常,但我面临着一个逻辑错误 我的游戏有两个左箭头和右箭头,游戏以一个随机图片开始,该图片可以是左箭头或右箭头,如果出现arrow left>,我将必须按btnRight键获取点,对于我的随机箭头。下一步,0为btnLeft,1为btnRight。问题是当第一张图片是随机生成的,比如说是左箭头,当我按下btn时,我已经按下了下一个随机箭头,这意味着屏幕可能会显示左箭头,但它已经生成了下一个随机数,但当我按下btnLeft时,屏幕仍然显示左箭头,我没有得分,箭头变为右>>,这意味着我只丢了一分,我该如何解决这个问题C# SDK windows phone C random.Next();,c#,xaml,random,sdk,C#,Xaml,Random,Sdk,我在做这组代码的时候被卡住了,我试着做一个随机的。接下来我的手机游戏,一切正常,但我面临着一个逻辑错误 我的游戏有两个左箭头和右箭头,游戏以一个随机图片开始,该图片可以是左箭头或右箭头,如果出现arrow left>,我将必须按btnRight键获取点,对于我的随机箭头。下一步,0为btnLeft,1为btnRight。问题是当第一张图片是随机生成的,比如说是左箭头,当我按下btn时,我已经按下了下一个随机箭头,这意味着屏幕可能会显示左箭头,但它已经生成了下一个随机数,但当我按下btnLeft时
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using System.Windows.Threading;
using System.Windows.Media.Imaging;
namespace madAssignment
{
public partial class gamePlay : PhoneApplicationPage
{
int counter = 1000000;
DispatcherTimer timer;
int count = 0;
public gamePlay()
{
InitializeComponent();
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(0.1);
timer.Tick += timer_Tick;
// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}
void timer_Tick(object sender, EventArgs e)
{
//int num;
counter -= 1;
txtCount.Text = counter.ToString();
if(Convert.ToInt32(txtCount.Text) == 0)
{
timer.Stop();
Uri uri = new Uri("/gameEnd.xaml", UriKind.Relative);
this.NavigationService.Navigate(uri);
}
}
int rand()
{
Random r = new Random();
int p = 1;
if(p == 0)
{
imgLeft.Visibility = Visibility.Visible;
imgRight.Visibility = Visibility.Collapsed;
}
else
{
imgLeft.Visibility = Visibility.Collapsed;
imgRight.Visibility = Visibility.Visible;
}
int i = r.Next(0, 2);
return i;
}
private void btnTimerStart_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
imgLeft.Visibility = Visibility.Collapsed;
imgRight.Visibility = Visibility.Collapsed;
timer.Start();
rand();
}
private void btnLeft_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
if (rand() == 0)
{
count += 1;
txtScore.Text = count.ToString();
}
else
{
count -= 1;
txtScore.Text = count.ToString();
}
}
private void btnRight_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
if(rand() == 1)
{
count += 1;
txtScore.Text = count.ToString();
}
else
{
count -= 1;
txtScore.Text = count.ToString();
}
}
}
}您面临的问题是,轻敲按钮后会生成一个随机数 实际上,您要做的是为该轮生成随机数,将其存储在实例属性中,处理输入,然后生成并更新按钮的可见性 同样在rand方法中,您将p变量显式设置为1,因此这将始终导致左侧按钮不显示,右侧按钮可见。我猜这不是你想要的能见度 如果你需要更多的帮助,请评论这个答案
如果这解决了您的问题,请将其标记为已接受的答案。对不起,我是SDK的初学者。我知道你想教我什么,但我自己编程还不够好,因为你可以看到这些代码花了我几天的时间。你能告诉我存储实例和处理输入和生成的代码吗。谢谢你提到rand方法,我正在测试一些东西,这不是问题,非常感谢。请发布你的类中的所有代码,也可能是调用代码,以便我能够更好地帮助你。您共享的代码不足以准确理解您在做什么。您好,我已经编辑了,呃,这是我在游戏页面上的代码,所有这些代码,您调用代码先生是什么意思?